华东交通大学编译原理试题库 试卷二
《编译原理》期末考试题库含答案.docx
《编译原理》模拟试题一一、是非题(请在括号内,正确的划错误的划X)(每个2分,共20分)1•计算机高级语言翻译成低级语言只有解释一种方式。
(X)2.在编译中进行语法检查的目的是为了发现程序中所有错误。
(X)3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(丁 )4.正则文法其产生式为A->a , A->Bb, A.BGVN , a、beVT o (X)5.每个文法都能改写为LL(1)文法。
(V)6.递归下降法允许任一非终极符是直接左递归的。
(V)7.算符优先关系表不一定存在对应的优先函数。
(X)8.自底而上语法分析方法的主要问题是候选式的选择。
(X)9.LR法是自顶向下语法分析方法。
(X)10.简单优先文法允许任意两个产生式具有相同右部。
(X)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.一个编译程序中,不仅包含词法分析,_____ ,中间代码生成,代码优化,目标代码生成等五个部分。
A.()语法分析B.()文法分析C.()语言分析D.()解释分析2.词法分析器用于识别_____ oA.()字符串B.()语句C.()单词D.()标识符3 •语法分析器则可以发现源程序中的______ oA.()语义错误B.()语法和语义错误C.()错误并校正D.()语法错误4.下面关于解释程序的描述正确的是。
(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. ( ) (1) (2)B. () (1)C. () (1)⑵(3)D.()⑵⑶5. _________________________________________ 解释程序处理语言时,大多数采用的是 ___________________________________ 方法。
华东交通大学编译原理试题库 试卷二
一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。
每题1分,共5分)1、算符优先关系表不一定存在对应的优先函数。
2、数组元素的地址计算与数组的存储方式有关。
3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。
4、每个文法都能改写为LL(1)文法。
5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
二、填空题(每题2分,共20分)1、从功能上说,程序语言的语句大体可分为_______语句和______语句两大类。
2、扫描器的任务是从________中识别出一个个_______。
3、所谓最右推导是指:_______。
4、语法分析最常用的两类方法是________和_________分析法。
5、一个上下文无关文法所含四个组成部分是_______________。
6、所谓语法制导翻译方法是_____________________。
7、符号表中的信息栏中登记了每个名字的有关的性质,如_________等等。
8、一个过程相应的DISPLA Y表的内容为________。
9、常用的两种动态存贮分配办法是_____动态分配和_____动态分配。
10、产生式是用于定义_____的一种书写规则。
三、名词解释(每题2分,共10分)1、遍2、无环路有向图(DAG)3、语法分析4、短语5、后缀式四、简述题(每题4分,共24分)1、考虑下面程序…………V ar a:integer;Procedure S(X);V ar X:integer;Begina:=a+1;X:=a+XEnd;Begina:=5;S(a);Print(a)End.试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?2、画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。
3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。
4、已知文法G(S)S→a|∧|(T)T→T,S|S写出句子((a,a),a)的规范归约过程及每一步的句柄。
完整版编译原理试题
编译原理考试题及答案汇总一、选择1.将编译程序分成若干个“遍”是为了 _B__。
A . 提高程序的执行效率 B. 使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D. 利用有限的机器内存但降低了机器的执行效率 2.正规式 MI 和 M2 等价是指 __C__。
A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。
C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等3.中间代码生成时所依据的是 _C_。
A.语法规则 B •词法规则 C •语义规则 D •等价变换规则 4.后缀式ab+cd+/可用表达式__B_来表示。
A. a+b/c+d B . (a+b)/(c+d) C a+b/(c+d) D a+b+c/d6. 一个编译程序中,不仅包含词法分析, _A _______ ,中间代码生成,代码优化,生成等五个部分。
A .( ) 语法分析B .( ) 文法分析C .( ) 语言分析D .( ) 解释分析 7. 词法分析器用于识别 __C___。
A .( ) 字符串B .( ) 语句C .( ) 单词D .( ) 标识符 8. 语法分析器则可以发现源程序中的 ___D__。
A .( ) 语义错误B .( ) 语法和语义错误C .( ) 错误并校正D .( ) 语法错误 9. 下面关于解释程序的描述正确的是 __B___。
(1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的A .( ) (1)(2)B .( ) (1)C .( ) (1)(2)(3)D .( ) (2)(3) 10. 解释程序处理语言时 , 大多数采用的是 __B___方法。
A .( ) 源程序命令被逐个直接解释执行B .( ) 先将源程序转化为中间代码 , 再解释执行C .( ) 先将源程序解释转化为目标程序 , 再执行D .( ) 以上方法都可以11. 编译过程中 , 语法分析器的任务就是 (1) 分析单词是怎样构成的 (2) (3) 分析语句和说明是如何构成程序的 A .( ) (2)(3) B .( ) (2)(3)(4)C .( ) (1)(2)(3) D .( ) (1)(2)(3)(4) 12. 编译程序是一种 ___C__。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题5分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码翻译C. 代码调试D. 代码运行答案:B2. 下列哪个选项不属于编译器的前端部分?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,文法的产生式通常表示为:A. A -> αB. A -> βC. A -> γD. A -> δ答案:A4. 下列哪个算法用于构建语法分析树?A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析答案:A二、填空题(每空5分,共20分)1. 编译器的前端通常包括词法分析、语法分析和________。
答案:语义分析2. 编译器的后端主要负责________和目标代码生成。
答案:代码优化3. 编译器中的词法分析器通常使用________算法来识别单词。
答案:有限自动机4. 语法分析中,________分析是一种自顶向下的分析方法。
答案:递归下降三、简答题(每题10分,共30分)1. 简述编译器的作用。
答案:编译器的主要作用是将高级语言编写的源代码转换成计算机能够理解的低级语言或机器代码,以便执行。
2. 解释一下什么是语法制导翻译。
答案:语法制导翻译是一种翻译技术,它利用源语言的语法信息来指导翻译过程,使得翻译过程能够更好地理解源代码的语义。
3. 什么是词法分析器?答案:词法分析器是编译器前端的一部分,它的任务是将源代码文本分解成一系列的标记(tokens),这些标记是源代码的最小有意义的单位。
四、计算题(每题10分,共30分)1. 给定一个简单的文法G(E):E → E + T | TT → T * F | FF → (E) | id请计算文法的非终结符号E的FIRST集和FOLLOW集。
答案:E的FIRST集为{(, id},FOLLOW集为{), +, $}。
2. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
编译原理考试题库
一、判断(共计50分,每题2.5分)1、静态存储分配策略是在程序运行期间为源程序中的量进行分配。
A. 正确B. 错误错误:【B】2、含有优化部分的编译程序的执行效率高。
A. 正确B. 错误错误:【A】3、四元式之间的联系是通过符号表实现的。
A. 正确B. 错误错误:【B】4、包含公共左因子的文法也能直接用预测分析法来分析。
A. 正确B. 错误错误:【B】5、局部优化是在一个程序块内进行的优化。
A. 正确B. 错误错误:【B】6、数组元素的地址计算与数组的存储方式有关。
A. 正确B. 错误错误:【A】7、紧跟在条件转移语句后面的语句是基本块的入口语句。
A. 正确B. 错误错误:【A】8、LL(1)文法是无左递归、无二义性文法。
A. 正确B. 错误错误:【A】9、设有一个LR(0)项目集I={X→α.Bβ, A→α.},该项目集含有“归约-归约”冲突。
A. 正确B. 错误错误:【B】10、使用语法制导翻译法的编译程序能够同时进行语法分析和语义分析。
A. 正确B. 错误错误:【A】11、包含左递归的文法也能直接用LL(1)分析法来分析。
A. 正确B. 错误错误:【B】12、产生式是用于定义词法成分的一种书写规则。
A. 正确B. 错误错误:【B】13、如果i •>j , 则j <•i 。
A. 正确B. 错误错误:【B】14、编译程序与解释程序的区别在于编译程序对源程序进行了翻译,而解释程序则没有。
A. 正确B. 错误错误:【B】15、在形式语言中,最右推导的逆过程也称为规范归约。
A. 正确B. 错误错误:【A】16、设有一个LR(0)项目集Ii={X→α.Bβ,A→α.},该项目集含有“移进-归约冲突”。
A. 正确B. 错误错误:【A】17、动态存储分配是指在编译阶段对源程序中的量进行分配,以使目标代码在运行时加快行速度。
A. 正确B. 错误错误:【B】18、设有一个LR(0)项目集Ii={X→α.,A→α.},该项目集含有“归约-归约冲突”。
《编译原理》考试试题及答案(汇总)
《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)3.一个算符优先文法可能不存在算符优先函数与之对应。
(√ )4.语法分析时必须先消除文法中的左递归。
(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)6.逆波兰表示法表示表达式时无须使用括号。
(√ )7.静态数组的存储空间可以在编译时确定。
(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。
(× )10.一个语义子程序描述了一个文法所对应的翻译工作。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式M 1 和M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。
A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
编译原理试题及答案(期末复习版)
<编译原理>历年试题及答案一.(每项选择2分,共20分)选择题1.将编译程序分成若干个“遍”是为了_b__。
a.提高程序的执行效率b.使程序的结构更加清晰c.利用有限的机器内存并提高机器的执行效率d.利用有限的机器内存但降低了机器的执行效率2.构造编译程序应掌握__d__。
a.源程序b.目标语言c.编译方法d.以上三项都是3.变量应当c_。
a.持有左值b.持有右值c.既持有左值又持有右值d.既不持有左值也不持有右值4.编译程序绝大多数时间花在_d___上。
a.出错处理b.词法分析c.目标代码生成d.管理表格5.词法分析器的输出结果是_c___。
a.单词的种别编码b.单词在符号表中的位置c.单词的种别编码和自身值d.单词自身值6.正规式MI和M2等价是指__c__。
a.MI和M2的状态数相等b.Ml和M2的有向弧条数相等。
C.M1和M2所识别的语言集相等 d.Ml和M2状态数和有向弧条数相等7.中间代码生成时所依据的是—c。
a.语法规则b.词法规则c.语义规则d.等价变换规则8.后缀式ab+cd+/可用表达式__b_来表示。
a.a+b/c+d b.(a+b)/(c+d)c.a+b/(c+d)d.a+b+c/d9.程序所需的数据空间在程序运行前就可确定,称为____c__管理技术。
a.动态存储b.栈式存储c.静态存储d.堆式存储10.堆式动态分配申请和释放存储空间遵守___d_____原则。
a.先请先放b.先请后放c.后请先放d.任意二(每小题10分,共80分)简答题1.画出编译程序的总体结构图,简述各部分的主要功能。
2.已知文法G[E]:E→ET+|T T→TF*|F F→F^|a试证:FF^^*是文法的句型,指出该句型的短语、简单短语和句柄.3.为正规式(a|b)*a(a|b)构造一个确定的有限自动机。
4.设文法G(S):S→(L)|a S|aL→L,S|S(1)消除左递归和回溯;(2)计算每个非终结符的FIRST和FOLLOW;(3)构造预测分析表。
编译原理考试试题
《编译原理》考试试题(所有答案必须写在答题纸上)一、(5 X 6分)回答下列问题:1 •什么是S-属性文法什么是L-属性文法它们之间有什么关系2•什么是句柄什么是素短语3•划分程序的基本块时,确定基本块的入口语句的条件是什么4•运行时的DISPLAY表的内容是什么它的作用是什么5.对下列四元式序列生成目标代码:A:=B*CD:=E+FG:=A+DH:=G*2其中,H是基本块出口的活跃变量,R0和R1是可用寄存器二、(8分)设={0 , 1}上的正规集S由倒数第二个字符为1的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的DFA三、(6分)写一个文法使其语言为L(G)={ a n b m a m b n I m,n > 1}。
四、(8分)对于文法G(E):E T|E+TT F|T*FF (E)|i1.写出句型(T*F+i)的最右推导并画出语法树。
2.写出上述句型的短语,直接短语、句柄和素短语。
五、(12分)设文法G(S):S SiA | A AA B| BB )A*|(1 •构造各非终结符的 FIRSTVT 和LASTVT 集合;2 •构造优先关系表和优先函数。
六、(9分)设某语言的do-while 语句的语法形式为针对自下而上的语法分析器,按如下要求构造该语句的翻译模式:(1) 写出适合语法制导翻译的产生式; (2) 写出每个产生式对应的语义动作。
七、(8 分)将语句 if (A<X) (B>0) then while C>0 do C:=C+D;式。
八、(10分)设有基本块如下:T1:=S+R T2:= 3 T3:= 12/T2 T4:=S/R A:=T1-T4 T5:=S+R B:=T5 T6:=T5*T3S do S ⑴ While E其语义解释为:翻译成四元直假B:=T6(1)画出DAGS;⑵ 设A,B是出基本块后的活跃变量,请给出优化后的四元式序列九、(9分)设已构造出文法G(S):⑴ S BB (2) B aB (3) B b的LR分析表如下假定输入串为abab,请给出LR分析过程(即按照步骤给出状态,符号,输入串的变化过程)。
编译原理题库——选择题
编译原理a二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式M 1 和M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。
A.( ) xyx B.( ) (xyx)* C.( )xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同·B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
A.( )源程序B.( ) 目标语言C.( ) 编译方法D.( ) 以上三项都是6.四元式之间的联系是通过_____实现的。
A.( ) 指示器B.( ) 临时变量C.( ) 符号表D.( ) 程序变量7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为_____。
A. ( ) ┐AB∨∧CD∨B.( ) A┐B∨CD∨∧C.( ) AB∨┐CD∨∧D.( ) A┐B∨∧CD ∨8. 优化可生成_____的目标代码。
…A.( ) 运行时间较短 B.( ) 占用存储空间较小C.( ) 运行时间短但占用内存空间大D.( ) 运行时间短且占用存储空间小9.下列______优化方法不是针对循环优化进行的。
A. ( ) 强度削弱B. ( ) 删除归纳变量C. ( ) 删除多余运算D. ( ) 代码外提10.编译程序使用_____区别标识符的作用域。
华东交大-编译原理2013-2014试卷汇总
二、单项选择填空题(对下列各题,请在答题卡上对应的小题1.在编译程序的八大功能模块中,下面的哪个模块是可有可无:A.语法分析; B.语义分析; C.代码优化; D.词法分析2.在下面的四类文法中,哪类文法的描述能力最弱:A.短语文法; B.上下文有关; C.上下文无关; D.正规文法3.在语法分析方法中,递归下降分析法属于下面的哪种分析方法:A.自顶向下; B.自右向左; C.自左向右; D.自底向上4.给定文法 G[E]:E→E0E│11 ,下面的符号串中,是该文法的句子: A.110; B.11011011; C.100; D.1100115.在语法分析中,如果使用的是规范归约技术,则每次被归约的子串都是:A.活前缀; B.素短语; C.句柄; D.句型6.语句x:=(a-b)*c+d/e的等价逆波兰表达式为:A.x:=ab-c*de/+ ; B.xabcde-*/+:= ;C.xab-c*de/+:= ; D.abc-*de/+x:=7.在下面的四种LR分析方法中,分析能力最强的是:A.LR(0); B.LALR(1); C.SLR(1); D.LR(1)8.LL(1)文法和LR(0)文法都有一个共同的特性:A.自右向左; B.无二义性; C.自顶向下; D.自底向上9.一个LR(0) 项目为 A→aB.c ,其中a、c∈V T,A、B∈V N,该项目是:A.归约项目; B.接收项目; C.移进项目; D.待约项目10.文法G[s]: S → 1A│1 , A → 1A│0A│1│0,所描述的语言为:A.0(0∣1)*; B.(1∣0)*1 ; C.(0∣1)*0 ; D.1(1∣0)*三、给定文法G[E]:E→E+T | T ,T→T*F | F ,F→(E) | a 中的一个句型:F*a+(E) ,请完成以下工作:(共计15分)1. 画出该句型对应的语法树;(6分)2. 找出该句型中的全部短语;(5分)3. 找出该句型中的句柄和最左素短语。
《编译原理》复习题(看完必过).docx
《備蒔凍狸》義习龜(看芜盈过丿一、单项选择题1. 将编译程序分成若干个“遍”是为了( B )A. 提高程序的执行效率B. 使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D. 利用有限的机器内存但降低了机器的执行效率 2. 不可能是目标代码的是(D )A.汇编指令代码 B.可重定位指令代码C.绝对指令代码D.中间代码3. 词法分析器的输入是(B )A.单词符号串 B .源程序C.语法单位D.目标程序4. 中间代码生成时所遵循的是(C )A.语法规则 B.词法规则C.语义规则D.等价变换规则5. 编译程序是对(D )A.汇编程序的翻译 B .高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译6. 词法分析应遵循(C )A.语义规则 B.语法规则C.构词规则D.等价变换规则9. 词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,(B )A. 词法分析器应作为独立的一遍B. 词法分析器作为子程序较好7. 词法分析器的输出结果是(C )A.单词的种别编码B. C.单词的种别编码和属性值D. 8. 正规式Ml 和M2等价是指(C )A. Ml 和M2的状态数相等C. Ml 和M2所识别的语言集相等单词在符号表屮的位置 单词属性值B. Ml 和M2的有向弧条数相等 D. Ml 和M2状态数和有向弧条数相等C.词法分析器分解为多个过程,由语法分析器选择使用D・词法分析器并不作为一个独立的阶段10.如果L(M1)=L(M2),则Ml 与M2( A )A.等价B.都是二义的C.都是无二义的D.它们的状态数相等11.文法G: S->xSx| y所识别的语言是(C )A. xyxB. (xyx)* c. x n yx"(n20) d. x*yx*12.文法G描述的语言L(G)是指(A)A.厶(G)二V/]B. L(G) - \a\ (V T u V v)*C.厶(G)二D.厶(G)二(V T<J V N Y13.有限状态自动机能识别(C )A.上下文无关文法B.上下文有关文法C.正规文法D.短语文法14.如果文法G是无二义的,则它的任何句子(A)A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同15.由文法的开始符经0步或多步推导产生的文法符号序列是(C )A.短语B.句柄C.句型D.句子16.文法G: E-*E+T|TT->T*P|PP- (E) | i则句型P+T+i的句柄为(B )A. P+TB. PC. P+T+iD. i17.文法G: S-*b| A| (T)T-*TVS|S则FIRSTVT(T) = ( C )A. { b, A, ( }B. { b, /\, ) }C. { b, A, (, V }D. { b, A,), V }18.产生正规语言的文法为(D )A. 0 型B. 1 型C. 2型D. 3型19.任何算符优先文法(D )优先函数。
编译原理考试试题与答案(汇总)
《编译原理》考试试题及答案(汇总)一、是非题(请在括号,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)3.一个算符优先文法可能不存在算符优先函数与之对应。
(√ )4.语法分析时必须先消除文法中的左递归。
(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)6.逆波兰表示法表示表达式时无须使用括号。
(√ )7.静态数组的存储空间可以在编译时确定。
(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。
(× )10.一个语义子程序描述了一个文法所对应的翻译工作。
(×)二、选择题(请在前括号选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式 M 1 和 M 2 等价是指_____。
A.( ) M1和M2的状态数相等 B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。
A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
编译原理_华东交通大学中国大学mooc课后章节答案期末考试题库2023年
编译原理_华东交通大学中国大学mooc课后章节答案期末考试题库2023年1.在语法制导编译翻译中,模块是不包含在里面工作的。
答案:代码优化2.G[E]: E ® dA|d,A ® dA|aA|B, B ®d|a,描述的语言为:。
答案:d(d½a)*3.下列文法可能为二义性文法的是:。
答案:递归文法4.LR(0)分析方法与SLR(1) 分析方法的差别在于。
分析表的构造方法5.两个文法等价,当且仅当它们的等价。
答案:描述语言6.语句y:=x/(a-b)+c-e*d的等价逆波兰表达式为。
答案:yxab-/c+ed*-:=7.简单优先分析方法和算符优先分析方法的相同之处是。
答案:均是自下而上8.在LR分析表中,Sj表示的意思是。
移进9.给定文法G[S]:S→(A)|a|b A →SB B→bSB|ε ,则Follow(S)为。
答案:#, b, )10.LR(0)项目I={ S ® a.A , A® .Ab , A®. a },则I中存在冲突。
答案:无11.下列优化技术中不能直接产生优化效果的是。
答案:变换循环控制条件12.赋值表达式的x:=a+(b+c)*d的逆波兰式为( )。
xabc+d*+:=13.编译程序中词法分析器输出的单位为:()答案:单词14.一个LR(0) 项目为E®aA·f ,其中a、f∈VT,E、A∈VN,该项目是:答案:移进项目15.下列编译程序的模块中,哪项不是必须的?()答案:中间代码生成16.下列文法中,描述能力最强且复杂度最高的是()。
答案:0型文法17.下列描述正确的是()。
答案:可归前缀包含了句柄。
18.自动机M1和M2等价是指:答案:M1和M2所识别的语言相等19.对文法G(E): E → E+E | E-E | i 而言,FIRSTVT(E)中不包括:答案:e20.下列哪种方式能更直观的描述高级语言中的单词:答案:正规式21.一个源程序可以通过解释程序等价变换成机器语言表示的目标程序。
2023大学_编译原理试题及参考答案
2023编译原理试题及参考答案编译原理试题一、是非题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2. 正规式 M 1 和 M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3. 文法G:SxSx|y所识别的语言是_____。
A.( ) xyxB.( ) (xyx)__C.( ) xnyxn(n0)D.( ) x__yx__4.如果文法G是无二义的,则它的任何句子_____。
A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
A.( )源程序B.( ) 目标语言C.( ) 编译方法D.( ) 以上三项都是6.四元式之间的联系是通过_____实现的。
A.( ) 指示器B.( ) 临时变量C.( ) 符号表D.( ) 程序变量7.表达式(┐AB)(CD)的逆波兰表示为_____。
A. ( ) ┐ABCDB.( ) A┐BCDC.( ) AB┐CDD.( ) A┐BCD8. 优化可生成_____的目标代码。
A.( ) 运行时间较短B.( ) 占用存储空间较小C.( ) 运行时间短但占用内存空间大D.( ) 运行时间短且占用存储空间小9.下列______优化方法不是针对循环优化进行的。
A. ( ) 强度削弱B.( ) 删除归纳变量C.( ) 删除多余运算D.( ) 代码外提10.编译程序使用_____区别标识符的作用域。
编译原理期末试题(8套含答案+大题集)
《编译原理》期末试题(一)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)3.一个算符优先文法可能不存在算符优先函数与之对应。
(√ )4.语法分析时必须先消除文法中的左递归。
(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)6.逆波兰表示法表示表达式时无须使用括号。
(√ )7.静态数组的存储空间可以在编译时确定。
(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×) 9.两个正规集相等的必要条件是他们对应的正规式等价。
(× )10.一个语义子程序描述了一个文法所对应的翻译工作。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分) 1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式M 1 和M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。
A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
(完整版)编译原理期末试题(二)含答案,推荐文档
《编译原理》期末试题(二)一、是非题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
( )2.一个句型的直接短语是唯一的。
()3.已经证明文法的二义性是可判定的。
()4.每个基本块可用一个DAG表示。
()5.每个过程的活动记录的体积在编译时可静态确定。
()6.2型文法一定是3型文法。
()7.一个句型一定句子。
( )8.算符优先分析法每次都是对句柄进行归约。
X ( )9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
()10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
( )11.一个优先表一定存在相应的优先函数。
X ( )12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )13.递归下降分析法是一种自下而上分析法。
( )14.并不是每个文法都能改写成LL(1)文法。
( )15.每个基本块只有一个入口和一个出口。
( )16.一个LL(1)文法一定是无二义的。
( )17.逆波兰法表示的表达试亦称前缀式。
( )18.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )19.正规文法产生的语言都可以用上下文无关文法来描述。
( )20.一个优先表一定存在相应的优先函数。
( )21.3型文法一定是2型文法。
( )22.如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。
( )答案:1.× 2.× 3.× 4.√ 5.√ 6.× 7.× 8.× 9.√10.×11.×12.√ 13.× 14.√15.√16.√ 17.× 18.√19.√ 20.× 21.√22.√二、填空题:2.编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。
3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是(二义性的)。
《编译原理》考试试题及答案(汇总)
《编译原理》考试试题及答案(汇总)一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)1.编译程序是对高级语言程序的解释执行.(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)3.一个算符优先文法可能不存在算符优先函数与之对应. (√ )4.语法分析时必须先消除文法中的左递归。
(×)5.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(√)6.逆波兰表示法表示表达式时无须使用括号。
(√ )7.静态数组的存储空间可以在编译时确定。
(×)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
(×) 9.两个正规集相等的必要条件是他们对应的正规式等价. (× )10.一个语义子程序描述了一个文法所对应的翻译工作。
(×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.词法分析器的输出结果是_____。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.() 单词的种别编码和自身值D.() 单词自身值2.正规式M 1 和M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.() M1和M2的有向边条数相等C.()M1和M2所识别的语言集相等D.()M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是_____。
A.() xyx B.()(xyx)* C.() xnyxn(n≥0) D.() x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同B.() 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.()可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、是非题(下列各题,你认为正确的,请在题干的括号内打“√”,错的打“×”。
每题1分,共5分)
1、算符优先关系表不一定存在对应的优先函数。
2、数组元素的地址计算与数组的存储方式有关。
3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。
4、每个文法都能改写为LL(1)文法。
5、对于数据空间的存贮分配,FORTRAN采用动态贮存分配策略。
二、填空题(每题2分,共20分)
1、从功能上说,程序语言的语句大体可分为_______语句和______语句两大类。
2、扫描器的任务是从________中识别出一个个_______。
3、所谓最右推导是指:_______。
4、语法分析最常用的两类方法是________和_________分析法。
5、一个上下文无关文法所含四个组成部分是_______________。
6、所谓语法制导翻译方法是_____________________。
7、符号表中的信息栏中登记了每个名字的有关的性质,如_________等等。
8、一个过程相应的DISPLA Y表的内容为________。
9、常用的两种动态存贮分配办法是_____动态分配和_____动态分配。
10、产生式是用于定义_____的一种书写规则。
三、名词解释(每题2分,共10分)
1、遍
2、无环路有向图(DAG)
3、语法分析
4、短语
5、后缀式
四、简述题(每题4分,共24分)
1、考虑下面程序
…………
V ar a:integer;
Procedure S(X);
V ar X:integer;
Begin
a:=a+1;
X:=a+X
End;
Begin
a:=5;
S(a);
Print(a)
End.
试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?
2、画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。
3、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。
4、已知文法G(S)
S→a|∧|(T)
T→T,S|S
写出句子((a,a),a)的规范归约过程及每一步的句柄。
5、何谓优化?按所涉及的程序范围可分为哪几级优化?
6、目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?
五、计算题(共41分)
1、写一个文法,使其语言是奇数集,且每个奇数不以0开头。
(5分)
2、设文法G(S):
S→(L)|a S|a
L→L,S|S
(1)消除左递归和回溯;
(2)计算每个非终结符的FIRST和FOLLOW;
(3)构造预测分析表。
3、While a>0 ∨b<0do
Begin
X:=X+1;
if a>0 then a:=a-1
else b:=b+1
End;
翻译成四元式序列。
(7分)
4、已知文法G(E)
E→T|E+T
T→F|T *F
F→(E)|i
(1)给出句型(T *F+i)的最右推导及画出语法树;
(2)给出句型(T *F+i)的短语、素短语。
(7分)
5、设布尔表达式的文法为
E →E(1)∨E(2)
E →E(1)∧E(2)
E →i
假定它们将用于条件控制语句中,请
(1)改写文法,使之适合进行语法制导翻译和实现回填;
(2)写出改写后的短个产生式的语义动作。
(6分)
6、设有基本块
T1:=2
T2:=10/T
T3:=S-R
T4:=S+R
A:=T2 *T4
B:A
T5:=S+R
T6:=T3 *T5
B:=T6
(1)画出DAG图;
(2)假设基本块出口时只有A,B还被引用,请写出优化后的四元序列。
(6分)
参考答案:
一、√ √ √ × ×
二、 1 执行性、说明性2、源程序、单词符号3、任何一步αβ都是对α中最右非终结符进行替换的 4 自上而下、自下而上5、一组终结符号,一组非终结符号、一个开始符号、一组产生式6、为每个产生式配上一个翻译子程序,并在语法分析的同时执行这些子程序7、类型、种属、所占单元大小、地址8、现行活动记录地址和所有外层最新活动记录的地址9、栈式、堆式10、语法范畴
三、名词解释
1.遍--指编译程序对源程序或中间代码程序从头到尾扫描一次。
2.无环路有向图(DAG)--如果有向图中任一通路都不是环路,则称庐有向图为
无环路有向图,简称DAG。
3.语法分析--按文法的产生式识别输入的符号串是否为一个句子的分析过程。
4.短语--令G是一个文法。
S划文法的开始符号,假定αβδ是文法G的一个句
型,如果有SαAδ且AB,则称β是句型αβ相对非终结符A的短语。
5.后缀式--一种把运算量写在前面,把算符写在后面的表示表达式的方法。
四、简述题
1、答:传名:a=12(2分)
传值:a=6(2分)
3、答:逆波兰表示:
abc*+ab+/d-(2分)
三元式序列:
①(*,b,c)
②(+,a,①)
③(+,a,b)
④(/,②,③)
⑤(-,④,d)(2分)
4、答:句型归约规则句柄
((a,a),a)S→a a
((S,a),a)T→S S
((T,a),a)S→a a
((T,S),a)T→T,S T,S
((S),a)T→S S
((T),a)S→S(T)(T)
(S,a)T→S S
(T,a)S→a a
(T,S)T→T,S T,S
(T)S→(T)(T)
S(4分)
5、答:优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。
(2分)
三种级别:局部优化、循环优化、全局优化。
(2分)
6、答:目标代码通常采用三种形式:机器语言,汇编语言,待装配机器语言模块。
(2分)
应着重考虑的问题:
(1)如何使生成的目标代码较短;
(2)如何充分利用寄存器,以减少访问内存次数;
(3)如何充分利用指仅系统的的特点。
(2分)
五、计算题
1、解:文法G(N):
N→AB|B
A→AC|D
B→1|3|5|7|9
D→B|2|4|6|8
C→0|D(5分)
2、解:(1)
S→(L)|aS'
S'→S|ε
L→SL'
L'→SL'|ε
评分细则:消除左递归2分,提公共因子2分。
(2)
FIRST)S)={(,a}FOLLOW(S)={#,,,)}
FIRST(S')={,a,ε}FOLLOW(S')={#,,,)}
FIRST(L)={(,a}FOLLOW(L)={ )}
FIRST(L')={,,ε}FOLLOW(L'〕={ )}
3、解:
(1) (j>,a,0,5)
(2) (j,-,-,3)
(5) (+,×,1,T1)
(6) (:=,T1,-,×)
(7) (j≥,a,0,9)
(8) (j,-,-,12)
(9) (-,a,1,T2)
(10) (:=,T2,-,a)
(11) (j,-,-,1)
(12) (+,b,1,T3)
(13) (:=,T3,-,b)
(14) (j,-,-,1)
(15)
评分细则:控制结构4分,其它3分。
4、解:(1) 最右推导:
ETF(E)(E+T)(E+F)(E+i)
(T+i)(T*F+i)
(2) 短语:(T*F+i),T*F+i,T*F,i(2分)
素短语:T*F,i (1分) 5、解:(1) E0→E(1)
E→E0E(2)
EA→E(1)
E→EAE(2)
E→i(3分)
(2) E→E(1)
{BACKPA TCH(E(1)·FC,NXQ);
E0·TC:=E(1)·TC}
E→E0E(2)
{E·FC:=E(2)·FC;
E·TC:=MERG(E0·TC,E(2)·TC)}
EA→E(1)
{BACKPA TCH(E(1)·TC,NXQ);
E0·FC:=E(1)·FC}
E→EAE(2)
{E·TC:=E(2)·TC;
E·FC:=MERG(EA·FC,E(2)·FC}
E→i
{E·TC:=NXQ;E·FC:=NXQ+1;
GEN(jn2,entry(i),-0);
GEN(j,-,-,0)(3分)
6、解:(1)DAG:
(2) 优化后的四元式
T3:=S-R
T4:=S+R
A:=5*T4
B:=T3+T4(3分)。