面试知识点整理

程序人生 专栏收录该内容
76 篇文章 0 订阅

编译原理要点

第一章编译引论

1、编译程序:将某一种程序设计语言写的程序翻译成等价的另一种语言的程序的程序

2、源语言:用来编写源程序的语言(汇编,高级程序设计语言)

3、源程序:用源语言写的程序

4、目标语言:目标程序描述的语言

5、目标程序:源程序经过编译后生成的程序

6、宿主语言:编译程序的实现语言

7、宿主机:编译程序的运行环境

8、分类:解释程序【接受某语言的源程序将其直接翻译成目标代码且执行】;编译程序【接受某语言的源程序将其直接翻译成等价的目标代码,然后执行且允许重复执行】;汇编程序【接受汇编源程序将其直接翻译成等价的极其语言的目标程序,然后执行且允许重复执行】

9、编译执行:由编译程序生成一个与源程序等价的目标程序,完全取代源程序【笔译】

10、解释执行:不生成目标程序,仅是对源程序逐句解释逐句执行【口译】

11、编译程序逻辑结构:词法分析-语法分析-语义分析和中间代码生成-代码优化-目标代码生成(表格管理,出错处理)

12、遍:对源程序或源程序的中间形式从头到尾扫描一遍,并做有关的分析加工,生成新的源程序的中间形式或生成目标程序

13、编译程序构造要素:源语言,目标语言,编译方法、技术与工具

 

第二章形式语言自动机理论基础

1、语言要素:语法(语言的描述规则),语义(语言的含义)

2、元语言:描述另一个语言的语言

3、字母表:元素的非空有穷集合,表中的元素称为符号,字母表也称为符号集

4、符号串:由字母表中的符号组成的任何有穷序列,符号串长度指符号串x中有m个符号,长度为m

5、x是一个符号串,把从x的尾部删去0个或若干个符号之后剩余的部分称为x前缀【后缀相反,不是自身称为真前缀或真后缀】

6、从一个符号串中删去它的一个前缀或一个后缀之后的剩余部分称为子串

7、文法是一个四元组G=(Vn,Vt,S,P) Vn非空有限的非终结符号集,Vt非空有限终结符号集,S公理,P有限产生式集

8、符号串的正闭包A+=A1UA^2U....UA^n;A的自反闭包为A*=A+U{E}

9、语言:给定一部文法G,从G的开始符号S出发,反复使用产生式对非终结符进行替换,最后得到的终结符号串的全体

10、直接推导,直接推导序列,最左推导(总是对句型中最左边的非终结符进行替换),最右推导,句型(包含非终结符),句子(只含终结符),规范推导(最右推导),规范推导得到规范句型,规范推导逆序为规范归约;给定一个句子或句型其最左最右推导惟一

11、递归文法:其中包括自身;直接递归(直接到自身),间接递归(经过中间到自身),左(右)递归

12、语言:推导的句子a属于终结符,S能推导出a;如果L(G1)=L(G2),则G1,G2文法等价;BNF表示法,扩充的BNF表示法

13、语法树是句子结构的图形表示,代表了句子的推导结果,有利于理解句子语法结构层次;一棵语法树包括了一个句型的所有可能的推导过程

14、二义文法:对一部文法,如果至少存在一个句子,有两棵不同语法树,称该句子是二义性的,包含二义性的句子的文法称为二义文法。

15、0型文法:对文法G中的规则不加任何限制,由图灵机来识别

16、1型文法:对产生式限制 aAb->aBb,上下文有关,由线性有界自动机来识别

17、2型文法:A->a A属于非终结符,a属于终结符和非终结符自反闭包,上下文无关文法,由非确定的下推自动机来识别

18、3型文法:A->aB,或A->a a是终结符,A,B属于非终结符,称文法G为3型文法,3型文法可由确定的有限状态自动机来识别

【从0型到3型,产生式越来越严,描述功能越来越弱】

19、确定的有限自动机(DFA):M=(S,E,f,S0,Z)。其中S是状态的有限集合,E是输入字符的有限集合,每个元素是一个输入字符,f状态转换函数,S0是M的惟一初态,Z是M的终态集

20、DFA等价表示: DFA形式定义-状态转换图-状态矩阵

21、非确定的有限自动机M(NFA M)是一个五元组M=(S,E,f,S0,Z) S0指M的非空初始状态,f状态转换函数,但这里后继状态不唯一;对任何一个NFA M,都存在一个DFA M'使L(M')=L(M)

22、等价:设DFA M的两个不同状态q1,q2,如果对任意输入字符串w,从q1,q2状态出发,总是同时到达接收状态或拒绝状态之中,称q1,q2等价,如果两个状态不等价,称q1,q2是可区别的

23、如果从DFA M的初始状态开始,任何输入序列都不能到达的那些状态称为无关状态;如果DFA M没有无关状态,且没有彼此等价的状态,称DFA M是归约的

24、DFA化简实现思想:通过删除无关状态,合并等价状态的归约过程,直到得到归约机,实现方法划分法(核心是寻找且合并等价状态)

25、由正规式表示的集合称为正规集,正规式不是集合

26、字母表上确定的有限自动机M所接受的语言L(M)是E上的一个正规集,对于每一个正规式,存在一个非确定有限自动机M,使得L(M)=L(r)

 

第三章词法分析

1、作用:扫描的同时根据语言的词法规则识别出具有独立意义的单词,并产生与源程序等价的属性字流。完成词法分析任务的程序称为词法分析程序或词法分析器;编译程序的第一个阶段且是必要阶段,核心任务是扫描识别单词且对识别出的单词给出定性定长的处理

2、单词:语言中具有独立意义的最小语法单位;要素【独立的意义,最小的语法单位】

3、单词类:关键字,标识符,常量,运算符,界限符

4、输入缓冲区:成对且对半互补的输入缓冲区模式,一个缓冲区分为两个半区

5、预处理程序:减少内存空间占用,减轻扫描器实质性处理负担;主要任务【滤掉程序中非单词成分,滤掉注释,宏替换,文件包含的嵌入,条件编译的嵌入】

6、二级目录表:主表-数据项=状态+分表地址或子程序入口;分表-数据项=当前输入字符+转换状态

7、扫描器自动生成器-LEX/FLEX

 

第四章语法分析

1、功能:按照源语言的文法,从源程序串识别出相应的语法范畴,同时进行语法检查;构造:源程序串,源语言的文法G,识别出的语法范畴的表示

2、自上而下语法分析是从G的开始符号S出发,通过反复使用产生式大队句型中的非终结符进行替换,逐步推导出源程序串,是一种产生的方法,面向目标的方法。

3、自下而上语法分析从输入串开始不断寻找子串与文法G中某个产生式P的候选式进行匹配,并用P的左部代替之,逐步归约到S,是一种辨认的方法,基于目标的方法

4、短语:S=>aAb,A=>p,p是句型apb相对于A的短语,直接短语就是A直接推导出p,直接短语一定是短语

5、句柄:一个句型的最左直接短语称为句柄,句柄一定是直接短语且具有最左性

6、直接左递归的消除,间接左递归的消除【把间接左递归文法改写成直接左递归文法,用消除直接左递归的方法改写文法】,消除回溯

7、LL(1)分析器的逻辑结构:总控程序,分析栈【存放分析过程中的文法符号】,分析表;扫描模式自左向右,分析模式最左推导,在分析中最多向前看1个输入字符

8、First(A)的含义指每个候选式的终结首符集;Follow(A)的含义指在文法G的一切句型中能够紧跟着A之后的一切终结符或#

9、一部文法G,若它的LL(1)分析表M不含多重定义入口,则称它是一个LL(1)文法,由LL(1)文法产生的语言称为LL(1)语言

10、任何LL(1)文法是无二义性的;若一文法中的非终结符含有左递归,则它必然是非LL(1)文法;非LL(1)语言是存在的;存在一种算法,能判定任一文法是否为LL(1)文法;存在一种算法,能判定任意两个LL(1)是否产生相同的语言;不存在这样的算法,它能判定上下文无关语言能否由LL(1)文法产生

 

第五章语法分析

