编译原理试题及答案期末复习版pdf资料
(完整版)编译原理复习题及答案
编译原理复习题及答案一、选择题1.一个正规语言只能对应(B)A 一个正规文法B 一个最小有限状态自动机2.文法G[A]:A→εA→aB B→Ab B→a是(A)A 正规文法B 二型文法3.下面说法正确的是(A)A 一个SLR(1)文法一定也是LALR(1)文法B 一个LR(1)文法一定也是LALR(1)文法4.一个上下文无关文法消除了左递归,提取了左公共因子后是满足LL(1)文法的(A)A 必要条件B 充分必要条件5.下面说法正确的是(B)A 一个正规式只能对应一个确定的有限状态自动机B 一个正规语言可能对应多个正规文法6.算符优先分析与规范归约相比的优点是(A)A 归约速度快B 对文法限制少7.一个LR(1)文法合并同心集后若不是LALR(1)文法(B)A 则可能存在移进/归约冲突B 则可能存在归约/归约冲突C 则可能存在移进/归约冲突和归约/归约冲突8.下面说法正确的是(A)A Lex是一个词法分析器的生成器B Yacc是一个语法分析器9.下面说法正确的是(A)A 一个正规文法也一定是二型文法B 一个二型文法也一定能有一个等价的正规文法10.编译原理是对(C)。
A、机器语言的执行B、汇编语言的翻译C、高级语言的翻译D、高级语言程序的解释执行11.(A)是一种典型的解释型语言。
A.BASIC B.C C.FORTRAN D.PASCAL12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B)完成的。
A. 编译器B. 汇编器C. 解释器D. 预处理器13.用高级语言编写的程序经编译后产生的程序叫(B)A.源程序 B.目标程序C.连接程序D.解释程序14.(C)不是编译程序的组成部分。
A.词法分析程序B.代码生成程序C.设备管理程序D.语法分析程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括(C)。
A.模拟执行器B.解释器 C.表格处理和出错处理D.符号执行器16.编译程序绝大多数时间花在(D)上。
完整word版,编译原理期末试题(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.构造编译程序应掌握______。
最新编译原理及(期末复习版).pdf介绍
<编译原理>历年试题及答案一.(每项选择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/d 9.程序所需的数据空间在程序运行前就可确定,称为____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)构造一个确定的有限自动机。
(完整版)编译原理期末试题(含答案+大题集+重要知识点)
7.一个句型一定句子。()
8.算符优先分析法每次都是对句柄进行归约。X()
9.采用三元式实现三地址代码时,不利于对中间代码进行优化。()
10.编译过程中,语法分析器的任务是分析单词是怎样构成的。()
11.一个优先表一定存在相应的优先函数。X()
12.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。()
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∨
6.扫描器的任务是从(源程序中)中识别出一个个(单词符号)。
7.符号表中的信息栏中登记了每个名字的有关的性质,如(类型、种属、所占单元大小、地址)等等。
8.一个过程相应的DISPLAY表的内容为(现行活动记录地址和所有外层最新活动记录的地址)
10.常用的两种动态存贮分配办法是(栈式)动态分配和(堆式)动态分配。
《编译原理》期末试题(一)
一、是非题(请在括号内,正确的划√,错误的划×)(每个2分,共20分)
1.编译程序是对高级语言程序的解释执行。(×)
2.一个有限状态自动机中,有且仅有一个唯一的终态。(×)
3.一个算符优先文法可能不存在算符优先函数与之对应。(√)
4.语法分析时必须先消除文法中的左递归。(×)
二、填空题:
2.编译过程可分为 (词法分析) ,(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。
(完整word版)编译原理期末考试习题及答案(word文档良心出品)
一、填空题| (每题4分,共20分)1.乔母斯基定义的3型文法(线性文法)产生式形式A Ba|a,或A aB|a, A, B € Vn, a,b € Vt 。
2.语法分析程序的输入是单词符号,其输出是语法单位。
3型为B .aB的LR(0)项目被称为移进项目,型为B a.B的LR (0) 项目被称为待约项目,4. 在属性文法中文法符号的两种属性分别为继承属性和综合属性。
5、运行时存贮管理方案有静态存储分配、动态存储分配和堆式存储分配和方案。
二.已知文法G(S)⑴ E T | E+T⑵ T F | F*F⑶ F (E) | i(1)写出句型(T*F+i)的最右推到并画出语法树。
(4分)(2)写出上述句型的短语,直接短语和句柄。
(4分)答:(1)最右推到(2分)E ==> T ==>F ==> (E) ==> (E+T) ==> (E+F) ==> (E+i) ==> (T+i) ==> (T*F+i)(2)语法树(2分)IS/|\7i\E+T(3)(4 分)短语:(T*F+i ) ,T*F+i ,T*F,i直接短语:T*F,i句柄:T*F三.证明文法G(S) : S SaS | £是二义的。
(6分) 答:句子aaa对应的两颗语法树为:因此,文法是二义文法四.给定正规文法G( S):(1) S Sa | Ab |b ⑵A Sa请构造与之等价的DFA ( 6分) 答:对应的NFA 为: (6分)a b {F}① {S} {S}{S,A} ①{S,A} {S,A} {S}五•构造识别正规语言b*a(bb*a)*b* 最小的DFA(要求写出求解过程)。
(15分) 答:(1)对应的NFA(5分)a b{0}{1 , 3} {0} {1,3} ① {2 , 3} {2,3} {1,3}{2,3}六.已知文法G(S):(1) S A | a | (T)⑵ T T,S | S试:(1)消除文法的左递归;(4分)(2) 构造相应的first 和follow 集合。
编译原理试题及答案(期末复习版).pdf资料
词法分析器输出的结果是单词的种别编码和自身值,选 C。
正规式 M1 和 M2 所识别的语言集相等,故选 C。
选 c。
选 b。
选 C
堆式动态分配申请和释放存储空间不一定遵守先请后放和后请先放的原则,故选 d
. 【解答】
1.2 所示。
语法分析器:在词法分析
“程序”。 中间代码生成器:按照
H→M 得:LASTVT(M)cLASTVT(H),即 LASTVT(H)={;,d,b}
H,有#H#存在,即有#=#,#<FIRSTVT(H),LASTVT(H)>#,也即#
#<d. #<a,;>#,d>#, b>#。
P→…ab…,或 P→…aQb…,有 a=b,由 M→a|b 得:a=b;
优化:对中间代码
目标代码生成器:把中间代码翻译
译
出错处理程序对出现在源程序中的错误进行处理。此
. 【解答】
E 的短语有 FF^^*;相对于 T 的短语有
相对于 F 的短语有 F^;F^^;简单短语有 F;F^;句柄为 F.
. 【解答】
DFA 如图 2.66 所示。
.
和 M2 所识别的语言集相等 d. Ml 和 M2 状态数和有向弧条数相等
.中间代码生成时所依据的是—c。
.语法规则 b.词法规则 c.语义规则 d.等价变换规则
.后缀式 ab+cd+/可用表达式__b_来表示。
. a+b/c+d b. (a+b)/(c+d) c. a+b/(c+d) d. a+b+c/d 9.程序所需的
求出流图中的回边,
编译原理期末考试复习题(含答案)
编译原理期末考试复习题(含答案)一、选择题1.代码生成阶段的主要任务是(C)。
A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言2.文法G 所描述的语言是( C )的集合。
A.文法G 的字母表V 中所有符号组成的符号串B.文法G 的字母表V 的闭包V* 中的所有符号串C.由文法的开始符号推出的所有终结符串D.由文法的开始符号推出的所有符号串3.语言是(C)。
A.终结符与非终结符的符号串的集合B.非终结符符号串的集合C.终结符符号串的集合D.产生式的集合4.常用的中间代码形式不含(D)。
A.三元式B.四元式C.逆波兰式D.语法树5.四元式之间的联系是通过(B)实现的。
A.指示器B.临时变量C.符号表D.程序变量6.词法分析器的输出结果是( C )。
A.单词的种别编码B.单词在符号表中的位置C.单词的种别编码和自身值D.单词自身值7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为(B)。
A. ┐AB∨∧CD∨B.A┐B∨CD∨∧C.AB∨┐CD∨∧ D.A┐B∨∧CD∨8.下推自动机识别的语言是( C )A.0型语言 B.1型语言C.2型语言 D.3型语言9. 在规范归约中,用(B)来刻画可归约串。
A.直接短语 B.句柄C.最左素短语 D.素短语10.词法分析器用于识别( C)。
A.字符串 B.语句 C.单词 D.标识符11.一个句型中称为句柄的是该句型的最左(D)A.非终结符号 B.短语 C.句子 D.直接短语12.文法 G[E] :E→T∣E+TT→F∣T * FF→a∣(E)该文法句型 E + F * (E + T) 的简单短语是下列符号串中的(B)。
①(E+T)②E+T ③F ④ F * (E+T)A.①和③B.②和③C.③和④D.③13.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括(C)。
编译原理期末试题(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.构造编译程序应掌握______。
(完整word版)编译原理期末考试试卷及答案
第 0 页共 16 页一.填空题(每空2分,共20分) 1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静态存储分配方案和动态存储分配方案,而后者又分为(1)和(2)。
2. 规范规约是最(3)规约。
3. 编译程序的工作过程一般划分为5个阶段:词法分析、(4)、语义分析与中间代码生成,代码优化及(5)。
另外还有(6)和出错处理。
4.表达式x+y*z/(a+b)的后缀式为(7)。
5.文法符号的属性有综合属性和(8)。
6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a[1..15,1..20]某个元素a[i ,j]的地址计算公式为(9)。
7.局部优化是局限于一个(10)范围内的一种优化。
二.选择题(1-6为单选题,7-8为多选题,每问2分,共20分)1. 一个上下文无关文法G 包括四个组成部分:一组终结符,一组非终结符,一个(),以及一组()。
A .字符串B .产生式C .开始符号D .文法2.程序的基本块是指()。
A .一个子程序B .一个仅有一个入口和一个出口的语句C .一个没有嵌套的程序段D .一组顺序执行的程序段,仅有一个入口和一个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法。
A .自左向右 B .自顶向下 C .自底向上 D .自右向左 4.在通常的语法分析方法中,()特别适用于表达式的分析。
A .算符优先分析法 B . LR 分析法 C .递归下降分析法 D . LL (1)分析法 5.经过编译所得到的目标程序是()。
A .四元式序列B .间接三元式序列C .二元式序列D .机器语言程序或汇编语言程序 6.一个文法所描述的语言是();描述一个语言的文法是()。
A .唯一的 B .不唯一的 C .可能唯一,也可能不唯一7.如果在文法G 中存在一个句子,当其满足下列条件()之一时,则称该文法是二义文法。
编译原理期末复习题(包含上一份N多答案)
编译原理期末复习题(包含上一份N多答案)编译原理复习题一、填空题:1、编译方式与解释方式的根本区别在于(是否生成目标代码)。
2、对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。
3、如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段:(编译阶段)和(运行阶段)。
4、如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分成三个阶段:(编译阶段)、(汇编阶段)和(运行阶段)。
5、自顶向下语法分析方法会遇到的主要问题有(回溯)和((左递归带来的)无限循环)。
6、LL(k)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“k”的含义是(向输入串中查看K个输入符号)。
7、LL(1)分析法中,第一个L的含义是(从左到右进行分析),第二个L的含义是(每次进行最左推导),“1”的含义是(向输入串中查看1个输入符号)。
8、自顶向下语法分析方法的基本思想是:从(识别符号)出发,不断建立(直接推导),试图构造一个推导序列,最终由它推导出与输入符号相同的(符号串)。
9、自底向上语法分析方法的基本思想是:从待输入的符号串开始,利用文法的规则步步向上进行(直接归约),试图(归约)到文法的(识别符号|开始符号)。
10、LR(0)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“0”的含义是(向貌似句柄的符号串后查看0个输入符号)。
11、LR(1)分析法的名字中,“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。
12、SLR(1)分析法的名字中,“S”的含义是(简单的),“L”的含义是(从左到右进行分析),“R”的含义是(采用最右推导的逆过程---最左归约),“1”的含义是(向貌似句柄的符号串后查看1个输入符号)。
完整word版编译原理期末试题8套含答案详解推荐文档
(V)编译原理》期末试题(一)LR 分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
10.一个语义子程序描述了一个文法所对应的翻译工作。
二、选择题 (请在前括号内选择最确切的一项作为答案划一个勾,多划按错论1.词法分析器的输出结果是2. 正规式 M 1 和 M 2 等价是指( ) 可能存在两个不同的最左推导,但它们对应的语法树相同 5.构造编译程序应掌握C . ( ) 编译方法D . ( ) 以上三项都是A . ( ) 指示器 B. ( ) 临时变量C. ( ) 符号表D. ( ) 程序变量6.四元式之间的联系是通过 实现的。
一、是非题(请在括号内,正确的划V 错误的划X)每个 2 分,共 20 分)1.编译程序是对高级语言程序的解释执行。
(X)2.一个有限状态自动机中,有且仅有一个唯一的终态。
( X)3.一个算符优先文法可能不存在算符优先函数与之对应。
(V)4.语法分析时必须先消除文法中的左递归 。
(X) 5. 6.逆波兰表示法表示表达式时无须使用括号。
(V) 7.静态数组的存储空间可以在编译时确定。
( X)8.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。
( X)9. 两个正规集相等的必要条件是他们对应的正规式等价。
( X) ( X))(每个 4 分,共 40分)A .( ) 单词的种别编码B . ( ) 单词在符号表中的位置C . ( ) 单词的种别编码和自身值D . ( ) 单词自身值A . ( ) M1和M2的状态数相等B . ( ) M1 和 M2 的有向边条数相等C .( ) M1 和 M2 所识别的语言集相等D .( ) M1 和 M2 状态数和有向边条数相等3.文法G : S T xSx|y 所识别的语言是A . ( ) xyxB . ( ) (xyx)*C . ( ) xnyxn(n > 0)D . ( ) x*yx*4. 如果文法G 是无二义的,则它的任何句子A . ( )最左推导和最右推导对应的语法树必定相同B . ( ) 最左推导和最右推导对应的语法树可能不同C . ( ) 最左推导和最右推导必定相同D . A . ( )源程序B . ( ) 目标语言7.表达式(「AV B) A (CV D)的逆波兰表示为 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
状态GOTO
1
(4)串 ab#的分析过程动作 符号栈 剩余字符串 步骤 状态栈 当前字符
移进 A->ε归约 # 02 2 #a b
移进 A-> aAb 归约 # #aAb 4 0235
称为____c__管理技术。 堆式静态存储 10. d.堆式存储a.动态存储 b.栈式
c.动态分配申请和释放存储空间遵守___d_____原则。 任意先请后放b.c.后请先放d.a.
(每小题 10 分,共 80 分)简答题 1.画出编译程序的总体结构图,简述各部分的主要功能。
已知文法 G[E]: E→ET+|T T→TF* | F F→F^ | a 试证:FF^^*是文法的句型,指出该句型的
接受
.
【解答】 由 M→d 和 M→a…得:FIRSTVT(M)={d,a};
H-H;…得:FIRSTVT(H)={;}
H→M 得:FIRSTVT(M) cFIRSTVT(H),即 FIRSTVT(H)={;,d,a}
M→d 和 M→…b 得:LASTVT(M)={d,b};
. 【解答】
所示。 1.2 编译程序的总体结构图如图
词法分析器:输入源程序,进行词法分析,输出单词符号。 语法分析器:在词法分析的基础上,
(文法规则)把单词符号串分
解成各类语法单位,并判断输入串是否构成
。 中间代码生成器:按照 语义规则把语法分析器归约(或推导)出的语
优化:对中间代码形式的中间代码,比如说四元式。
SLR(1)文法,若是构造相应分析表,并对输入串 ab#给出分析过程。 6. 构
G[H]的算符优先关系(含#)。
G[H]:H→H;M|M M→d|aHb 7.已构造出文法 G
S)
(1)S BB
(2)B aB (3)B
1)。给出 DFA
2).给出 LR 分析表
3).假定输入串为 abaab,请给出 LR 分析过程(即状态,符号,输
的分析过程(3) 句子 abaab
的分析过程表:句子 abaab 所得产生式 输入串 步骤 状态 符号栈
2 aab# B→b#034 #ab
aab# 3 B→aB#036 #aB
识别成功
.
【解答】 该语句的四元式序列如下(其中 E1、E2 和 E3 分别对应:A<C∧B<D, A=1 和 A
d.既不持有左值也不持有右值 4.编译程序绝大多数时间花在_d___上。
出错处理 b.词法分析 c.目标代码生成 d.管理表格 5.词法分析器的输出结果是_c___。 a.单
b.单词在符号表中的位置 c.单词的种别编码和自身值 d.单词自身值 6.正规式
和 M2 等价是指__c__。 a. MI 和 M2 的状态数相等 b.Ml 和 M2 的有向弧条数相等。
编译原理>历年试题及答案
(每项选择 2 分,共 20 分)选择题
.将编译程序分成若干个“遍”是为了_b__。 a.提高程序的执行效率 b.使程序的结构更加清晰
利用有限的机器内存并提高机器的执行效率 d.利用有限的机器内存但降低了机器的执行效率
.构造编译程序应掌握__d__。
源程序 b.目标语言 c.编译方法 d.以上三项都是 3.变量应当 c_。 a.持有左值 b.持有右值 c.
H→H;''?得:LASTVT(H)>;,即:;>;,d>;,b>;
M→…Hb 得:LASTVT(H)>b,即:;>b,d>b,b>b
3.5。
. 【解答】 (1)LR
(2)分析表
状态GOTO ACTION
r3 r3 4
H---,;m 得:LASTVT(H)={;};
H→M 得:LASTVT(M)cLASTVT(H),即 LASTVT(H)={;,d,b}
对文法开始符 H,有#H#
即有#=#,#<FIRSTVT(H),LASTVT(H)>#,也即#<;, #<d. #<a,;>#,d>#, b>#。
a=b;
成目标语言程序。
译 表格管理模块保存一系列的表格,登记源程序的各类信息和编译各阶段的进展情
出错处理程序对出现在源程序中的错误进行处理。此外,编
Байду номын сангаас
. 【解答】
E 的短语有 FF^^*;相对于 T 的短语有
相对于 F 的短语有 F^;F^^;简单短语有 F;F^;句柄为 F.
9. 【解答】 (1)流图中各结点 N 的必经结点集 D(n), D(l)={1},D(2)={1,2},D(3)
{1,2,3},D(4)={1,2,3,4},D(5)={1,2,5}, D(6)={1,2,5,6}
(2)求出流图中的回边,
D 并且关 系运算符优先级高):
100 (j<,A,C,102)
为 F*/ 101(j,_,_,113)
为 T*/ 102 (j<,B,D,104)
为 F*/ 103 (j,_,_,113)
为 T*/ 104 (j=,A,1,106)
为 (j,_,_,108) F*/
+(/*C:=C+1*/
构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选 d。 对编译而言,变量既
3. c。 编译程序打交道最多的就是各种表格,因此选4. d。 词
C。 5. 正规式 M1 和 M2 6. 所识别的
C。 选 7. c。 选 b 8.。 选9. C
d
=FIRST(L)={( { )}
=FOLLOW(LFIRST(L')={,,ε} ' .5 【解答】
拓广文法(1) >ε(0)S->A (1) A->aAd (2)A->
-
DFA
(2)
I0:FOLLOW(A)∩{a}=Ф
I1:FOLLOW(A)∩{a}=Ф 因为,在 DFA 中无冲突的现象,所以该文法是 SLR(1)文法。
.
.为正规式(a|b) *a(a|b)构造一个确定的有限自动机。 4. 设文法 G(S):
→(L)|a S|a
→L,S|S
消除左递归和回溯;(1)
(2) 计算每个非终结符的 FIRST 和 FOLLOW; (3) 构造预测分析表。 5. 已知文法
->aAd| aAb|ε
.
【解答】 最简 DFA 如图 2.66 所示。
.
【解答】 (1)
S→(L)|aS' S'→S|ε L→S L' L'→S L'|ε 评分细则:消除左递归 2 分,提公共因子 2 分。
和(2) FIRST
={#,,,FIRST)S)={(,a} FOLLOW(S) )} ,,,a,ε}FOLLOW(S')={#{FIRST(S')=, { )} ,
跳过 else 后的语句*/ 107 (j,_,_,112)
为 T*/ 108 (j≤,A,D,110)/*E3 为 F*/ 109 (j,_,_,112)
+/*A:=A+2*/
转回内层 while 语句开始处*/ 111 (j,_,_,108)
转回外层 while 语句开始处*/
→…aQb…,有 a=b,由 M→a|b 得:P→…ab…对形如 ,或
∈,对形如 P→…Rb…,而
. 对形如P→…aR…,而 b∈FIRSTVT(R),有a<b
a>b。
H→…;M 得:;<FIRSTVT(M),即::<d,:<a
M→aH…得:a<FIRSTVT(H),即:a<;,a<d,a<a
。 8. 将下面的语句翻译成四元式序列:
while A<C∧B<D do if A=1 then
else while A≤ D
;
. 对下面的流图,
(1)求出流图中各结点 N 的必经结点集 D(n), (2)求出流图中的回边, (3)
考 答 案
单项选择题
1. 将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选 b。
和 M2 所识别的语言集相等 d. Ml 和 M2 状态数和有向弧条数相等
.中间代码生成时所依据的是—c。
.语法规则 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/d 9.程序所需的数据空间在程