第一章1.选择题(1)若源程序是高级语言编写的程序,目标程序是_C__,则称它为编译程序。A汇编语言程序或高级语言程序B高级语言程序或机器语言程序C汇编语言程序或机器语言程序D连接程序或运行程序(2)编译程序是对_A__程序进行翻译。A高级语言B机器语言C自然语言D汇编语言(3)如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:_AC___A编译阶段B汇编阶段C运行阶段D置初值阶段(4)编译程序的工作过程一般可划分为下列5个基本阶段:词法分析、_CB___、代码优化和目标代码生成。A出错处理B语义分析及中间代码生成C语法分析D表格管理(5)编译过程中,词法分析阶段的任务是_B__A识别表达式B识别语言单词C识别语句D识别程序2.判断题(1)编译程序是一种常用的应用软件。(×)/*系统软件(2)C语言的编译程序可以用C语言来编写。(√)(3)编译方式与解释方式的根本区别在于是否生成目标代码。(√)(4)编译程序与具体的语言无关。(×)(5)编译程序与具体的机器有关。(√)(6)对编译程序而言,代码优化是不可缺少的一部分(×)(7)对编译程序而言,中间代码生成是不可缺少的一部分。(×)(8)编译程序生成的目标程序一定是可执行的程序。(×)(9)含有优化部分的编译程序的执行效率高。(√)第二章1.选择题(1)一般程序设计语言的描述都涉及______三个方面A.语法B.语用C.语义D.基本符号的确定(2)为了使编译程序能对程序设计语言进行正确的翻译,必须采用____方法定义程序设计语言。A.非形式化B.自然语言描述问题B.形式化D.自然语言和符号体系相结合(3)设x是符号串,符号串的幂运算x°=____A.1B.xC.εD.ø(5)字母表中的元素可可以是_____A.字母B.字母和数字C.数字D.字母、数字和其他符号(6)文法用来描述语言的语法结构,由如下4个部分组成:_ABC_和文法开始符号。A.文法终结符集合B.文法规则的集合C.文法非终结符集合D.字母数字串(7)在规则(产生式)中,符号“→”(“:=)表示____A.恒等于B.等于C.取决于D.定义为(8)在规则(产生式)中,符号“|”表示_____A.与B.或C.非D.引导开关参数(9)设文法G[A]的规则如下:A-A1|A0|Aa|Ac|a|b|c,该文法的句子是符号串_A.ab0B.a0c01C.aaaD.bc10(10)如果在推导过程中的任何一步α=β,都是对β中的最右非终结符进行替换,则这种推导为____A.直接推导B.最右推导C.最左推导D.规范推导(16)若一个文法满足___,则称该文法是二义文法。A.文法的某一个句子存在两棵(包括两棵)以上的语法树。B.文法的某一个句子,它有两个(包括两个)以上的最右(最左)推导。C.文法的某一个句子,它有两个(包括两个)以上的最右(最左)归约。D.文法的某一个句子存在一棵(包括一棵)以上的语法树。(18)乔姆斯基把文法分成4种类型,即O型、1型、2型和3型。2型文法也称为_____,3型文法也称为_____。A.上下文无关文法B.正规文法B.上下文有关文法D.无限制文法2.4.写一个文法,使其语言是奇数的集合,且每个奇数不以0开头。2.5证明下面的文法是二义性的。S-iSeS|iS|i2.8.试证明文法G[表达式]是二义性文法。表达式→i|表达式运算符表达式运算符→+|-|*|/2.10.文法C[A]=({A},{a,b},{A→bA|a},A)所生成的语言是什么?2.12.解释下列术语和概念。(1)字母表(2)上下文无关文法.(3)正规文法.(4)句柄(5)规范推导(6)文法二义性第三章1.选择题(1)编译程序中词法分析器所完成的任务是从源程序中识别出一个一个具有独立意义的_____A.表达式B.语句C.过程D.单词符号(2)无符号常数的识别和拼数工作,通常都在_____阶段完成。A.词法分析B.语法分析C.语义分析D.目标代码生成(3)编译程序中的词法分析器的输出是二元组表示的单词符号,其二元组的两个元素是_____A.单词种别B.单词参数C.单词自身的值D.单词数据类型(4)程序设计语言的单词符号一般可分为5种,它们是_____及运算符和界符。A.常数B.表达式C.基本字D.标识符(5)通常程序设计语言中的单词符号都能用_____描述。A.正规文法B.上下文无关文法C.正规式D.上下文有关文法(6)用l代表字母,d代表数字,Σ={l,d},则定义标识符单词的正规式是____A.ld*B.ll*C.l(l|d)*D.ll*|d*(7)正规式的运算符“*”读作_____A.或B.连接C.闭包D.乘(8)正规式(a|b)(a|b|0|1)*对应的文法为______。(9)通常程序设计语言的词法规则可用正规式描述,词法分析器可用____来实现。A.语法树B.有穷自动机C.栈D.堆(10)一个确定的有穷自动机DFA是一个______。(11)______不是NFA的成分。A.有穷输入字母表B.文法符号集合C.终止状态集合D.有限状态集合2.判断题(1)编译程序中的词法分析程序以字符形式的源程序作为输入,输出的单词符号常采用二元组的形式。()(2)正规式的运算符“|”读作“或”。()(3)若两个正规式所表示的正规集相同,则认为二者是等价的。()(4)用l代表字母,d代表数字,Σ={l,d},则正规式r=dd*定义了无符号整数单词。()(5)一个确定的有穷自动机DFAM的转换函数f是一个从KxΣ到K的子集的映像。()(6)一个非确定的有穷自动机NFAN的转换函数f是-一个从KxΣ*到K的映像。()(7)一张状态转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。()(8)终态与非终态是可区别的。()(9)对任意一个右线性文法G,都存在一个NFAM,满足L(G)=L(M)。()(10)对任意-一个右线性文法G,都存在一个DFAM,满足L(M)=L(R)。()3.2将图3.31中的(a)和(b)分别确定化和最小化。3.3构造一个DFA,它接收Σ={0.1}上所有满足如下条件的字符串,每个1都有0直接跟在右边。3.9试证明正规式(a|b)*与正规式(a*|b*)是等价的。第四章1.选择题(1)编译程序中语法分析常用的方法A.自上而下分析法B.自下而上分析C.右向左分析法D.自右向左分析法(2)编译程序中的语法分析器接受以____为单位的输人,并产生有关信息供以后各阶段使用。A.表达式B.字符串C.单词D.语句(3)在高级语言编译程序常用的语法分析方法中,遇归下降分析法属于_____分析方法。A.自左至右B.自上而下C.自下而上D.自有向左(4)递归下降分析法和预测分析法要求描述语言的文法是_____。A.正规文法B.LR(1)文法C.LL(1)文法D.右线性文法(5)设有文法G[E]:E-TE’E’-+TE’|εT-FT’T’-*FT’|εF-(E)|idFIRST(T’)=_________________,FOLLOW(F)=_________。(6)自下而上语法分析法的原理是_______。A.“移进-推导法”B.“移进-归约法”C.“最左推导法”D.“推导-归约法”(7)设有一文法G,如果文法G中没有形如A-...BC...的规则,其中A,B,C为非终极符,则称文法G为_______。A.算符优先文法B.LL(1)文法C.LR(0)文法D.算符文法(8)算符优先分析法从左到右扫描输人串,当栈顶出现______时进行归约。A.素短语B.直接短语C.句柄D.最左素短语(11))LR(0)项目集规范族的项目的类型可分为______。A.移进项目B.规约项目C.待约项目D.接受项目(12)LR(0)分析器的核心部分是一张分析表,这张分析表包括两部分,它们是_____。A.LL(1)分析表B.分析动作表C.状态转换表D.移进分析表(14)LR语法分析栈中存放的状态是识别文法规范句型____的DFA状态。A.前缀B.活前缀C.项目D.句柄第五章1.选择题(1)编译中的语义处理有两个任务:一个是:_____,另一个是______。A.静态语义审查B.审查语法结构C.执行真正的翻译D.审查语义结构(2)在编译程序中安排中间代码生成的目的是_____。A.便于进行存储空间的组织B.利于目标代码优化C.利于提高目标代码的质量D.利于编译程序的移植(3)编译过程中比较常见的中间语言有_____。A.逆波兰式B.三元式C.四元式D.树形表示(4)中缀表达式-a+b*(-c+d)的逆波兰表示是_____。A.a@bc@d+*+B.abc@d+*+@C.a@bcd+@*+D.abcd+@*+@(5)后缀式iiii-/↑的中缀表达式是_____。A.i↑(i/(i-i))B.(i-i)/i↑iC.i↑(i-i)/iD.(i-i)↑i/i3.判断题(1)对任何一个编译程序来说,产生中间代码是不可缺少的一部分。()(2)目前多数编译程序进行语义分析的方法语法制导翻译法,这是因为语法制导翻译法是一种形式化系统。()(3)一个属性文法包含一个上下文无关文法和一系列语法规则。()(4)文法符号的属性有两种,一种称为继承属性,另一种称为综合属性。()(5)自下而上语法制导翻译法的特点是语法分析栈与语义分析栈不需同步操作()(6)自下而上语法制导翻降法的特点是栈顶形成句柄,在归约之前执行相应的语义动作。()(7)逆波兰表达式ab+cd+*所代表的中缀形式的表达式是a+b*c+d。()(7)赋值语句A=A+B*C↑(D÷E)/F的逆波兰表示是AABCDE÷↑*F/+=。()(9)表达式-(a+b)*(c+d)-(a+b+c)的四元式表示是:①(T1=a+b)②(T2=-T1)③(T3=c+d)④(T4=T2*T3)⑤(T5=a+b)⑥(T6=T5+c)⑦(T7=T4-T6)5.1给出下面表达式的逆波兰表示。(1)a*(-b+c)(2)a+b*(c+d/e)(3)-a+b*(-c+d)5.5什么是属性文法?5.6语法制导翻译的基本思想是什么?第六章1.选择题(1)在编译过程中,符号表的主要作用是_____A.帮助错误处理B.辅助语法错误检查C.辅助上下文语义正确性检查D.辅助目标代码生成(2)符号表的查找一般可以使用_____A.顺序查找B.折半查找C.杂凑查找D.排序查找2.判断题(1)名字就是标识符,标识符就是名字。()6.1.符号表的作用是什么?6.2.符号表的组织方式有哪几种?第七章1.选择题(1)编译程序中安排优化的目的是为了得到____的目标代码。A.结构清晰B.较短C.高效率D.使用存储空间最小(2)根据所涉及程序的范围,优化可分为____A.局部优化B.函数优化C.全局优化D.循环优化(3)局部优化是局限于一个_____范围内的一种优化。A.循环B.函数C.基本块D.整个程序(4)所谓基本块是指程序中一个顺序执行的语句序列,其中只有____A.一个子程序B.一个入口语句和多个出口语句C.一个出口语句和多个入口语句D.一个入口语句和一个出口语句(5)在编译程序采用优化的方法中,____等是在程序基本块范围内进行的。A.删除无用赋值B.删除归纳变量C.删除多余运算D.合并已知量(6)循环优化是指对____中的代码进行优化。A.循环B.函数C.基本块D.整个程序(7)在编译程序采用的优化方法中,_____是在循环语句范围内进行的。A.删除多余运算.B.删除归纳变量C.代码外提D.强度削弱2.判断题(1)优化的编译是指编译速度快的编译程序。()(2)对任何一个编译程序来说,代码优化是不可缺少的一部分。()(3)DAG是一个可带环路的有向图。()(4)转移语句是基本块的入口语句。()(5)紧跟在条件转移语句后面的语句是基本块的入口语句。()7.2常用的优化技术有哪些?7.5试把以下程序划分为基本块,并作出其程序流图。第八章1.选择题(1)现有编译技术中目标程序数据空间的分配策略有_