1、基本思想:对给定的G按照一定原则求出G的文法符号间的继承关系,按照优先关系确定句柄实施规约

2、算符优先分析:定义算符之间的优先关系,借助关系寻找句柄进行规约;算符文法设有一文法G,如果G中没有U->...VW... V,W,U属于非终结符;算符文法的任何句型都不会含有两个相邻的非终结符

3、设G是一个算符文法,p是句型apb关于A的短语,且p至少含有一个终结符号,并且除自身外不再含有任何更小的带终结符符号的短语,则p是句型apb关于A的素短语,最左边的素短语为最左素短语

4、算符优先分析器:总控程序,分析栈,优先函数表

5、LR分析技术是编译系统中语法分析器实现最常用、最有效的一种方法【理论上比较完善,适用性强,便于自动生成】

6、LR分析:一类对源程序串进行自左向右扫描并进行规范归约的语法分析方法,L扫描模式自左向右,R分析模式最右推导逆序,K再多向前看K个字符

7、LR分析器组成:总控程序,分析栈,LR分析表【分析动作表,状态转换表】

8、一个句型的任意首部,称为该句型的一个前缀;规范句型的一个前缀,称为该句型的一个活前缀

9、LR(0)项目:在文法G的每个产生式的右部的任何位置添加一个圆点,所构成的每个产生式;分类【归约项目,接受项目,移进项目,待约项目】

10、识别文法G活前缀的DFA项目集的全体称为文法G的LR(0)项目集规范族

11、LR(0)文法:一个文法G的识别活前缀的DFA的每一个项目不存在既含移进项目又含归约项目或含有多个归约项目,则每个项目集的项目相容

12、如果每个入口不含多重定义,称为G的SLR(1)分析表,具有SLR(1)分析表的文法G称为SLR(1)文法,使用SLR(1)分析表的语法分析器称为SLR(1)分析器

13、按照LR(1)的项目集规范族构造的文法G的KR(1)分析表,如果每个入口不含多重定义,称它为LR(1)分析表,具有LR(1)分析表的文法称为LR(1)文法,使用LR(1)分析表的语法分析器称作LR(1)分析器

14、同心项目集:对文法LR(1)项目集规范族,存在两个项目集I0,I1,其中I0,I1项目集中的LR(0)项目相同,仅搜索符不同,I0,I1为G的同心项目集

15、按照LALR(1)的项目集规范族构造的文法G的LALR(1)分析表,如果每个入口不含多重定义,则称它为G的LALR(1)分析表。具有LALR(1)分析表的文法G称为LALR(1)文法。使用LALR(1)分析表的语法分析器称作LALR(1)分析器

16、任何一个二义文法都不是一个LR文法

17、编译中错误种类:词法错误,语法错误,语义错误,违反环境限制的错误

18、错误恢复策略:紧急恢复方式,短语级恢复,出错产生式,全局纠正

19、YACC:是一个LALR(1)分析器自动生成器,包括YACC语言和YACC编译器

 

第六章语义分析

1、任务:按照语法分析器识别的语法范畴进行语义检查和处理,产生相应的中间代码或目标代码,中间代码是介于源语言和目标代码之间的一种代码;引入目的:方便生成目标代码,便于优化和移植

2、文法符号形式定义 A=(G,V,F) G一般为二型文法,V属性点的有穷集,F关于属性的断言或谓词的有穷集

3、继承属性【由父节点或兄弟结点的属性定义】,综合属性【通过子节点的属性计算得到】

4、中间语言:N元式,逆波兰式,图

5、符号表:存放源程序中有关标识符的属性信息的数据结构,结构【名字域,属性信息域】,作用:收集标识符属性信息,语义检查依据,代码生成时地址分配依据

6、语句标号处理:先定义后引用,先引用后定义,对于多遍扫描的编译器视为先定义后引用处理,对于一遍扫描的编译器采用拉链-返填技术,先保存再填值

7、动态数组处理:内情向量表在程序运行时建立,编译时仅分配占内情向量表存储空间,确定后再将这些信息登录内情向量表

 

第七章代码优化

1、功能:在不改变程序运行效果的前提下,对被编译的程序进行等价变换,使之能生成更加高效的目标代码;过程包括等价【不改变程序执行效果】和变换【引起程序形式上的变动】

2、优化所涉及源程序范围:局部优化,循环优化,全局优化。优化阶段:中间代码级,目标代码级

3、局部优化:指在程序的一个基本块内进行的优化;基本块是一顺序执行的语句序列,只有唯一的入口和唯一的出口,特点是顺序执行,没有转进转出,分叉汇合

4、程序的控制流图G=(N,E,n0),N是流图的所有的结点组成的集合,n0是流图的首结点,E是流图的所有的有向边组成的集合

5、DAG无环路的有向图,叶节点,内部结点,标识符(附加在各结点上)

6、构成循环条件:强连通性,入口惟一;必经结点ni DOM nj,必经结点集D(n)

7、DOM是流图结点集上的一个偏序关系:自反性、传递性、反对称性

8、回边:a->b是流图G中的一条有向边,如果b DOM a,称a->b是流图G的一条回边

9、数据流分析:编译程序收集整个程序范围内的有关信息及分布在程序流程图每个基本块的信息

10、点:指明语句在流图基本块中的位置;定值点:变量x获得值的中间代码的位置d,称为定值点;引用点:引用变量x的中间代码的位置d,称为引用点

11、ud链:假设在程序中某点P引用了变量A的值,则把G中能到达P的A的定值点的全体,称为A在引用点P的引用-定值链;即变量A引用前所有可能到达d点的对A定值的定值表

12、活跃变量:如果存在一条从P开始的通路,其中引用了A在点P的值,称A在点P是活跃的,否则A在P点是死亡的

13、du链:假设在程序中某点P对一个变量A定值,则把该定值能到达的A的引用点的全体,称为A在定值点P的定值—引用链,du链是相对于定值点的引用情

14、到达-定值数据流方程:IN(Bi):能到达基本块Bi入口点之前的各个变量的所有定值点集;OUT(Bi):能到达基本块Bi出口之后的各变量定值点的集合,GEN(Bi):在Bi中定值且能到达Bi出口之后的所有定值点集;KILL(Bi):在基本块Bi外定值,且在Bi中又重新定值的那些变量的定值点集合;DEF(B):在基本块B中定值,且定值之前未曾在B中引用过的变量的集合;USE(B):在基本块B中引用的,但在引用前未曾在B中定值的变量集,IN(B):在基本块B入口点活跃变量的集合;OUT(B):在基本块B的出口点活跃变量的集合

15、循环的前置结点:在循环的入口结点前建立的一个新结点,以循环的入口结点为惟一后继

16、代码外提:循环中不变运算提到循环的前置结点中;强度削弱与删除归纳变量:将强度高的运算使用强度低的运算替代

 

第八章运行环境

1、过程,活动【动态,有限的生存期】,静态【一个名字的性质通过说明语句或隐或显规则而定义】,动态【名字的性质只有在程序运行时才能知道】

2、变量与值的两步映射:名字-(环境)-存储位置-(状态)-值;赋值改变状态,但不改变环境

3、存储分配策略:静态分配策略,动态分配策略【栈式方案,堆式方案】

4、静态、栈与堆的关系:可以静态分配的数据均可以栈分配,可以静态和栈分配的数据可以堆分配

 

2011年面试编译原理题目汇总

编译原理“遍”的概念

【对源程序或源程序的中间形式从头到尾扫描一遍,并做有关的分析加工,生成新的源程序的中间形式或生成目标程序】

什么是文法的二义性?

【对一部文法,如果至少存在一个句子,有两棵不同语法树,称该句子是二义性的,包含二义性的句子的文法称为二义文法。】

写出集合{0,1}的所有除01外的正规式

【ε,0,1】

正则表达式a(a|b)*a的意义

【以a开头和结尾,中间包含任意多个a或者b】

First集与Follow集

【First为某个符号下的第一个终结符,Follow为紧跟在符号后的第一个终结符或者#】

代码优化策略

【局部优化,循环优化,全局优化】

什么是编译原理?

【介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成】

语法分析中的自下向上分析是怎样的?

