编译原理小题答案
《编译原理》考试试题及答案
《编译原理》考试试题及答案(附录)一、判断题:1.一个上下文无关文法的开始符,可以是终结符或非终结符。
( X )2.一个句型的直接短语是唯一的。
( X )3.已经证明文法的二义性是可判定的。
( X )4.每个基本块可用一个DAG表示。
(√)5.每个过程的活动记录的体积在编译时可静态确定。
(√)6.2型文法一定是3型文法。
( x )7.一个句型一定句子。
( X )8.算符优先分析法每次都是对句柄进行归约。
(应是最左素短语) ( X )9.采用三元式实现三地址代码时,不利于对中间代码进行优化。
(√)10.编译过程中,语法分析器的任务是分析单词是怎样构成的。
( x )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.扫描器的任务是从()中识别出一个个()。
编译原理-试题及参考答案(魏国利)
试题(共10道)1.设∑={0,1}上的正规集S由倒数第二个字符为1的所有字符串组成,请给出该字集对应的正规式,并构造一个识别该正规集的DFA。
2.已知文法G[S’] :S’→SS→rDD→D,iD→i(1)构造G[S’]的识别活前缀的有穷自动机DFA。
(2)该文法是LR(0)文法吗?为什么?3.已知文法G[S’] :S’→S (1)S→AAA (2)A→1A (3)A→0 (4)(1)构造G[S’]的识别活前缀的有穷自动机DFA。
(2)构造相应的LR(0)分析表。
4.构造一个DFA,它接受∑={a,b}上所有包含ab的字符串。
5.构造正规式 (0|1)*00 相应的DFA并进行化简。
6.构造以下正规式相应的NFA,再确定化10(1|0)*117. 设有语言L={ α | α∈{0,1} + ,且α不以0 开头,但以00 结尾} 。
(1)试写出描述L 的正规表达式;(2)构造识别L 的DFA (要求给出详细过程,并画出构造过程中的NDFA 、DFA 的状态转换图,以及DFA 的形式化描述) 。
8.已知NFA=({x,y,z},{0,1},M,{x},{z}),其中:M(x,0)={z},M(y,0)={x,y},,M(z,0)={x,z},M(x,1)={x},M(y,1)=φ,M(z,1)={y},构造相应的DFA。
9. 给出下述文法所对应的正规式:S→0A|1BA→1S|1B→0S|010. 将下图的DFA 最小化,并用正规式描述它所识别的语言。
答案1.答:构造相应的正规式:(0|1)*1(0|1) NFA:12.答:(1) G[S ’]的识别活前缀的有穷自动机为: (2) 该文法不是LR (0)文法,因为I 3中有移进—规约冲突。
3.答:(1) G[S’]的识别活前缀的有穷自动机为:(2)4.答:构造相应的正规式:(a|b)*ab(a|b)*确定化:最小化:{0,1,2} {3,4,5} {0, 2},1, {3,4,5}5.答:最小化:{1,2,3} {4}{1,2,3}0={2,4} {1,3} {2} {4}6.答:(1)正规表达式:1(0|1) * 00(2)第一步:将正规表达式转换为NDFA第二步:将NDFA 确定化为DFA :造表法确定化,确定化后DFA M 的状态转换表状态输入I 0 I 1 t 0 1 [S] —[A,D,B] q 0 —q 1 [A,D,B] [D,B,C] [D,B] 重新命名q 1 q 2 q 3 [D,B,C] [D,B,C,Z] [D,B] q 2 q 4 q 3 [D,B] [D,B,C] [D,B] q 3 q 2 q 3 [D,B,C,Z] [D,B,C,Z] [D,B] q 4 q 4 q 3DFA 的状态转换图第三步:给出DFA 的形式化描述DFA M = ({ q 0 , q 1 , q 2 , q 3 , q 4 }, {0,1}, t, q 0 , { q 4 } )t 的定义见M 的状态转换表。
编译原理题——简答题
编译原理A1.简要说明语义分析的基本功能。
2. 考虑文法 G[S]:S → (T) | a+S | aT → T,S | S消除文法的左递归及提取公共左因子。
3试为表达式 w+(a+b)*(c+d/(e-10)+8) 写出相应的逆波兰表示。
4. 按照三种基本控制结构文法将下面的语句翻译成四元式序列:while (A<C ∧ B<D){if (A ≥ 1) C=C+1;else while (A ≤ D)A=A+2;}。
5. 已知文法 G[S] 为S → aSb|Sb|b,试证明文法 G[S] 为二义文法。
A答案1答:语义分析的基本功能包括: 确定类型、类型检查、语义处理和某些静态语义检查。
2解:消除文法G[S]的左递归:S→(T) | a+S | aT→ST′T′→,ST′| ε提取公共左因子:S→(T) | aS′S′→+S | εT→ST′T′→,ST′| ε3答:w a b + c d e 10 - / + 8 + * +4答:该语句的四元式序列如下(其中E1、E2和E3分别对应A<C∧B<D、A≥1和A≤D,并且关系运算符优先级高):100 (j<,A,C,102)101 (j,_,_,113)102 (j<,B,D,104)103 (j,_,_,113)104 (j=,A,1,106)105 (j,_,_,108)106 (+, C, 1, C)107 (j,_,_,112)108 (j≤,A,D,110) 109 (j,_,_,112)110 (+, A, 2, A)111 (j,_,_,108)112 (j,_,_,100)1135答:证明:由文法G[S]:S→aSb|Sb|b,对句子aabbbb对应的两棵语法树为:因此,文法G[S]为二义文法。
编译原理B1.什么是句子?什么是语言 ?2. 写一文法,使其语言是偶正整数的集合,要求:(1)允许0打头;(2) 不允许0打头。
编译原理小题答案
《编译原理》常见题型一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,中间代码生成,代码优化(可省) ,目标代码生成等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序.3.编译方式与解释方式的根本区别在于是否生成目标代码 .5.对编译程序而言,输入数据是源程序,输出结果是目标程序 .7.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
8.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。
其中,词法分析器用于识别单词。
10.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。
12.产生式是用于定义语法成分的一种书写规则。
13.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S=>*x,x∈VT*} 。
14.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V*),则称x是文法的一个句型。
15.设G是一个给定的文法,S是文法的开始符号,如果S*⇒x(其中x∈V T*),则称x是文法的一个句子。
16.扫描器的任务是从源程序中识别出一个个单词符号。
17.语法分析最常用的两类方法是自上而下和自下而上分析法。
18.语法分析的任务是识别给定的终结符串是否为给定文法的句子。
19.递归下降法不允许任一非终结符是直接左递归的。
20.自顶向下的语法分析方法的关键是如何选择候选式的问题。
21.递归下降分析法是自顶向下分析方法。
22.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
23.自底向上的语法分析方法的基本思想是:从给定的终结符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
编译原理习题及答案(整理后)
第一章1、将编译程序分成若干个“遍”是为了。
b.使程序的结构更加清晰2、构造编译程序应掌握。
a.源程序b.目标语言c.编译方法3、变量应当。
c.既持有左值又持有右值4、编译程序绝大多数时间花在上。
d.管理表格5、不可能是目标代码。
d.中间代码6、使用可以定义一个程序的意义。
a.语义规则7、词法分析器的输入是。
b.源程序8、中间代码生成时所遵循的是- 。
c.语义规则9、编译程序是对。
d.高级语言的翻译10、语法分析应遵循。
c.构词规则二、多项选择题1、编译程序各阶段的工作都涉及到。
b.表格管理c.出错处理2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成e.目标代码生成三、填空题1、解释程序和编译程序的区别在于是否生成目标程序。
2、编译过程通常可分为5个阶段,分别是词法分析、语法分析中间代码生成、代码优化和目标代码生成。
3、编译程序工作过程中,第一段输入是源程序,最后阶段的输出为标代码生成程序。
4、编译程序是指将源程序程序翻译成目标语言程序的程序。
一、单项选择题1、文法G:S→xSx|y所识别的语言是。
a. xyxb. (xyx)*c.x n yx n(n≥0) d. x*yx*2、文法G描述的语言L(G)是指。
a. L(G)={α|S+⇒α , α∈V T*}b. L(G)={α|S*⇒α, α∈V T*}c. L(G)={α|S*⇒α,α∈(V T∪V N*)} d. L(G)={α|S+⇒α, α∈(V T∪V N*)}3、有限状态自动机能识别。
a. 上下文无关文法b. 上下文有关文法c.正规文法d. 短语文法4、设G为算符优先文法,G 的任意终结符对a、b有以下关系成立。
a. 若f(a)>g(b),则a>bb.若f(a)<g(b),则a<bc. a~b都不一定成立d. a~b一定成立5、如果文法G是无二义的,则它的任何句子α。
a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同6、由文法的开始符经0步或多步推导产生的文法符号序列是。
编译原理考试题及答案
编译原理考试题及答案一、选择题(每题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. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
编译原理试题及答案
参考答案一、单项选择题(共10小题,每小题2分,共20分)1.语言是A .句子的集合B .产生式的集合C .符号串的集合D .句型的集合 2.编译程序前三个阶段完成的工作是 A .词法分析、语法分析和代码优化 B .代码生成、代码优化和词法分析C .词法分析、语法分析、语义分析和中间代码生成D .词法分析、语法分析和代码优化3.一个句型中称为句柄的是该句型的最左 A .非终结符号 B .短语 C .句子 D .直接短语4.下推自动机识别的语言是A .0型语言B .1型语言C .2型语言D .3型语言5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即 A . 字符B .单词C .句子D .句型6.对应Chomsky 四种文法的四种语言之间的关系是 A .L 0⊂L 1⊂L 2⊂L 3B .L 3⊂L 2⊂L 1⊂L 0C .L 3=L 2⊂L 1⊂L 0D .L 0⊂L 1⊂L 2=L 3 7.词法分析的任务是 A .识别单词B .分析句子的含义C .识别句子D .生成目标代码 8.常用的中间代码形式不含A .三元式B .四元式C .逆波兰式D .语法树 9. 代码优化的目的是A .节省时间B .节省空间C .节省时间和空间D .把编译程序进行等价交换10.代码生成阶段的主要任务是 A .把高级语言翻译成汇编语言 B .把高级语言翻译成机器语言C .把中间代码变换成依赖具体机器的目标代码装 订 线D.把汇编语言翻译成机器语言二、填空题(本大题共5小题,每小题2分,共10分)1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。
2.编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。
3.通常把编译过程分为分析前端与综合后端两大阶段。
词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。
编译原理习题及答案
2. 正规式 M 1 和 M 2 等价是指_____。 A.( ) M1 和 M2 的状态数相等 C.( ) M1 和 M2 所识别的语言集相等 B.( ) M1 和 M2 的有向边条数相等 D.( ) M1 和 M2 状态数和有向边条数相等
3. 文法 G:S→xSx|y 所识别的语言是_____。 A.( ) xyx B.( ) (xyx)* C.( ) xnyxn(n≥0) D.( ) x*yx*
10.编译程序使用_____区别标识符的作用域。 A. ( ) 说明标识符的过程或函数名 B.( ) 说明标识符的过程或函数的静态层次 C.( ) 说明标识符的过程或函数的动态层次 D. ( ) 标识符的行号 三、填空题(每空 1 分,共 10 分) 1.计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。 2.扫描器是__词法分析器___,它接受输入的__源程序___,对源程序进行___词法分析__并识别出一个个 单词符号,其输出结果是单词符号,供语法分析器使用。 3.自上而下分析法采用___移进__、归约、错误处理、___接受__等四种操作。 4.一个 LR 分析器包括两部分:一个总控程序和___一张分析表__。 5.后缀式 abc-/所代表的表达式是___a/(b-c)__。 6.局部优化是在__基本块___范围内进行的一种优化。 四、简答题(20 分) 1. 简要说明语义分析的基本功能。 答:语义分析的基本功能包括: 确定类型、类型检查、语义处理和某些静态语义检 查。
4lr0分析器所谓lr0分析是指从左至右扫描和自底向上的语法分析且在分析的每一步只须根据分析栈当前已移进和归约出的全部文法符号并至多再向前查看0个输入符号就能确定相对于某一产生式左部符号的句柄是否已在分析栈的顶部形成从而也就可以确定当前所应采取的分析动作移进还是按某一产生式进行归约等
编译原理习题及答案(整理后)
第一章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.目标程序8、中间代码生成时所遵循的是- 。
a.语法规则b.词法规则c.语义规则d.等价变换规则9、编译程序是对。
a.汇编程序的翻译b.高级语言程序的解释执行c.机器语言的执行d.高级语言的翻译10、语法分析应遵循。
a.语义规则b.语法规则c.构词规则d.等价变换规则二、多项选择题1、编译程序各阶段的工作都涉及到。
a.语法分析b.表格管理c.出错处理d.语义分析e.词法分析2、编译程序工作时,通常有阶段。
a.词法分析b.语法分析c.中间代码生成d.语义检查e.目标代码生成三、填空题1、解释程序和编译程序的区别在于。
2、编译过程通常可分为5个阶段,分别是、语法分析、代码优化和目标代码生成。
3、编译程序工作过程中,第一段输入是,最后阶段的输出为程序。
4、编译程序是指将程序翻译成程序的程序。
单选解答1、将编译程序分成若干个“遍”是为了使编译程序的结构更加清晰,故选b。
2、构造编译程序应掌握源程序、目标语言及编译方法等三方面的知识,故选d。
3、对编译而言,变量既持有左值又持有右值,故选c。
4、编译程序打交道最多的就是各种表格,因此选d。
5、目标代码包括汇编指令代码、可重定位指令代码和绝对指令代码3种,因此不是目标代码的只能选d。
编译原理试卷及答案
得
分
二、简答题(每小题5分,共计20分)
1、请说明什么是算符优先文法?
答:(1)在CFG中无空产生式,且右部无相邻的非终极符
(2)任意两个相邻的终极符间至多只存在一种关系
2、哪些优化措施是主要针对于循环实现的?可举例说明
答:代码外提
强度削弱
归纳变量删除
进行翻译后的四元式序列?并以此解释什么是链接与回填?
答:
(1)(jn,a,-,0)
(2)(j,-,-,3)回填
(3)(jn,b,-,5)回填
(4)(j,-,-,0)
(5)(<,e,f,1) E.TC链接
(6)(j,-,-,4)E.FC
在翻译过程中,常常会出现若干转移四元式转向同一目标,但此目标的具体位置又尚未确定的情况,此时我们可将这些四元式用拉链的办法将它们链接起来,用一指针指向链头,在确定了目标四元式的位置之后,再回填这个链。
在I0和I2,I3中存在有移进
归约冲突
但是FOLLOW(A)={d,b,#} {a}{d,b,#}=,所以文法是SLR(1)文法
a
b
d
#
A
I0
S2
r4
r4
r4
1
I1
acc
I2
S2
r4
r4
r4
3ห้องสมุดไป่ตู้
I3
S5
S4
I4
r2
r2
r2
I5
r3
r3
r3
得
分
七、为文法
S(L) |a
LL,S|S
写一个属性翻译文法,它输出文法中a的个数。(10分)
编译原理习题参考答案
编译原理习题参考答案第⼆章2.构造产⽣下列语⾔的⽂法(2){a n b m c p|n,m,p≥0}解: G(S) :S→aS|X,X→bX|Y,Y→cY|ε(3){a n # b n|n≥0}∪{cn # dn|n≥0}解: G(S):S→X,S→Y,X→aXb|#, Y→cYd|# }(5)任何不是以0 打头的所有奇整数所组成的集合解:G(S):S→J|IBJ,B→0B|IB|ε,I→J|2|4|6|8, J→1|3|5|7|9}(6)(思考题)所有偶数个0 和偶数个1 所组成的符号串集合解:对应⽂法为 S→0A|1B|ε,A→0S|1C B→0C|1S C→1A|0B3.描述语⾔特点(2)S→SS S→1A0 A→1A0 A→ε解:L(G)={1n10n11n20n2… 1nm0nm |n1,n2,…,nm≥0;且n1,n2,…nm 不全为零}该语⾔特点是:产⽣的句⼦中,0、1 个数相同,并且若⼲相接的1 后必然紧接数量相同连续的0。
(5)S→aSS S→a解:L(G)={a(2n-1)|n≥1}可知:奇数个a5. (1) 解:由于此⽂法包含以下规则:AA→ε,所以此⽂法是0 型⽂法。
7.解:(1)aacb 是⽂法G[S]中的句⼦,相应语法树是:最右推导:S=>aAcB=>aAcb=>aacb最左推导:S=>aAcB=>aacB=>aacb(3)aacbccb 不是⽂法G[S]中的句⼦aacbccb 不能从S推导得到时,它仅是⽂法G[S]的⼀个句型的⼀部分,⽽不是⼀个句⼦。
11.解:最右推导:(1) S=>AB=>AaSb=>Aacb=>bAacb=>bbAacb=>bbaacb上⾯推导中,下划线部分为当前句型的句柄。
对应的语法树为:3 假设M:⼈ W:载狐狸过河,G:载⼭⽺过河,C:载⽩菜过河6 根据⽂法知其产⽣的语⾔是L={a m b n c i| m,n,i≧1}可以构造如下的⽂法VN={S,A,B,C}, VT={a,b,c}P={ S →aA, A→aA, A→bB, B→bB, B→cC, C→cC, C→c} 其状态转换图如下:7 (1) 其对应的右线性⽂法是:A →0D, B→0A,B→1C,C→1|1F,C→1|0A,F→0|0E|1A,D→0B|1C,E→1C|0B(2) 最短输⼊串011(3) 任意接受的四个串: 011,0110,0011,000011(4) 任意以1 打头的串.9.对于矩阵(iii)(1) 状态转换图:(2) 3型⽂法(正规⽂法)S→aA|a|bB A→bA|b|aC|a B→aB|bC|b C→aC|a|bC|b(3)⽤⾃然语⾔描述输⼊串的特征以a 打头,中间有任意个(包括0个)b,再跟a,最后由⼀个a,b 所组成的任意串结尾或者以b 打头,中间有任意个(包括0个)a,再跟b,最后由⼀个a,b 所组成的任意串结尾。
编译原理题库——简答题
G(S):A→2∣4∣6∣8∣D
B→A∣0
C→CB∣A
D→1∣3∣5∣7∣9
S→CD∣D
8解:
(1)最左推导为:
E => E+T => T+T => F+T => i+T => i+T*F => i+F*F => i+i*F => i+i*i
E => T => T*F => F*F => i*F => i*(E) => i*(E+ T) => i*(T+ T)
即有(L(A)∪L(B))*=L((A*B*))* ③
111 (j,_,_,108)
112 (j,_,_,100)
113
5答:证明:
由文法G[S]:S→aSb|Sb|b,对句子aabbbb对应的两棵语法树为:
因此,文法G[S]为二义文法。
编译原理B
1.什么是句子? 什么是语言 ?
2. 写一文法,使其语言是偶正整数的集合,要求:
(1)允许0打头;
(2) 不允许0打头。
P:
S->PD|D
P->NP|N
D->0|2|4|6|8
N->0|1|2|3|4|5|6|7|8|9
(2)G[S]=({S,P,R,D,N,Q },{0,1,2,…,9},P,S)
P:
S->PD|P0|D
P->NR|N
R->QR|Q
D->2|4|6|8
N->1|2|3|4|5|6|7|8|9
Q->0|1|2|3|4|5|6|7|8|9
编译原理试题及答案(期末复习版)
<编译原理>历年试题及答案一.(每项选择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)构造预测分析表。
编译原理-题库
编译原理-题库1、编译程序工作时,通常有()阶段。
A、词法分析B、语法分析C、中间代码生成D、语义检查E、目标代码生成答案: ABCE2、编译程序各阶段的工作都涉及到()。
A、语法分析B、表格管理C、出错处理D、语义分析E、词法分析答案: BC3、自下而上的语法分析中,应从()开始分析。
A、句型B、句子C、以单词为单位的程序D、文法的开始符E、句柄答案: BC4、对正规文法描述的语言,以下()有能力描述它。
A、 0型文法B、 1型文法C、上下文无关文法D、右线性文法E、左线性文法答案: ABCDE5、如果文法G存在一个句子,满足下列条件()之一时,则称该文法是二义文法。
A、该句子的最左推导与最右推导相同B、该句子有两个不同的最左推导C、该句子有两棵不同的最右推导D、该句子有两棵不同的语法树E、该句子的语法树只有一个答案: BCD6、在词法分析中,能识别出()。
A、基本字B、四元式C、运算符D、逆波兰式E、常数答案: ACE7、对LR分析器来说,存在()等分析表的构造方法。
A、 LALRB、 LR(0)C、 SLR(1)D、 SLR(0)E、 LR(1)答案: ABCE8、自上而下的语法分析方法有()。
A、算符优先分析法B、 LL(1)分析法C、 SLR(1)分析法D、 LR(0)分析法E、 LALR(1)分析法答案: ACDE9、对LR分析表的构造,有可能存在()动作冲突。
A、移进B、归约C、移进/归约D、移进/移进E、归约/归约答案: CE10、中间代码主要有()。
A、四元式B、二元式C、三元式D、后缀式E、间接三元式答案: ACDE11、有穷自动机接受的语言是正则语言。
答案:正确12、一个文法所有句型的集合形成该文法所能接受的语言。
答案:错误13、在自下而上的语法分析中,语法树与分析树一定相同。
答案:错误14、语法分析时必须先消除文法中的左递归。
答案:错误15、一个有限状态自动机中,有且仅有一个惟一终态。
编译原理(高起本)题及答案
课程:编译原理(高起本)总时长:120分钟1. (单选题) 语言是( )(本题2.0分)A、句子的集合B、产生式的集合C、符号串的集合D、句型的集合学生答案: A标准答案:A解析:得分: 22. (单选题) 编译程序前三个阶段完成的工作是( )(本题2.0分)A、词法分析、语法分析和代码优化B、代码生成、代码优化和词法分析C、词法分析、语法分析、语义分析和中间代码生成D、词法分析、语法分析和代码优化学生答案: C标准答案:C解析:得分: 23. (单选题) 一个句型中称为句柄的是该句型的最左( )(本题2.0分)A、非终结符号B、短语C、句子D、直接短语学生答案: D标准答案:D解析:得分: 24. (单选题) 下推自动机识别的语言是( )(本题2.0分)A、0型语言B、1型语言C、2型语言D、3型语言学生答案: C标准答案:C解析:得分: 25. (单选题) 扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即( )(本题2.0分)A、字符B、单词C、句子D、句型学生答案: B标准答案:B解析:得分: 26. (单选题) 对应Chomsky四种文法的四种语言之间的关系是( )(本题2.0分)A、L0L1L2L3B、L3L2L1L0C、L3=L2L1L0D、L0L1L2=L3学生答案: B标准答案:B解析:得分: 27. (单选题) 词法分析的任务是( )(本题2.0分)A、识别单词B、分析句子的含义C、识别句子D、生成目标代码学生答案: A标准答案:A解析:得分: 28. (单选题) 常用的中间代码形式不含( )(本题2.0分)A、三元式B、四元式C、逆波兰式D、语法树学生答案: D标准答案:D解析:得分: 29. (单选题) 代码优化的目的是( )(本题2.0分)A、节省时间B、节省空间C、节省时间和空间D、把编译程序进行等价交换学生答案: C标准答案:C解析:得分: 210. (单选题) 代码生成阶段的主要任务是( )(本题2.0分)A、把高级语言翻译成汇编语言B、把高级语言翻译成机器语言C、把中间代码变换成依赖具体机器的目标代码D、把汇编语言翻译成机器语言学生答案: C标准答案:C解析:得分: 211. (单选题) 将高级语言程序翻译为计算机可执行的目标程序有哪些途径()。
编译原理试题及答案
编译原理试题一、填空题1、汇编程序将________翻译成________;编译程序将________翻译成________。
2、编译程序工作工程可以划分为______、______、______、______和______等5个基本阶段,同时还会伴有______和______。
3、对编译程序而言,输入数据是______,输出数据是______。
4、已知文法G[E]:E—>T|E+T|E—F,T-〉F|T*F|T/F,F->(E)|I,(“,”是间隔符号,不是文法中的符号)。
该文法的开始符号(识别字符)是______,终结符号集合V T是______,非终结符号结合V N是______,句型T+T*F+i的短语有____________。
该文法消除直接左递归,改写后的文法为E->________,T ->________,F-〉________。
5、Chomsky定以来寺中形式语言的文法分别为:________文法(又称________文法)、________文法(又称________文法)、________文法(又称________文法)、________文法(又称________文法)。
6、编译过程中扫描器所完成的任务是从________中识别出一个个具有________。
7、确定的有穷自动机是一个________,通常表示为________.8、LL(k)分析中,第一个L的含义是________,第二个L的含义是________,“k"的含义是________。
9、LL(1)分析中,第一个L的含义是________,第二个L的含义是________,“1”的含义是________.10、LR(0)分析中,“L"的含义是________,“R”的含义是________,“0”的含义是________。
11、SLR(1)分析中,“L”的含义是________,“R”的含义是________,“1”的含义是________。
编译原理样题3(有答案
编译原理样题一选择题[]1. 型文法也称为正规文法。
[A] O [B] 1 [C] 2 [D] 3[]2. 文法不是LL(I)的。
[A]递归 [B]右递归 [C] 2型 [D]含有公共左因子的【]3.文法E-E+E∣E*E∣i的句子i*i+i*i的不同语法分析树的总数为。
[A]l [B]3 [C]5 [D]7[]4.四元式之间的联系是通过实现。
[A]临时变量 [B]指示器 [C]符号表[D]程序变量[1 5.同心集合并可能会产生的新冲突为 O[A]二义[B]移进/移进[C]移进/归约[D]归约/归约[]6.代码优化时所依据的是 o[A]语法规则[B]词法规则 [C]等价变换规则 [D]语义规则1]7.表达式a-(-b) *c的逆波兰表示为 o[A]a-b@c* [B]abθc*- [C]ab0- [D]ab0c-* (注:©为单目减运算符)[]8.过程的D:ISPLAY表记录了。
[A]过程的连接数据[B]过程的嵌套层次[C]过程的返回地址[D]过程的入口地址二填空题1.编译过程的六个阶段为:词法分析、、语义分析、代码优化和目标代码生成。
2.词法分析阶段的任务式从左到右扫描,从而逐个识别 o3.对于文法Gl和G2,若有,则称文法Gl和G2是等价的。
4.对于文法 G[E] : E→T∣E+T T→F∣T*F F→P^F∣ P PT(E)I i,句型 T+T*F+i 的句柄是,最左素短语是 O所谓素短语是指这样的一个短语,它至少含有一个终结符,并且,除它自身之外不再含任何更小的素短语。
所谓最左素短语是指处于句型最左边的那个素短语。
如,P*P和i是句型P*P+i的素短语,而P*P 是它的最左素短语。
5.最右推导的逆过程称为,也称为。
6.规范规约中的可规约串是,算符优先分析中的可规约串是 o7. (AV B) A (CV -I DA E)的逆波兰式是 o8.在属性文法中文法符号的两种属性分别称为和 O9.符号表的每•项是由名字栏和两个栏目组成。
编译原理练习题答案
编译原理练习题答案编译原理练习题⼀、选择题1.下列()程序语⾔是依赖于机器的。
A.⾃然语⾔B.⾼级语⾔C.SQL语⾔D.汇编语⾔或机器语⾔2.编译程序是对()程序进⾏翻译。
A.机器语⾔B. 汇编语⾔C. ⾼级语⾔D. ⾃然语⾔3.编译程序的⼯作过程划分为5个阶段:词法分析、()、语义分析与中间代码A. 语法分析B. 出错处理C. 表格管理D.存储空间组织4.编译程序各阶段的⼯作都涉及到()。
A. 语法分析B. 语义分析C.代码优化D.表格管理5.设A是符号串的集合,下列对A*计算不正确的是()。
A.{ε}∪A+B. A*=A1∪A2∪…∪A n∪…C. A0∪A+D. A*=A0∪A1∪A2∪…∪A n∪…6.设x是符号串,符号串的幂运算x0=()A.ΦB.xC.1D.εB.⽂法C.产⽣式D.语⾔本⾝8.设有⽂法G的符号集V,⾮终结符集V N,终结符集V T,下列叙述中正确的是()。
A.V=V TB.V=V NC.V=V T∪V ND.V=V T∩V N9.⽂法G产⽣的()的全体构成该⽂法描述的语⾔。
A.句型B.终结符集C.⾮终结符集D.句⼦10.若⼀个⽂法满⾜(),则称该⽂法为⼆义⽂法。
A. 存在⼀个最左推导。
B.存在⼀个最右推导。
C.⽂法的某个句⼦存在两棵(包括两棵)以上的语法树。
D.⽂法的某个句⼦存在⼀棵(包括⼀棵)以上的语法树。
11.给定⽂法A→bA|cc,下⾯的符号串中为该⽂法句⼦的是()。
①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc可选项有:A.①⑤B.①③④⑤C.①④D.①④⑤12.设∑={0,1},则∑上所有以1开头,后跟若⼲个010的字串的集合对应的正规式为()。
A.1(010)*B.1(010)+C.(010)*1D.(010)+113.从编译程序的语法分析⾓度看,源程序是句⼦的集合,()可以较好地反映句⼦的结构。
A.线性表B.树14.在常⽤的语法分析中,递归下降分析法属于()分析⽅法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《编译原理》常见题型一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,中间代码生成,代码优化(可省) ,目标代码生成等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序.3.编译方式与解释方式的根本区别在于是否生成目标代码.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。
23.自底向上的语法分析方法的基本思想是:从给定的终结符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。
24.自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地向上进行直接归约,力求归约到文法的开始符号。
26.在LR(0)分析法的名称中,L的含义是自左向右的扫描输入串,R的含义是最左归约,0 的含义是向貌似句柄的符号串后查看0个输入符号。
31.终结符只有综合属性,它们由词法分析器提供。
32.在使用高级语言编程时,首先可通过编译程序发现源程序的全部A(语法)错误和B (语义)部分错误.34.一个句型中的最左简单短语称为该句型的__句柄___。
36.从功能上说,程序语言的语句大体可分为_执行性____语句和说明性____语句两大类。
37.语法分析是依据语言的__语法_规则进行的,中间代码产生是依据语言的_语义___规进行的。
38.语法分析器的输入是_单词符号____,其输出是_语法单位____。
40.逆波兰式ab+c+ d*e- 所表达的表达式为__(a+b+c)*d-c__ 。
41.计算机执行用高级语言编写的程序主要有两种途径:_解释__和_编译__。
42.自上而下分析法采用___移进_、归约、错误处理、接受__等四种操作。
43.一个LR分析器包括两部分:一个总控程序和_一张分析表___。
___二、单选题1.一个编译程序中,不仅包含词法分析,( A),中间代码生成,代码优化,目标代码生成等五个部分。
A.语法分析B.文法分析C.语言分析D.解释分析2.语法分析器则可以发现源程序中的(D )。
A.语义错误? B.语法和语义错误C.错误并校正?? D.语法错误3.解释程序处理语言时, 大多数采用的是(B)B方法。
A.源程序命令被逐个直接解释执行B.先将源程序转化为中间代码, 再解释执行C.先将源程序解释转化为目标程序, 再执行A.递归的? B.前后文无关的C.二义性的D.无二义性的12.四种形式语言文法中,1型文法又称为(C)C文法。
A.短语结构文法????? B.前后文无关文法C.前后文有关文法??? D.正规文法13.一个文法所描述的语言是(A)。
A.唯一的? B.不唯一的C.可能唯一,好可能不唯一? D.都不对14.(B)和代码优化部分不是每个编译程序都必需的。
A.语法分析???B.中间代码生成C.词法分析?????D.目标代码生成15.(B)是两类程序语言处理程序。
A.高级语言程序和低级语言程序B.解释程序和编译程序C.编译程序和操作系统D.系统程序和应用程序16. 一个上下文无关文法G包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组(D)。
A.句子B.句型C.单词D.产生式17.文法分为四种类型,即0型、1型、2型、3型。
其中2型文法是(D)。
A.短语文法???B.正则文法??? C.上下文有关文法D.上下文无关文法18.文法G 所描述的语言是(C)的集合。
A.文法G的字母表V中所有符号组成的符号串B.文法G 的字母表V 的闭包V* 中的所有符号串C.由文法的开始符号推出的所有终结符串D.由文法的开始符号推出的所有符号串19.文法分为四种类型,即0型、1型、2型、3型。
其中0型文法是(A)。
:A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同?D.可能存在两个不同的最左推导,但它们对应的语法树相同29.构造编译程序应掌握(D)。
A.源程序???B.目标语言C.编译方法???? D.以上三项都是30.四元式之间的联系是通过(B)实现的。
A.指示器??????? B.临时变量C.符号表??????????? D.程序变量31.表达式(┐A∨B)∧(C∨D)的逆波兰表示为(B)。
A.┐AB∨∧CD∨B.A┐B∨CD∨∧ ?????C.AB∨┐CD∨∧ ?????D.A┐B∨∧CD∨33.编译程序是对(D)。
?A.汇编程序的翻译? B.高级语言程序的解释执行C.机器语言的执行D.高级语言的翻译34.采用自上而下分析,必须(C)。
A.消除左递归? B.消除右递归C.消除回溯?D.提取公共左因子35.在规范归约中,用()B来刻画可归约串。
A.直接短语B.句柄C.最左素短语? D.素短语36.间接三元式表示法的优点为(A)。
A.采用间接码表,便于优化处理B.节省存储空间,不便于表的修改C.便于优化处理,节省存储空间D.节省存储空间,不便于优化处理37.在目标代码生成阶段,符号表用(D)。
(3)分析语句和说明是如何构成程序的? (4) 分析程序的结构A. (2)(3)????B. (2)(3)(4)????C. (1)(2)(3)???D.(1)(2)(3)(4)43.编译程序必须完成的工作有 A .(1) 词法分析? (2) 语法分析??????? (3) 语义分析(4) 代码生成? (5) 中间代码生成??? (6) 代码优化A. (1)(2)(3)(4)?????B. (1)(2)(3)(4)(5)????C. (1)(2)(3)(4)(5)(6)?D. (1)(2)(3)(4)(6)??44.按逻辑上划分,编译程序第二步工作是C。
A. 语义分析B. 词法分析C. 语法分析D. 代码优化45.已知语言L={ x n yy n | n>=1},则下述文法中,D可以产生语言L。
A 1.Z→xZy|xAy|yB 1.A→xAy2. A→xAy|x 2.A→xC 1.Z→AyBD 1.Z→xAy2.A→xA|x 2.A→xAy|y3.B→yB|y46.乔姆斯基(Chomsky)把文法分为四种类型,即0型、1型、2型、3型。
其中3型文法是 B 。
A.短语文法B.正则文法C.上下文有关文法D.上下文无关文法48.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V*),则称x是文法G的一个B。
A. 候选式B. 句型C. 单词D. 产生式三、是非题(下列各题,你认为正确的,请在题干的括号内打“ √”,错的打“×”。
)1.计算机高级语言翻译成低级语言只有解释一种方式。
(X)2.在编译中进行语法检查的目的是为了发现程序中所有错误。
(X)3.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。
(X)4.“用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行”这种说法。
(X)5.正则文法其产生式为A✍a,A✍Bb,A,B∈V N,a、b∈V T。
(V)6.产生式是用于定义词法成分的一种书写规则。
(X)X)30.综合属性是用于“ 自上而下” 传递信息。
(X)31.一个算符优先文法可能不存在算符优先函数与之对应。
(V)32.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。
(V) 33.规范归约和规范推导是互逆的两个过程。
(V)34.LR分析技术无法适用二义文法。
(X)35.逆波兰表示法表示表达式时无须使用括号。
(V)36.逆波兰法表示的表达式亦称后缀式。
(V)38.在程序中标识符的出现仅为使用性的。
(X)39.设∑为{a,b},则a,ba,{∑},Φ都是∑上的正规式。
(X)40.对于上下文无关文法G[S],若 S⇒αAB ⇒αβγ则A →γ一定是一条产生式规则,其中α,β,γ∈(VT ∨VN)*。
(X)41.对于逆波兰后缀式,无论从哪头开始分析均可得到唯一正确的分解。
(V)42.LR(0)分析法是一种规范归约法。
(V)43.算符优先分析法只能用来分析算符优先文法。
(V)44.解释程序和编译程序一样,生成目标代码。
(X)45.编译程序生成的目标代码只能是机器语言。
(X))四、简答题1、什么是句子?什么是语言?答:设G是一个给定的文法,S是文法的开始符号,如果S=>*x(其中x∈Vt*),则称x是文法的一个句子。
设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为?L(G)={x│S=>*x,x∈VT*}2、已知文法G[E]为:E→T|E+T|E-TT→F|T*F|T/FE →0∣2∣10D →0∣1∣27、简述DFA与NFA有何区别?答:主要区别在于,1.DFA没有ε转换;2.DFA的状态转换函数是单值映射,即当前状态输入一个字符后转换到下一个状态,而NFA的状态转换函数是非单值映射,也就是说当前状态输入一个字符后可以转换到下面N个状态。
8、试给出非确定自动机的定义。
答:一个非确定的有穷自动机(NFA)M是一个五元组:M=(S,Σ,move,s0?,F)。
?其中:?1.?一个有限的状态集合S;?2.?Σ是一个输入符号集合,ε不在Σ中;?3.?move是状态转换函数,是在S×Σ*→S的子集的映射,即,move:?S×Σ*→2S?;表明在某状态下对于某输入符号可能有多个后继状态;?4.?s0是唯一的开始状态;??5.?F是接受(或终止)状态集合,且F属于S一个子集。
9、为正规式(a|b)*a(a|b) 构造一个等价的确定的有限自动机。
答:A→abB→bc该文法是二义的吗?说明理由。
18、文法G=({E}, {+, *, i, (, )}, P, E)其中P为:E→iE→E+EE→E*EE→(E)该文法是二义的吗?说明理由。
19、自顶向下分析思想是什么?答:从开始符出发导出句型并一个符号一个符号地与给定终结符串进行匹配。
如果全部匹配成功,则表示开始符号可推导出给定的终结符串。
因此判定给定终结符号串是正确句子。
25、简单优先方法基本思想是什么?28、语法制导翻译方法的基本思想是什么?33、给定下列中缀式,分别写出等价的后缀式和四元式(运算符优先级按常规理解)。
(1)(a+b*c)/(a+b)-d。