【从输入串开始不断寻找子串与文法G中某个产生式P的候选式进行匹配,并用P的左部代替之,逐步归约到S,是一种辨认的方法,基于目标的方法】

 

汇编复习笔记

1、汇编语言是一种符号化了的机器语言,即用指令助记符、符号地址、标号等符号书写程序的语言。

2、数据总线宽度指芯片内数据传送的宽度,外部数据总线宽度为芯片内和芯片外交换数据的宽度,地址总线宽度专用于传送地址的总线宽度

3、数据寄存器:AX(累加器),BX(基址),CX(移位保存计数值),DX(IO端口地址)

指针寄存器:SP(堆栈指针寄存器),BP(基址指针寄存器)

变址寄存器:SI(源变址寄存器),DI(目的变址寄存器)(以上均为通用)

控制寄存器:IP,FLAGS 段寄存器:CS,SS,DS,ES 程序可见寄存器可以分为通用寄存器,控制寄存器和段寄存器三类

注:除SP,ESP堆栈指针不能随意修改,其他通用都可以直接在指令中使用

4、运算结果标志位

CF 进位标志 溢出CF=1 

PF 奇偶标志

AF 辅助进位标志

ZF 零标志 结果为0其为1

SF 符号标志 负为1

OF 溢出标志 溢出为1

 

5、控制标志

IF 中断允许标志 为1响应中断

DF 方向标志

TF 陷阱标志 为1处于单步调试,为0连续调试

IOPL 特权标志

ID 标识标志

 

6、段寄存器

CS 指定当前代码段

SS 指定当前堆栈

DS 指定当前运行程序所使用的数据段

ES 附加数据段

程序执行时,其当前段的段基址放在相应的段寄存器中,偏移量视访问内存的操作类型决定,可能放在寄存器中或通过操作数寻址方式得到

 

7、寻址方式

立即寻址 MOV AL,6 (AL)=6

寄存器寻址方式 MOV BX,AX (BX)=(AX)

有效地址由四种成分组成:

位移量基址  变址 比例因子(变址寄存器的内容乘以比例因子来取得变址值)

直接寻址方式 MOV AL,[78H] 若DS=3000H (30078H)=12H (AL)=12H

寄存器间接寻址 MOV AL,[BX] (DS)=3000H (BX)=78H (30078H)=12H (AL)=12H

寄存器相对寻址 MOV AL,8[BX] (DS)=3000H (BX)=70H (30078H)=12H (AL)=12H

基址变址寻址 MOV AL,[BX][SI]

相对基址变址寻址 MOV AL,MASK[BX][SI]  MOVAL,[MASK+BX+SI]

 

8、转移指令

JMP 目标

段内转移只影响指令指针IP值,段间转移既要影响IP值,也要影响代码段寄存器CS的值

段间直接寻址方式 JMP FAR PTR LAB指令中直接给出转向4字节的偏移量和段基址

段间间接寻址方式 JMP DWORD PTR [BX] 表示BX指向一个双字变量

 

9、通用数据传送指令

MOV传送指令

格式 MOV DST,SRC  SRC->DST

MOV指令可以实现一个字节,一个字,一个双字的数据传送

注意点:

立即数不能作为目标操作数,立即数不能直接送段寄存器,目标寄存器不能是CS,两个段寄存器间不能直接传送,两个存储单元间不能直接传送

堆栈操作指令

PUSH SRC先修改堆栈指针使其指向新的栈顶,然后把SRC压入栈顶单元

POP DST 先把堆栈指针所指向单元的内容弹出到DST,然后修改堆栈指针以指向新的栈顶

交换指令 XCHG

XCHGOPR1,OPR2 交换两个操作数 寄存器-寄存器  寄存器-存储器 存储器-寄存器

 

10、输入输出指令

输入指令IN IN ACR,PORT

输出指令OUT OUT PORT,ACR

 

11、查表转换指令XLAT

通过AL寄存器中的索引值在表中查得表项内容并将之返回到AL中

 

12、地址传送指令

传送有效地址指令LEA

LEAREG,SRC 把源操作数的有效地址送给指定的寄存器,源操作数必须是存储器操作数

 

13、加载数据段指针指令LDS

LDSREG,SRC 把源操作数中的FAR型指针拷贝到DS和指令中指定的通用寄存器

加载附加数据段指针指令LES

LESREG,SRC 目的寄存器不允许使用段寄存器

加载FS数据段指针指令LFS

LFSREG,SRC

加载GS数据段指针指令LGS

LGSREG,SRC

加载堆栈段指针指令LSS

LSSREG,SRC

 

14、标志传送指令

标志进栈指令 PUSHF/PUSHFD

标志出栈指令 POPF/POPFD

标志送AH指令 LAHF

AH送标志寄存器指令 SAHF

 

15、类型转换指令

字节扩展成字指令CBW  把AL寄存器中的符号位扩展到AH中

字扩展成双字指令 CWD 把AX寄存器中的符号位扩展到DX中

双字扩展成四字指令CDQ 把EAX寄存器中的符号位扩展到EDX中

AX符号位扩展到EAX指令CWDE 把AX寄存器中的符号位值扩展到EAX的高16位

 

16、二进制加法指令

加法指令 ADD ADD DST,SRC (DST)+(SRC)->DST

带进位加法指令ADC ADC DST,SRC (DST)+(SRC)+CF->DST

加1指令INC INC DST (DST)+1->DST

交换并相加指令XADD XADD DST,SRC (DST)+(SRC)->TEMP (DST)->SRC TEMP->DST

 

17、条件标志位

对于两个二进制数进行加法运算,无符号数相加结果若使CF置1,则表示溢出,带符号数相加结果若使OF置1,则表示溢出。

CF位是根据最高有效位是否有向高位的进位设置的,OF位则是根据操作数的符号及其变化情况来设置

 

18、二进制减法指令

减法指令SUB DST,SRC (DST)-(SRC)->DST

带借位减法指令SBB DST,SRC (DST)-(SRC)-CF->DST

减1指令DEC DST  (DST)-1->DST

比较指令CMP DST,SRC (DST)-(SRC) 影响标志位

求补指令NEG DST 0-(DST)->DST  用来求一个数相反数

 

19、二进制乘法指令

无符号乘法指令MUL SRC  (AX)<-(AL)*(SRC)(DX,AX)<-(AX)*(SRC)

这个源操作数只能是寄存器或存储器操作数,不能是立即数,另一个乘数必须事先放在累加器中

带符号乘法指令IMUL SRC

除了是实现两个带符号数相乘外,其他与MUL指令相同

 

20、二进制除法指令

无符号除法指令DIV SRC 操作数作为除数使用,被除数必须事先存放在隐含的寄存器中

带符号除法指令IDIV SRC 商和余数均为带符号数,余数符号与被除数相同,若除数为0或商超出操作数所表示的范围会产生除法错中断,此时系统直接进入0号中断处理程序

 

21、逻辑指令

逻辑指令提供了对二进制位的控制

逻辑非指令可用于把操作数的每一位均变反的场合

逻辑与指令用于把某位清0的场合

逻辑测试指令可用于只测试其值而不改变操作数的场合

逻辑或指令用于把某位置1的场合

逻辑异或指令用于把某位变反的场合

 

22、位扫描指令

顺向扫描指令BSF DST,SRC 从右向左扫描操作数中第一个含1的位,并把扫描到的第一个含1的位号送DST操作数

 

23、基本移位指令

SHL 逻辑左移 SAL 算术左移

SHR 逻辑右移(补0) SAR 算术右移(左侧符号不变)

移位指令常常用来作乘以2或除以2的操作,其中算术移位指令适用于带符号数操作,逻辑移位指令用于无符号数运算,使用这种方法比直接用乘除法效率要高

 

24、循环移位指令

ROL 循环左移 ROR 循环右移

RCL 带进位循环左移 RCR 带进位循环右移

 

25、程序控制指令

无条件转移指令JMP DST DST为转移的目标地址

段内转移:这类转移指令只改变IP值,不改变CS值

-段内直接短转移 JMP SHORT LABEL 无条件转移到标号处(标号地址与IP值差+127--128字节)

-段内直接近转移 JMP NEAR PTR LABEL无条件转移到标号处,可以转移到段内的任一个位置

-段内间接转移 JMP REG/M 转向地址在通用寄存器或内存单元中

段间转移:这类转移指令既改变IP值,也改变CS值

-段间直接转移 JMP FAR PTR LABEL 无条件转移到标号处,标号与JMP指令分别处在不同段中

-段间间接转移 JMP DWORD PTR M 无条件段间转移,转向地址只能放在内存的双字变量中

 

条件转移指令

JccLABEL 如果条件为真,转向标号处,否则顺序执行下一条指令

检测单个标志位实现转移的条件转移指令 JE JNE 相等,不等

根据两个带符号数比较结果实现转移的条件转移指令 JG JNLE 大于/不小于等于

根据两个无符号数比较结果实现转移的条件转移指令 JA JNBE 高于/不低于等于

 

26、循环指令

循环指令LOOP LABEL (CX)-1->CX 若(CX)≠0,则转向标号处执行循环体

相等循环指令LOOPE/LOOPZ LABEL (CX)-1->CX 若(CX)≠0且ZF=1,则转向标号处执行循环体

不等循环指令LOOPNE/LOOPNZ LABEL (CX)-1->CX 若(CX)≠0且ZF=1,则转向标号处执行循环体

 

27、程序调用

子程序调用指令CALL DST 调用子程序,执行时先把返回地址压入堆栈,再形成子程序入口地址

段内调用

-段内直接调用CALL PROCEDURE 调用PROCEDURE子程序

-段内间接调用CALL REG/M

执行时先把返回地址压入堆栈,再把指令指定的16位通用寄存器或内存单元的内容送给IP

 

段间调用

-段间直接调用 CALL FAR PTR PROCEDURE

执行是先把返回地址压入堆栈,再把指令中的偏移量部分送给IP,段基址部分送给CS

-段间间接调用 CALL M

执行时把M的低字送给IP,高字送给CS

 

子程序返回指令RET 从栈顶弹出返回地址,然后返回到主程序继续执行

带立即数的返回指令RET imm16 最后修改栈顶指针SP=(SP)+imm16

 

28、中断

中断类型:内部中断(软),外部中断(硬)

中断向量:中断处理子程序的入口地址

中断类型号:IBM相应编号为0-255

中断向量表:中断向量按照中断类型号由小到大的顺序排列

中断调用指令INT n n为中断类型号

中断返回指令IRET

 

29、串操作指令

MOVSB 字节传送

MOVSW 字传送

MOVSD 双字传送

串传送指令MOVS DST,SRC

取串指令LODS SRC

存串指令STOS DST

串输入指令INS DST,DX

串输出指令OUTS DX,SRC

串比较指令CMPS DST,SRC

串扫描指令SCAS DST

 

 

30、汇编语句格式

指令:每一条指令语句都要生成机器代码,各对应一种CPU操作

伪指令:语句由汇编程序在汇编过程中执行,除了数据定义分配存储空间外,其它伪指令不生成目标码

宏指令:由用户按照宏定义格式编写的一段程序,其中可以包含指令,伪指令,甚至另一条宏指令。

[名字]助记符<操作数>[;注释] []可选

名字:名字域是语句中的符号地址,指令的名字叫做标号,名字具有三属性,段基址,偏移量和类型

助记符:给出操作的符号表示

操作数:为操作提供必要的信息,每条指令语句的操作数个数已由系统确定

注释:以说明本条语句在程序中的功能

 

段定义伪指令 SEGMENT...ENDS

ASSUME伪指令 ASSUME 段寄存器名:段名[,......] 说明段寄存器和段之间的关系,该语句并不给段寄存器赋值,通常放在代码段或主过程的第一个语句位置

过程定义伪指令 PROC[类型]...ENDP 定义一个过程,NEAR 类型表明该过程只能在段内被调用,FAR类型表明该过程既可以在段间被调用,也可以在段内被调用

程序结束伪指令 END [过程名] 表示源程序结束

INT 20H指令功能:退出应用程序,释放所占内存并返回DOS

 

31、com文件

.com文件是一种可执行程序,它的总长度不能超过64k,整个文件只能由一个段组成,适合编制较小的程序。.com程序的代码,数据及堆栈数据在同一段中

ORG伪指令: ORG 数值表达式,设置地址计数器内容为数值表达式的值

 

32、常用伪指令

数据定义伪指令 [变量名] 助记符操作数  为变量分配单元,并为其初始化或只预留空间。

操作数有:数字常量及数值表达式,字符串常量,地址表达式,?,<n>DUP(操作数,......)[对某些数据重复多次]

LABEL伪指令:名字 LABEL 类型 为下一个存储单元起一个名字,定义它的类型

符号定义伪指令:EQU伪指令等号伪指令【符号名=数值表达式】,EVEN对准伪指令

 

33、结构伪指令

结构定义伪指令 结构名 STRUC ...结构名 ENDS

结构预置语句 结构变量名结构名 <字段值表> 为结构变量分配存储空间及初始化

 

34、汇编语言操作符

算术操作符: + - * /  MOD

逻辑操作符: AND OR XOR NOT,逻辑操作符按位操作

关系操作符: EQ NE LT LE GT GE

返回值操作符:

属性操作符: PTR操作符指定地址表达式的类型THIS 操作符为存储器操作数指定类型

SHORT 操作符 HIGH、LOW操作符 -字节分离操作符

 

35、汇编程序上机过程

通过建立,汇编,连接,运行过程

建立:文件名的扩展名部分必须为.ASM

汇编:汇编语言源程序经过汇编,才可以生成目标程序

连接:连接分别产生的目标模块,解决外部交叉调用,产生一个可重定位的装入模块、以及产生可选的内存映像文件

运行:生成.EXE文件后,就可以键入该文件名运行

调试:静态差错即检查源程序,并在源程序级用文本编辑器进行修改,然后再汇编、连接、运行。

 

36、使用ROM BIOS中断调用

键盘中断调用16H:每个功能对应一个功能号

功能号->AH

INT 16H

显示器中断调用10H

 

37、程序流程设计

循环程序设计包括:循环初始化、循环体、循环控制部分

 

38、子程序设计

调用程序和子程序在同一个代码段的程序结构:子程序可以是NEAR型或缺省,段长不超过64K

调用程序和子程序在不同段的程序结构:子程序是FAR属性,CALL指令要显式说明是FAR属性

子程序参数传递:通过寄存器传递,通过变量传递,通过地址表传递参数地址,通过堆栈传递参数或参数地址

 

39、宏指令

宏指令是源程序中一段有独立功能的程序代码,宏指令由宏定义伪指令定义,只需在源程序中定义一次。

宏调用格式宏指令名[实参数表] 实参数之间用逗号隔开

宏扩展:用宏定义体替换宏指令名,并用实参数替换形式参数

LOACL伪指令:LOCAL 局部符号表,对局部符号表中的每个符号在汇编时每扩展一次便建立一个惟一的符号

宏指令嵌套:有两种情况(1)宏定义体中含有宏调用 (2)宏定义体中含有宏定义

重复伪指令:REPT 重复次数由表达式给出

不定重复伪指令:IRP伪指令,重复次数由实参数个数决定 IRPC伪指令,重复次数由字符串中的字符个数确定

 

40、中断

中断源:引起中断的事件称为中断源

中断分类:内中断-INT n指令,除法错中断,溢出中断,单步中断,断点中断

外中断-可屏蔽中断(INTR):该外设的中断请求是否屏蔽,CPU是否允许响应中断

IF=0,CPU禁止响应任何外设中断 IF=1 允许CPU响应外设中断请求,在中断处理完成后,必须把中断结束位置1,结束硬件中断用下面指令

MOVAL,20H

OUT20H,AL

-不可屏蔽中断

 

中断优先级:相对优先级可以通过设置中断命令寄存器的某些位实现,固定优先级是反映中断源的重要性和工作速度有明显等级差别

中断嵌套:正在运行的中断处理程序又被其他中断源中断,要求堆栈的空间足够大

中断处理子程序设计步骤

-保存有关寄存器内容

-若允许中断嵌套则开中断

-处理中断

-关中断

-发送中断结束命令给中断命令寄存器

-恢复寄存器内容

-返回被中断的程序

 

主程序的准备工作

-保存原中断向量

-设置新中断向量

-清零中断屏蔽寄存器的相应位

-设置CPU中断允许位

-在主程序结束之前,恢复原中断向量

 

可编程中断控制器8259A内部结构

中断请求寄存器IRR

中断屏蔽寄存器IMR

中断服务寄存器ISR

优先权判决电路

控制逻辑

数据总线缓冲器

读/写控制电路

级联缓冲器/比较器

工作方式:

-优先级管理方式:全嵌套方式、特殊全嵌套方式、优先级自动循环方式、优先级特殊循环方式

-中断源的屏蔽方式:普通屏蔽方式、特殊屏蔽方式

-中断结束方式:中断自动结束方式、普通中断结束方式、特殊中断结束方式

-连接系统总线的方式:非缓冲方式、缓冲方式

-中断触发方式:边沿触发方式、电平触发方式

 

41、模块连接

-对各模块分别处理以保证其功能的正确性

-构造主模块

-构造子模块

-对所有模块分别汇编,生成各自的.obj文件

-连接与本系统相关的所有.obj文件

-调试及运行程序

 

 

2011年汇编题目汇总

选择,问你下列哪个是正确的【C】

①REP      LODSB

②REP      SCASB

③REP      CMPSB

④REP      MOVSB

MOV AL6[BX]的立即数寻址方式是什么?

【寄存器相对寻址方式】

考查汇编语言,将初始的AL=90H,写条语句将AL置为00H

【XOR AL,AL】

中断服务子程序包括哪些组成部分?

【关中断、保护现场、中断服务、开中断、恢复现场、中断返回】

模块设计的具体步骤?

【先按模块独立汇编,然后再与应用的其他模块(有可能是汇编程序模块,也有可能是C程序模块)链接形成一个可执行的程序】

MOV AL[BX] ,源操作数的寻址方式?

【寄存器间接寻址】

什么是汇编语言?汇编语言的源程序是什么?

【面向机器的程序设计语言,用指令助记符,符号地址标号等符号书写程序的语言;源程序就是汇编语言程序用汇编语言编写的一种计算机程序】

汇编中指令指针时哪一个?(A.ip B.sp  C.bp.  D.psw )

【A】

汇编语言有什么特点?

【占用空间少,执行速度快,直接控制硬件能力强,不容易掌握,开发周期长,可移植性差】

jmp bx的寻址方式是什么?

【段内间接寻址方式】

汇编中END的含义?

【该伪指令表示源程序的结束.令汇编程序停止汇编。因此,任何一个完整的源程序均应有END指令】

 

 

离散复习

 

第二章谓词逻辑

1、项:用于表达个体的符号串,相当于汉语中的名词

2、公式:用于表达命题的符号串,相当于汉语中的句子

3、使用符号:个体变元【变元】,个体常元【常元】,函数符号,谓词符号,量词符号,联结词符号,圆括号和逗号

4、若公式B是公式A的子串,则称B为A的子公式,每个原子公式仅有的子公式是它自己

5、不出现变元的项称为基项,也称为闭项,没有自由变元的公式称为语句,也称为闭公式。没有约束变元的公式称为开公式

6、论域也称为个体域

7、永真式:A在每个解释中为真,永假式类似(矛盾式,不可满足式)

8、重言式:用谓词逻辑公式分别同时替换命题逻辑公式A中的不同命题变元得到的谓词逻辑公式。命题逻辑永真式的替换实例称为重言式

9、重言式一定是永真式,永真式未必是重言式,永真式都是可满足式,可满足式未必是永真式

 

 

第三章公理系统

1、定义:指从事先给定的公里出发,根据推理规则推导出一系列定理,由此而形成的演绎系统

2、组成:符号集,公式集,公理集,推理规则集,定理集

3、性质:可靠性【只要公设都真,每个定理就真】,完备性【公设集的每个逻辑推论都是公理系统的定理】,协调性,独立性

 

第四章归结法原理

1、文字的有穷集合称为子句,不包含任何文字的子句称为空子句

2、如果真值赋值v满足子句集S中的每个子句,则称v满足S,如果至少有一个真值赋值满足子句集S,则称S是可满足的,否则S是不可满足的

3、如果一个文字恰为另一个文字的否定,则称它们为相反的文字。L1,L2是相反的文字,C1,C2是子句,称C11-{L1} U  C2-{L2}为C1和C2的归结子句

4、若C是C1,C2的归结子句,则C是C1,C2的逻辑推论

5、子句集S是不可满足的当且仅当存在S的反驳

6、前束范式形式Q1v1...QvnB,Q1v1...Qnvn为该前束范式的前束词,称B为它的母式

7、不出现存在量词存在的前束范式称为无 存在 前束范式

8、若B是前束范式A的无存在 前束范式,则A不可满足当且仅当B不可满足

9、不出现变元的文字称为基文字,基文字的有穷集合称为基子句

10、如果解释I满足子句集S中的每个子句,则称I满足S,如果至少有一个解释满足子句集S,则称S是可满足的,否则S为不可满足的

 

第五章集合的基本概念和运算

1、集合:人们直观上或思想上能够明确区分的一些对象所构成的一个整体,通过枚举法和抽象法展示

2、基数:有穷集A的元素个数称为A的基数

3、如果集合A中的每个元素都是集合,则称A为集合的聚合,或者集合族

4、集合归纳定义的三个组成部分:基础语句【直接规定某些对象是该集合的元素】,归纳语句【规定由已知元素得到新元素的办法】,权限语句【限定集合的范围,保证定义集合的唯一性】

5、字母表:符号的有穷非空集合称为字母表,也称为符号集

6、将两个对象x,y按x前y后的顺序构成的序列称为有序偶,分别称x,y为有序偶的第一元,第二元

7、笛卡尔乘积两个集合的乘积,A中的元素为第一元素,B中的元素为第二元素,构成有序偶

 

第六章关系

1、关系:任何有序偶的集合称为二元关系,简称关系

2、定义域:关系R中所有有序偶的第一元组成的集合

3、值域:关系R中所有有序偶的第二元组成的集合

4、关系矩阵:从X到Y的关系,m*n的关系

5、R是自反的:R的关系矩阵的主对角线全为1,R的关系图中每个顶点上都有自环【对应反自反】

6、R是对称的:R的关系矩阵是对称矩阵,R的关系图中没有单向边(或者无弧或者两条相反方向的弧)【对应反对称】

7、R是传递的:R的关系图中从顶点x到顶点y有长度大于1的通路,必有从x到y的有向边

8、关系复合:R是从x到y的关系,S是从y到z的关系,称x到z的一个关系为R,S的复合关系

9、逆关系:将R中的每个有序偶的第一元与第二元对调就得到逆关系,关系矩阵转置,关系图中每条有向边反向

10、闭包:R的自反闭包是包含R的最小自反的关系。B是A的闭包满足B是自反、对称、传递的,A属于B,对于集合X上的任何自反关系C,只要A属于C,则B属于C

11、若R是非空集合P上自反的、反对称的、传递的关系,则称R为偏序关系或偏序

12、若R是非空集合P上反自反的、传递的关系,则称R为严格偏序关系或严格偏序

13、偏序集中x是y的紧邻前元,则称y遮盖x

14、<A,≤>是偏序集,B属于A,b属于B,对于每个x属于B,都有x<=b, b为B的最大元【最小元b<=x】,b<x称b为B的极大元【极小元x<b】

15、<A,≤>是偏序集,B属于A,b属于A,对于每个x属于B,都有x<=b, b为B的上界【下界b<=x】,B的上界集合的最小元为B的最小上界,上确界,B的下界集合的最大元为B的最大下界,下确界;最大元一定是上确界,最小元一定是下确界。每个集合最多只有一个上确界

16、良序集:<P,<=>偏序,P的每个非空子集都有最小元,称<=为良序,<P,<=>为良序集;良序集必为全序集,全序集未必是良序集,良序的逆关系未必是良序

17、若A是非空集合S的非空子集的聚合,并且UA=S,则称A为S的覆盖

18、A为S的覆盖,A中任意两不同元素B,C,B交C为空,则A为S的划分,A的元素为划分块,A的元素个数为A的秩【每个块都不是空集,S的每个元素都在一个块中,任何两不同块都没有公共元素】

19、等价关系:R是非空集合X上自反的、对称的、传递的关系

20、等价类:一个等价类元素之间互相等价,有不同的元素代表的等价类或者相等,或者不相交。所有等价类的并集是集合X,等价类的聚合确定了集合X的一个划分

21、商集:R等价类的集合是X的划分,并称它为X模R的商集

22、每个等价关系确定一个划分,每个划分确定一个等价关系

 

第七章函数

1、设f是从集合X到Y的关系,若对每个x属于X存在唯一y属于Y,<x,y>属于f,则称f为从X到Y的函数,记为X到Y

2、f是从X到Y的函数,A属于X,从A到Y的函数称f受限制于A

3、对于每个x存在唯一的y属于Y,使得<x,y>属于f,称f为从X到Y的偏函数

4、满射:对于每个y属于Y,都存在x属于X,使得f(x)=y,称f为满射

5、单射:对于任意x,y属于X,只要f(x)=f(y),就有x=y,只有x不等y,f(x)不等f(y)

6、双射:既是单射,也是满射

7、f是从X到Y的函数,g是从Y到Z的函数,f和g【满射->满射;单射->单射;双射->双射】

8、常值函数:设函数f:X->Y,如果对于所有x属于X,存在某一个y属于Y,使得f(x)=y称f为常值函数

9、设f:X->Y是双射函数,则其逆关系是双射函数Y->X

10、双射集合构成群:封闭性;结合律;有单位元;有逆元

 

第八章自然数

1、集合A是无穷集当且仅当A与它的某些真子集等势

2、集合A是有穷集当且仅当A与它的任何真子集都不等势

3、与某个自然数等势的集合称为有穷集,否则称为无穷集

4、任何有穷集只与一个自然数等势

5、任何与自然数集合等势的集合称为可数无穷集

6、有穷集和可数无穷集统称为可数集,不是可数集的无穷集称为不可数集

7、任何无穷集必有可数无穷子集

8、可数集合删去或者合并一个有穷集合仍然是可数集合

9、两个可数集合的并,笛卡尔积仍然是可数集

 

 

第九章图的基本概念

1、带权图:为每条弧或边指定了权的图称为带权图

2、关联、相邻、邻接,自环,平行弧,平行边,多重弧图,多重边图,简单图,引出弧,引入弧,引出次数,引入次数,孤立点(次数0),悬挂点(次数1),悬挂边,零图(每个顶点都是孤立点),平凡图

3、次数为奇数的顶点称为奇顶点,次数为偶数的顶点为偶顶点,在任何图中奇顶点的个数必为偶数

4、正则图:所有顶点次数都是同一个数;完全图:任何两个顶点之间都有一条边的简单无向图;有向完全图:任何两顶点恰有一条弧的简单有向图

5、同构图:同样的顶点数,同样的边数,对于任意自然数K,次数为k的顶点数一样多,有同样多的环

6、子图/部分图,真子图,补图,通路,长度,简单通路,基本通路,回路,简单回路,基本回路,无回路图,半通路,强连通,单向连通,弱连通,不连通

7、若从顶点u可以到达顶点v,则存在从u到v的基本通路

8、有向图D是单向连通的当且仅当D有完备通路

9、链,简单链,基本链,闭合链,圈,割点(去掉不连通),割边(去掉不连通),强连通分图,弱连通分图,压缩(把每个强连通分图作为一个点)

 

第十章树

1、定义:连通且无圈的无向图为树,非平凡树中至少有两片树叶

2、称为顶点或弧指定了次序的根数是有序树

3、每个顶点的引出次数都等于m或0的根数称为完全m元树

4、在所有带权为p1...pn的二元树中,权最小的带权二元树称为最优二元树

5、生成树,破圈法,最小生成树,割集(G中分离出E后成为两个连通分支,E是最小要分离的量);基本割集(只包含一个树枝的割集)

6、每个圈与任何生成树的补至少有一条公共边,每个圈都包含弦;每个割集与任何生成树至少有一条公共边;任何圈和任何割集都有偶数条公共边

 

第十四章二分图

1、V分成两个非空子集X,Y,并且使得同一子集中的任何两个顶点都互不临界,G为二分图

2、非平凡无向图G是二分图当且仅当G的每个圈的长度都是偶数

3、M属于E,若M中任何两条边都不相邻,则称M为G的匹配,边数最多的匹配称为最大匹配

4、M是二分图G的匹配,P是G中的基本链,P中任何相邻的两条边恰有一条属于M,则称P为关于M的交错链

5、与M中的边关联的顶点为M的饱和顶点,称不与M中任何边关联的顶点为M的非饱和顶点;两个端点都是匹配M的非饱和顶点的交错链称为关于M的可扩充链;最大匹配M当且仅当G中不存在关于M的可扩充链

 

第十五章平面图

1、若能将无向图G画在平面上,而使边不在非顶点处相交,则称G为平面图,否则为非平面图

2、若G是有K个面(n,m)连通平面图,则以下欧拉公式成立n-m+k=2

3、若增加一条连接平面图G的任意两不相邻顶点的边,都会使G变成非平面图,称G为极大平面图,去掉G的任意一条边都会使G成为平面图,G为极小非平面图

4、简单无向图G是至少三个顶点的极大平面图,则G的每个面的次数都是3

5、若图G1,G2是同构的,或者通过反复插入和除去次数为2的顶点能够使它们同构,称它们同胚

6、库拉托夫斯基定理:无向图G是平面图当且仅当它不含同胚于K3,3或K5的子图

7、若G是平面图,则G的色度<=5 (五色定理)

 

 

2011年面试离散题目汇总

矛盾式的概念,然后给出一串式子让你判断是不是矛盾式?

【设A为任一命题公式,若A在它的各种指派情况下,其取值均为假】

什么是满射?A到B是满射,B到C是满射问A到C是不是满射?

【对于每个y属于Y,都存在x属于X,使得f(x)=y,称f为满射,A到C是满射】

什么是命题的对偶式?

【在仅含有联结词与(∧)、或(∨)、非(┌)的命题公式A中,将∨换成∧,∧换成∨,若A中还含有0或1,则还需将其中的0换成1,1换成0,而命题保持不变,所得到的新命题公式A*就是A的对偶式】

什么叫割边?

【图中去掉该边就不再连通】

<G,*>是一个群,<B,*>满足什么性质时,<B,*>是<G,*>的一个子群?

【B是G的子集,且B在*运算下也是一个群】

主析取范式和主合取范式的概念

【对于给定的命题公式,如果有一个等价公式,它仅由小项的析取所组成,则称该等价式为原式的主析取范式;对于给定的命题公式,如果有一个等价公式,它仅由大项的合取所组成,则称该等价式为原式的主合取范式】

哈斯图

【图中的每个结点表示集合A中的一个元素,结点的位置按它们在偏序中的次序从底向上排列。即对任意a,b属于A,若a≤b且a≠b,则a排在b的下边。如果a≤b且a≠b,且不存在c∈A满足a≤c且c≤b,则在a和b之间连一条线。这样画出的图叫哈斯图】

什么是群?

【设<G,*>是一个代数系统,*是G上的二元运算,如果*在G上是封闭的并且是可结合性的,存在幺元,每个元素的逆元也存在于G中,称代数系统为一个群】

命题与悖论有什么区别?

【能表达判断并具有确定真值的陈述句是命题;在逻辑上可以推导出互相矛盾之结论,但表面上又能自圆其说的命题或理论体系为悖论】

 

数据库复习

 

第一章概论

1、数据管理:对数据进行分类,组织,编码,存储,检索和维护,是数据处理的中心问题

2、数据库:存放数据的仓库,需要由一个软件系统统一管理,这个系统称为数据库管理系统

3、数据模型:数据特征的抽象,用来描述数据的一组概念和定义(数据结构,数据操作,数据的完整性约束),分为逻辑数据模型【用户所看到的数据模型】,物理数据模型【表示数据存储结构和存取方法】

4、数据库系统结构:一般划分为三个层次,称为三级模式,外模式,模式,内模式

模式-逻辑模式,是全体数据的逻辑结构和特征的描述,构成了数据库的一个总的框架

外模式-数据库用户能看见的局部数据的逻辑结构和特征的描述,外模式是模式的子集,一个数据库可以有多个外模式

内模式-存储模式,数据物理结构和存储方式的描述

外模式多个,内模式和模式只有一个,三级模式对数据三个抽象级别(视图级、概念级、物理级)

两级映像:外模式/模式映像模式/内模式映像,一个模式对应多个外模式实现数据的逻辑独立性,一个模式对应一个内模式,提供数据物理独立性

5、数据库定义功能:模式定义语言【定义数据库全局逻辑结构】,外模式定义语言【定义用户的局部逻辑结构】,内模式定义语言【定义物理数据库的结构】

6、数据库人员分类:数据库管理员,系统分析员,应用程序员,用户

7、数据库管理系统主要功能:数据定义,数据操纵,数据保护,数据维护

 

第二章数据模型

1、实体:客观存在并可相互区别的事物称为实体

2、属性:实体所具有的某一特征称为属性

3、联系:实体内部的联系【组成实体各属性之间的联系】,实体之间的联系【通常指不同实体集之间的联系】,两个实体集之间联系有1-1,1-n,m-n三种。多个实体集之间也可以存在有联系,称为多元联系

4、ER图:实体,属性和联系的方法。基数比约束,参与约束,实体参与度(实体参与联系的最小最大次数)

弱实体:这种实体的存在是依赖于其他实体而存在的

5、层次模型:用树型结构表示各类实体以及实体间的联系

6、关系模型:以关系为基础发展起来的【关系,属性,域,元组-对于实体集中的一个个体,键-唯一标识一个元组】

 

第三章关系数据库

1、组成:数据模型【数据结构,数据操作,完整性约束】,关系数据结构、关系操作集合、关系完整性约束

2、域:一组具有相同数据类型的值的集合,关系中用域表示属性的取值范围

3、笛卡尔积:给定一组集合D1,D2,它们可以是相同的,D1*D2*...*Dn所有域的所有值的一个组合,不能重复

4、元组:笛卡尔积中的每一个元素叫做一个n元组

5、分量:笛卡尔积元素中的每一个值叫做一个分量

6、关系:D1*D2*..*Dn的任一个子集称为D1,D2...Dn上的一个关系,N叫做关系的目或度

7、关系模式:关系的型,对关系的描述,包括关系名、属性名、属性的类型和长度,以及属性固有的数据关联关系,关系是值,是元组的集合

8、关系数据库:关系模式的集合称为关系数据库模式

9、关系的键:唯一标识元组的属性或属性组称为关系的键,在一个关系中,如果有多个候选键,选其中一个作为主键

10、关系模型的三类完整性:实体完整性【指主键的值不能为空或部分为空】,参照完整性【对关系中作为外键的值的约束】,用户定义的完整性【针对某一具体关系数据库的约束条件】

11、关系的运算

并:由属于R或属于S的元组组成

差:由属于R而不属于S的所有元组组成

交:由既属于R又属于S的元组组成

笛卡尔积:元组的前n列是关系R的一个元组,后m列是关系S的一个元组

12、专门关系运算

选择:从关系中选择满足一定条件的元组子集

投影:从R中选择若干属性列组成新的关系

连接:把两个关系中的元组按条件连接起来,形成一个新关系,条件连接【不要求去掉重复列】,自然连接【要求把重复列去掉】

除运算:生成一个新的关系,新关系中的属性是R的属性中去掉与S具有公共域属性的其它属性

外连接:左外连接-包含关系R中不满足连接条件的元组 右外连接-包含了关系S中不满足连接条件的元组 完全外连接-包含关系R和S不满足连接条件的元组

13、关系数据语言

关系代数语言,关系演算语言【元组关系演算语言,域关系演算语言】,具有关系带上和关系演算双重特点的语言(SQL)

 

第五章查询处理和查询优化

1、数据库查询语的具体处理过程:解释方式【每一次都重新解释执行查询语句,事务完成后返回查询结果】,编译方式【先进行编译处理,生成可执行代码,运行时直接执行可执行代码】

2、选择操作实现:顺序扫描方法,二分查找法,使用索引扫描方法,逻辑合取AND

3、连接操作的实现:嵌套循环法,索引嵌套循环法,排序合并法,散列连接法

4、查询优化技术:代数优化,基于存储路径的优化,基于代价估算的优化

 

第六章数据库的安全性

1、定义:保护数据库,防止因用户非法使用数据库造成数据泄露、更改或破坏

2、三类计算机系统安全性问题:技术安全、管理安全、政策法律

3、存取控制:自主存取控制DAC 强制存取控制MAC

4、SQL Server的安全体系结构四个等级:客户机操作系统安全性,SQL Server的登录安全性,数据库的使用安全性,数据库对象的使用安全性

5、SQL验证阶段:验证阶段,许可确认阶段

 

第七章数据库的完整性

1、定义:防止数据库中存在【不符合语义的数据,不正确的数据】,保证数据库中数据的质量

2、完整性约束条件:列级约束,元组约束,关系约束

3、声明式数据完整性:作为对象定义的一部分来定义数据必须达到的标准

4、过程式数据完整性:在脚本中定义数据必须达到的标准

5、实体完整性规则:主键的值不能取空值,主键的值唯一

6、触发器:一种特殊类型的存储过程,在对表或视图发出某些语句时自动执行,由数据库服务器自动执行,一个数据表上可能定义了多个触发器

 

第八章数据库恢复技术

1、事务:用户定义的一个数据库操作序列,要么做要么不做,是一个不可分割的工作单位,事务处理技术主要包括数据库恢复技术和并发控制技术

2、事务特性:原子性【事务是数据库的逻辑工作单位】,一致性【使数据库从一个一致性状态变到另一个一致性状态】,隔离性【对并发执行而言,一个事务的执行不能被其他事务干扰】,持续性【一个事务一旦提交,对数据库中数据的改变应该永久性】

3、事务中止:由于系统原因无法成功执行处在中止状态

4、事务回滚:数据库恢复到事务执行前状态

5、事务状态:活动状态,部分提交状态,失败状态,终止状态,提交状态

6、系统故障:造成系统停止运转的任何事件

7、事务故障:某个事务在运行过程中由于种种原因未运行至正常终止点就夭折了

8、数据转储:DBA定期将数据库复制到磁带上保存起来的过程,方法【静态转储与动态转储,海量转储与增量转储】

9、检查点:记录在日志中表示数据库是否正常运行的一个标志,以记录所有当前活动的事务

 

第九章  并发控制

1、事务的四个特性:原子性【逻辑工作单位】,一致性【从一个一致性状态变到另一个一致性状态】,隔离性【一个事务不能被其他事务干扰】,持续性【一旦提交,改变是永久的】,ACID特性

2、并发操作带来的数据不一致性:丢失更新、不可重复读、读“脏”数据

3、冲突操作:不同的事务对同一数据的读写操作和写写操作,冲突可串行化调度是可串行化调度的充分条件,不是必要条件

4、并发控制技术:封锁【操作前先加锁,共享锁,排他锁】,时间戳,乐观控制法

5、活锁:在数据库中某个事务由于请求封锁,但总也得不到锁而长时间处于等待状态,避免:采用先来先服务策略

6、死锁:同时处于等待状态的两个或多个事务中相互封锁了对方请求的资源,没有任何一个事务可以获得足够的资源运行完毕

7、两阶段封锁协议:所有事务必须分两个阶段对数据项加锁和解锁,保证并发调度可串行性的封锁协议。第一个阶段是获得封锁,第二阶段是释放封锁

8、封锁粒度:封锁对象的大小,封锁对象可以是逻辑单元,也可以是物理单元

9、意向锁:对任一结点加基本锁,必须先对它的上层结点加意向锁

 

第十章关系数据库设计理论

1、函数依赖:是现实世界属性间相互联系的抽象;是数据内在的性质,表示了关系中属性间的一种制约关系

2、范式:规范化的关系模式,关系数据库中的关系必须满足一定的要求,满足不同程度要求的为不同范式,1NF,2NF,3NF,BCNF,4NF

3、第一范式:关系模式R的每一个属性对应的域值都是不可再分的,称R属于第一范式

4、第二范式:R属于第一范式,所有非主属性都完全依赖于R的每个候选键

5、第三范式:R属于第一范式,R中没有非主属性传递依赖于R的候选键,一个2NF关系模式不一定属于3NF,3NF一定属于2NF

6、BCNF:R属于第一范式,而且R中没有任何属性传递依赖于R中的任一关键字,3NF不一定是BCNF

7、多值依赖:(X,Y,Z)对于X的每一个值,Y有一组值与之对应,而不论Z取何值

8、4NF:R属于第一范式,对于R上的任何一个非平凡的多值依赖X--Y,X是R的一个超键

9、关系模式规范化:一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合

10、Armstrong公理:自反律,增广律,传递律

 

第11章  数据库设计

1、数据库设计方法:需求分析-概念结构设计-逻辑结构设计-物理设计-数据库实施-数据库运行和维护

2、需求分析阶段:综合各个用户的应用需求

3、概念结构设计:形成独立于各个DBMS概念模式,四种方法【自顶向下,自底向下,逐步扩张,混合策略】

4、逻辑结构设计:形成数据库逻辑模式与外模式

5、物理结构设计:形成数据库内模式

6、客户/服务器(C/S):分布式系统结构

7、浏览器/服务器(B/S):多节点广域网应用系统

8、中间件:泛指能够屏蔽操作系统和网络差异,为异构环境之间提供通信服务的软件,主要中间件技术(ODBC,JDBC)

 

第13章 数据库的存储结构

1、定长记录的存储:如果记录中所有字段都是定长的,则称之为定长记录,记录存储在磁盘块中,而块是磁盘和内存之间传输数据的基本单位

2、变长记录的存储:记录的一个或多个字段的长度是可变的,称之为变长记录。

3、文件存储结构:顺序存储,链接存储

4、页面:数据库中使用的最小数据单元,8KB

5、盘区:8个连续的页面组成的数据结构,64KB

 

第17章 数据库新技术

1、面向对象数据库:既有DBMS特性,又具有面向对象的封装性、继承性、重载、复合对象和可扩充等特性

2、实时数据库:适用于处理不断更新的快速变化的数据及具有时间限制的事务处理

3、主动数据库:在传统数据库系统中嵌入事件-条件动作规则,自动检测

4、分布式数据库:将分散在各处的数据库系统通过计算机网络连接起来

5、并行数据库:将传统数据库管理技术与并行处理技术结合提供高性能【共享内存结构,共享磁盘结构,无共享资源结构】

6、空间数据库:用于表示空间物体的位置、形状,大小和分布特征等方面信息的数据

7、XML数据库:关系数据库方式,面向对象数据库方式,文本方式,XML数据库方式

8、数据仓库技术:从数据分析的角度将联机事务中的数据经过清理、转换并加载到数据仓库中,数据在数据仓库中被合理的组织和维护,特点【面向主题,集成的数据,数据不可更新,数据随时间不断变化,为了更好的支持制定决策】,分类【标准数据仓库,数据集市,多层数据仓库,联合式数据仓库】,架构【星型架构,雪花型架构(一个维度表分解为多个表,每个表都连接到主维度表)】

9、数据挖掘:数据库知识发现过程的一个步骤,包括数据准备【数据选择,数据预处理,数据转换】,数据挖掘,结果分析,知识的同化;知识分类【广义,关联,分类,预测型,偏差型】;常用技术【人工神经网络,决策树,遗传算法,近邻算法,规则推导】

 

2011年复试题目数据库题目:

关系代数有哪几种运算?

【传统集合运算,专门关系运算,基本运算】

T-SQL是什么编程语言?

【结构化查询语言】

关系模式(学号,课号,成绩)属性是否能为空?

【不能,否则无意义】

视图能提高数据库的安全性吗?

【可以】

解释XML,它是结构化语言还是非结构化语言?

【可扩展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,结构化语言】

动态SQL的概念是什么?

【预编译时能够动态改变语句正文,变量个数,数据类型等等的SQL语句】

数据库的安全性措施是什么?

【用户标识与鉴别,存取控制,视图机制,数据加密,数据库审计】

数据库中为什么要使用视图?

【提供逻辑数据独立性,简化用户视图,使用户以不同角度看待相同的数据,提供安全保护功能】

什么是意图锁?有哪几种意图锁?

【对任一结点加基本锁,必须先对它的上层结点加意向锁;分为意向共享锁,意向排它锁,共享意向排它锁】

数据库的三级模式是什么?

【内模式,模式,外模式】

如何确定一个关系模式?

【R(U,D,dom,F)其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合】

在对数据库做修改时,遇到系统故障,系统重启后是做撤销操作还是重做操作?

【撤销】

删除数据库的表用什么?

【delete table】

select语句中DISTINCT的功能?

【DISTINCT 用于返回唯一不同的值,SELECT DISTINCT 列名称 FROM 表名称】

什么是事物的原子性?

【事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性】

数据库中可以进行表合并吗?

【马小蛇答案:如果这两个表有外键关联,那么就可以合并成宽表,如果没有,一般来说就不能合并了】

 

 

计算机网络

一、 计算机网络体系结构

(一) 计算机网络概述

1.  计算机网络的概念、组成与功能

2.  计算机网络的分类

(二)计算机网络体系结构与参考模型

1.  计算机网络分层结构

2.  计算机网络协议、接口、服务等概念

3.  ISO/OSI参考模型和TCP/IP模型

二、 物理层

(一) 通信基础

1.  信道、信号、带宽、码元、波特、速率等基本概念

2.  奈奎斯特定理与香农定理

3.  信源与信宿

4.  编码与调制

5.  电路交换、报文交换与分组交换

6.  数据报

三、 数据链路层

(一) 数据链路层的功能

(二) 介质访问控制

1.  信道划分介质访问控制

频分多路复用、时分多路复用、波分多路复用、码分多路复用的概念和基本原理。

2.  随机访问介质访问控制

ALOHA协议;CSMA协议;CSMA/CD协议;CSMA/CA协议。

(三) 局域网

1.  局域网的基本概念与体系结构

2.  以太网与IEEE802.3

(四) 数据链路层设备

1.  网桥

网桥的概念及其基本原理。

2.  局域网交换机及其工作原理。

四、 网络层

(一) 网络层的功能

1.  异构网络互联

2.  路由与转发

(二) 路由算法

1.  静态路由与动态路由

2.  距离-向量路由算法

3.  链路状态路由算法

4.  层次路由

(三) IPv4

1.  IPv4分组

2.  IPv4地址与NAT

3.  子网划分与子网掩码、CIDR

4.  ARP协议、ICMP协议

(四) 路由协议

1.  自治系统

2.  域内路由与域间路由

3.  RIP路由协议

4.  OSPF路由协议

5.  BGP路由协议

(五) 网络层设备

1.  路由器的组成和功能

2.  路由表与路由转发

五、 传输层

(一) 传输层提供的服务

1.  传输层的功能

2.  传输层寻址与端口

3.  无连接服务与面向连接服务

(二) 可靠数据传输的原理

1.  停止-等待协议

2.  后退N帧协议(GBN)

3.  选择重传协议(SR)

(三) UDP协议

1.  UDP数据报

2.  UDP校验

(四) TCP协议

1.  TCP段

2.  TCP连接管理

3.  TCP可靠传输

4.  TCP流量控制与拥塞控制

六、 应用层

(一)网络应用模型

1.  客户/服务器模型

2.  P2P模型

(二) FTP

1.  FTP协议的工作原理

2.  控制连接与数据连接

(三) 电子邮件

1.  电子邮件系统的组成结构

2.  电子邮件格式与MIME

3.  SMTP协议与POP3协议

 

  • 1
    点赞
  • 0
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值