大工19春《编译原理基础》在线作业123参考答案
大工19春《编译原理基础》在线作业1
(判断题)1: 编译器是一种翻译器,它的特点是目标语言比源语言低级。
A: 对B: 错正确答案:(判断题)2: 语法树的子结点代表该运算的运算对象。
A: 对B: 错正确答案:(判断题)3: 语义分析的一个重要部分是类型检查,编译器检查每个算符的运算对象,看它们的类型是否适当。
A: 对B: 错正确答案:(判断题)4: 语言定义不允许运算对象的类型作隐式转换。
A: 对B: 错正确答案:(判断题)5: 代码生成是指取源程序的一种中间表示作为输入并把它映射到一种目标语言。
A: 对B: 错正确答案:(判断题)6: 符号表是为每个变量名字保存一个记录的数据结构,记录的域是该名字的属性。
A: 对B: 错正确答案:(判断题)7: 解释器可以通过翻译来生成目标程序。
A: 对B: 错正确答案:(判断题)8: 解释执行的效率比编译器生成的机器代码的执行效率高。
A: 对B: 错正确答案:(判断题)9: 类型检查是一种捕捉程序中不一致性的成熟并且有效的技术。
A: 对B: 错(判断题)10: 类型检查技术不能用于捕捉多种安全漏洞。
A: 对B: 错正确答案:(判断题)11: 词法分析器的任务是把构成源程序的字符流翻译成词法记号流。
A: 对B: 错正确答案:(判断题)12: 词法分析难以发现源程序的错误,因为词法分析器对源程序采取非常局部的观点。
A: 对B: 错正确答案:(判断题)13: 字母表上的串是该字母表符号的有穷序列。
A: 对B: 错正确答案:(判断题)14: 术语语言表示字母表上的一个串集,属于该语言的串称为该语言的句子或字。
A: 对B: 错正确答案:(判断题)15: 对于连接运算而言,空串是一个恒等元素。
A: 对B: 错正确答案:(单选题)16: ( )不是编译程序的组成部分。
A: 词法分析程序B: 代码生成程序C: 设备管理程序D: 语法分析程序正确答案:(单选题)17: 编译的各阶段工作都涉及( )。
A: 符号表管理B: 词法分析C: 语法分析正确答案:(单选题)18: 下面对编译程序分为“遍”描述正确的是( )。
《编译原理》考试试题及答案
《编译原理》考试试题及答案(附录)一、判断题: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.扫描器的任务是从()中识别出一个个()。
《编译原理》练习题库参考答案
《编译原理》练习测试题库一、填空1.若源程序是用高级语言编写的,目标程序是______,则其翻译程序称为编译程序。
2.词法分析和语法分析本质上都是对源程序的______进行分析。
3.如果源语言(编写源程序的语言)是高级语言,而目标语言是某计算机的汇编语言或机器语言,则这种翻译程序称为_____。
4.对编译程序而言,输入数据是_______,输出结果是________。
5. ______,是构成语言文法的单词,是语法成分的最小单位。
6.由PL/0的EBNF可知,PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个__________。
7.由于PL/0编译程序采用_________,所以语法分析过程BLOCK是整个编译过程的核心。
8.用语法图描述语法规则的优点是______、________。
9.每个非终结符是一个语法成分,在书写语言程序时并不出现,它是由_________和_________、或终结符串定义的。
10.PL/0的目标程序为假想栈式计算机的汇编语言,与具体计算机______。
11.PL/0的编译程序和目标程序的解释执行程序都是用_______书写的,因此PL/0语言可在配备_________的任何机器上实现。
12.PL/0编译程序是用PASCAL语言书写的,整个编译程序(包括主程序)是由______个嵌套及并列的过程或函数组成13.当源程序编译正确时,PL/0编译程序自动调用__________,对目标代码进行解释执行,并按用户程序要求输入数据和输出运行结果。
14.由于对某些非终结符可以递归定义,这就使得_________可用有穷的文法描述。
15. ______的任务是识别由词法分析给出的单词符号序列在结构上是否符合给定的文法规则。
16. PL/0编译程序的语法分析采用了____________。
17.语法分析程序除总控外主要有两大部分的功能,即_________和__________.18.PL/0的词法分析程序GETSYM,是一个独立的过程,其功能是为_________提供单词用的,是______的基础,它把输入的字符串形式的源程序分割成一个个单词符号。
编译原理模拟试题1和2的答案
编译原理模拟试题1和2的答案⼀、是⾮题1、算符优先关系表不⼀定存在对应的优先函数。
( 错)2、数组元素的地址计算与数组的存储⽅式有关。
( 错)3、仅考虑⼀个基本块,不能确定⼀个赋值是否真是⽆⽤的。
( 正确)4、每个⽂法都能改写为LL(1)⽂法。
( 正确)。
5、对于数据空间的存贮分配,FORTRAN采⽤动态贮存分配策略。
( 错)⼆、填空题1、从功能上说,程序语⾔的语句⼤体可分为执⾏性语句和说明性语句两⼤类。
2、扫描器的任务是从源程序中识别出⼀个个单词符号。
3、所谓最右推导是指:任何⼀步αβ都是对α中最右⾮终结符进⾏替换的。
4、语法分析最常⽤的两类⽅法是⾃上⽽下和⾃下⽽上分析法。
5、⼀个上下⽂⽆关⽂法所含四个组成部分是⼀组终结符号,⼀组⾮终结符号、⼀个开始符号、⼀组产⽣式。
6、所谓语法制导翻译⽅法是为每个产⽣式配上⼀个翻译⼦程序,并在语法分析的同时执⾏这些⼦程序。
7、符号表中的信息栏中登记了每个名字的有关的性质,如类型、种属、所占单元⼤⼩、地址等等。
8、⼀个过程相应的DISPLAY表的内容为现⾏活动记录地址和所有外层最新活动记录的地址。
9、常⽤的两种动态存贮分配办法是栈式动态分配和堆式动态分配10、产⽣式是⽤于定义语法范畴的⼀种书写规则。
三、名词解释1.遍--指编译程序对源程序或中间代码程序从头到尾扫描⼀次并作有关的加⼯处理,⽣成新的中间结果或⽬标程序。
2.⽆环路有向图(DAG)--如果有向图中任⼀通路都不是环路,则称庐有向图为⽆环路有向图,简称DAG。
3.语法分析--按⽂法的产⽣式识别输⼊的符号串是否为⼀个句⼦的分析过程。
4.短语--令G是⼀个⽂法。
S划⽂法的开始符号,假定αβδ是⽂法G的⼀个句型,如果有SαAδ且AB,则称β是句型αβ相对⾮终结符A的短语。
5.后缀式--⼀种把运算量写在前⾯,把算符写在后⾯的表⽰表达式的⽅法。
四、简述题1、考虑下⾯程序…………Var a:integer;Procedure S(X);Var X:integer;Begina:=a+1;X:=a+XBegina:=5;S(a);Print(a)End.试问:若参数传递⽅式分别采取传名和传值时,程序执⾏后输出a的值是什么?答:传名:a=12传值:a=62、画出Pascal中实数(不带正负号,可带指数部分)的状态转换图。
编译原理历年试题及答案
《编译原理》历年试题及答案一.(每项选择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) 构造预测分析表。
编译原理习题及答案
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、正规文法又称 DA、0型文法B、1型文法C、2型文法D、3型文法2、对于无二义性的文法,规范归约是 BA. 最左推导B. 最右推导的逆过程C.最左归约的逆过程D.最右归约的逆过程。
3、扫描器的任务是从源程序中识别出一个个单词符号。
4、程序所需的数据空间在程序运行前就可确定,称为 A 管理技术。
A 静态存储B 动态存储C 栈式存储D 堆式存储5、编译过程中,语法分析器的任务是(B)。
①分析单词是怎样构成的②分析单词串是如何构成语句和说明的③分析语句和说明是如何构成程序的④分析程序的结构A、②③B、②③④C、①②③D、①②③④6、文法G:E→E+T|T T→T*P|P P→ (E)| i则句型P+T+i的句柄和最左素短语分别为 B 。
A、P+T和iB、P和P+TC、i和P+T+iD、P和P7、四元式之间的联系是通过B实现的A.指示器B.临时变量C.符号表D.程序变量8、程序语言的单词符号一般可以分为保留字、标识符、常数、运算符、界符等等。
9、下列 B 优化方法是针对循环优化进行的。
A.删除多余运算B.删除归纳变量C.合并已知量D.复写传播10、若文法G 定义的语言是无限集,则文法必然是 AA、递归的B、前后文无关的C、二义性的D、无二义性的11、文法G 产生的D的全体是该文法描述的语言。
A、句型B、终结符集C、非终结符集D、句子12、Chomsky 定义的四种形式语言文法中,0 型文法又称为 A文法;1 型文法又称为 C 文法。
A.短语文法B.上下文无关文法C.上下文有关文法D.正规文法A.短语文法B.上下文无关文法C.上下文有关文法D.正规文法13、语法分析最常用的两类方法是自顶向下和自底向上分析法。
14、一个确定的有穷自动机DFA是一个 A 。
A 五元组(K,∑,f, S, Z)B 四元组(V N,V T,P,S)C 四元组(K,∑,f,S)D 三元组(V N,V T,P)A、语法B、语义C、代码D、运行15、 B不属于乔姆斯基观点分类的文法。
编译原理作业参考答案.
第1章引言1、解释下列各词源语言:编写源程序的语言(基本符号,关键字),各种程序设计语言都可以作为源语言。
源程序: 用接近自然语言(数学语言)的源语言(基本符号,关键字)编写的程序,它是翻译程序处理的对象。
目标程序: 目标程序是源程序经过翻译程序加工最后得到的程序。
目标程序(结果程序)一般可由计算机直接执行。
低级语言:机器语言和汇编语言。
高级语言:是人们根据描述实际问题的需要而设计的一个记号系统。
如同自然语言(接近数学语言和工程语言)一样,语言的基本单位是语句,由符号组和一组用来组织它们成为有确定意义的组合规则。
翻译程序: 能够把某一种语言程序(源语言程序)改变成另一种语言程序(目标语言程序),后者与前者在逻辑上是等价的。
其中包括:编译程序,解释程序,汇编程序。
编译程序: 把输入的源程序翻译成等价的目标程序(汇编语言或机器语言),然后再执行目标程序(先编译后执行),执行翻译工作的程序称为编译程序。
解释程序: 以该语言写的源程序作为输入,但不产生目标程序。
按源程序中语句动态顺序逐句的边解释边执行的过程,完成翻译工作的程序称为解释程序。
2、什么叫“遍”?指对源程序或源程序的中间形式(如单词,中间代码)从头到尾扫描一次,并作相应的加工处理,称为一遍。
3、简述编译程序的基本过程的任务。
编译程序的工作是指从输入源程序开始到输出目标程序为止的整个过程,整个过程可以划分5个阶段。
词法分析:输入源程序,进行词法分析,输出单词符号。
语法分析:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位,并判断输入串是否构成语法正确的“程序”。
中间代码生成:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码。
优化:对中间代码进行优化处理。
目标代码生成:把中间代码翻译成目标语言程序。
4、编译程序与解释程序的区别?编译程序生成目标程序后,再执行目标程序;然而解释程序不生成目标程序,边解释边执行。
(完整版)编译原理习题及答案(整理后)
2、对无二义性文法来说,一棵语法树往往代表了 。
a. 多种推导过程
b. 多种最左推导过程
c.一种最左推导过程
d.仅一种推导过程 e.一种最左推导过程
3、如果文法 G 存在一个句子,满足下列条件 之一时,则称该文法是二义文法。
a. 该句子的最左推导与最右推导相同
b. 该句子有两个不同的最左推导
c. 该句子有两棵不同的最右推导
T→T*P|P
P→(E)|I
则句型 P+T+i 的句柄和最左素短语为 。
a.P+T 和 i b. P 和 P+T c. i 和 P+T+i d.P 和 T
8、设文法为:S→SA|A
A→a|b
则对句子 aba,下面 是规范推导。
a. SSASAAAAAaAAabAaba
b. SSASAAAAAAAaAbaaba
标语言
第二章
一、单项选择题
1、文法 G:S→xSx|y 所识别的语言是 。
a. xyx
b. (xyx)* c. xnyxn(n≥0) d. x*yx*
2、文法 G 描述的语言 L(G)是指 。
a. L(G)={α|S⇒+ α , α∈VT*}
b. L(G)={α|S⇒* α, α∈VT*}
c. L(G)={α|S⇒* α,α∈(VT∪VN*)} d. L(G)={α|S⇒+ α, α∈(VT∪VN*)}
第一章
1、将编译程序分成若干个“遍”是为了
。
a.提高程序的执行效率
b.使程序的结构更加清晰
c.利用有限的机器内存并提高机器的执行效率
d.利用有限的机器内存但降低了机器的执行效率
东师编译原理19春在线作业1【标准答案】
编译原理19春在线作业1-0005试卷总分:100 得分:0一、单选题 (共 20 道试题,共 60 分)1.设有文法G[S]:S→aTS|b|(T),T→TSd|a,则该文法的右句型是哪个()。
A.aT(T)B.aTaaSC.aT(T)dSD.aTSdS2.设d是结点n的必经结点(即有d DOM n),若在流程图中,存在着从结点n到d 的有向边,则称此有向边为流程图中的一条什么()。
A.环路B.环边C.回路D.回边3.假设某程序语言的文法如下:S→a|b|(T),T→TdS|S,考察该文法的句型(Sd(T)db),其中:素短语是哪个()。
A.SB.bC.(T)D.Sd(T)4.假设某程序语言的文法如下S→SaT∣T,T→TbR∣R,R→PdR∣P,P→fSg∣e,则终结符b和a之间的算符优先关系是什么()。
A.大于B.小于C.等于D.无关系5.设有文法G[S]:S→Ac,A→Sb|a,则利用文法G进行自顶向下的语法分析时会怎样()。
A.不会出现回溯B.会出现回溯C.不会出现死循环D.会出现死循环6.设有文法G[S]:S→SaT|T,T→TbR|R,R→PdR|P,P→fSg|e,考察该文法的句型SaTbfSgde,其中哪个是句柄()。
A.SaTB.bC.fSgD.e7.如果一个DFA的两个不同的状态s和t具有什么关系,则称s和t等价()。
A.已区分B.待区分C.可区分D.不可区分8.一个文法所描述的语言是什么样的()。
A.唯一的B.不唯一的C.可能唯一D.可能不唯一9.LL(1)分析法的名字中,第二个“L”的含义是什么()。
A.最右推导B.最右归约C.最左推导D.最左归约10.我们把右部仅含一个非终结符号的产生式,称为什么产生式()。
A.无用B.有用C.奇D.单11.在设计布尔表达式翻译算法时,什么四元式表示当关系A1<A2 成立时,转向第p四元式()。
A.(jnz, A1,,p)B.(j<,A1,A2,p)C.(j, , ,p)D.(j, A1,A2,p)12.编译程序已成为现今任何计算机系统的最重要的什么之一()。
编译技术课后答案
编译技术课后答案《编译原理》习题参考答案(四)第四章4.1 根据表4.1的语法制导定义,为输入表达式5*(4*3+2)构造注释分析树。
Solution:LE.val =70 nT.val = 70T.val =5 * F.val =14F.val =5 ( E.val =14 )digit.lexval =5 E.val =12 + T.val =2T.val = 12 F.val = 2T.val =4 * F.val =3 digit.lexval =2F.val = 4 digit.lexval = 34.3 为文法→ ( L ) | aSL→ L , S | S( a )写一个语法制导定义,它输出括号的对数。
( b )写一个语法制导定义,它输出括号的最大深度。
Solution:( a ) :Sˊ→S n print ( S.val )S → ( L ) S.val = L .val + 1S → a S.val = 0L →L1 , S L.val = L1.val + S.valL → S L.val = S.val( b ) :Sˊ→S n print ( S.val )S → ( L ) S.val = L .val + 1S → a S.val = 0L →L1 , S L.val = max ( L1.val , S.val )L → S L.val = S.val4.5 给出对表达式求导数的语法制导定义,表达式由+和*作用于变量x和常数组成,如x * ( 3 * x + x * x ),并假定没有任何化简,例如将3 * x 翻译成3 * 1 + 0 * x。
Solution:exp为原表达式的字符串,s为求导后的字符串。
|| 为串联接符E′→ E n print ( E.s )E → E1 + T E.exp = E1.exp || " + " || T.expE.s = E1.s || " + " || T.sE → T E.exp = T.expE.s = T.s T → T1 * FT.exp = T1.exp || " * " || F.expT.s = " ( " || T1.s || " ) " || " * " || F.exp || " + " ||T.exp || " * " || F.s T → F T.exp =F.exp T.s = F. sF → ( E ) F.exp = " ( " || E.exp || " ) " F.s = " ( " || E.s || " ) " F → num F.exp =num.lexmeF.s = " 0 "F → x F.exp = " x "F.s = " 1 "4.6 给出把中缀表达式翻译成没有冗余括号的中缀表达式的语法制导定义。
编译原理19春在线作业1-0003.B9B9089A-7188-43
编译原理19春在线作业1-0003 a-(b*c/(c-d)+(-b)*a)的逆波兰表示是什么()。
A:abc*cd-b-a*+/-
B:abc*cd-b-a*+/-
C:abc*cd-/b-a*+-
D:abc*/cd-b-a*+-
答案:C
在编译程序中安排生成中间代码的目的是为了什么()。
A:便于进行优化
B:便于进行寄存器分配
C:为了产生正确的目标代码
D:便于进行存贮空间的组织
答案:A
两个有穷自动机等价是指它们的什么相等()。
A:状态数相等
B:有向弧数相等
C:所识别的语言相等
D:状态数和有向弧数相等
答案:C
在文法中,由于有些符号不需要进一步定义,故通常将它们称为什么()。
A:终结符号
B:非终结符号
C:开始符号
D:基本符号
答案:A
在下述的语法分析方法中,属于自顶向下的分析方法有哪些()。
A:简单优先分析
B:算符优先分析
C:递归下降分析
D:LR(k)分析
答案:A
LL(1)分析法的名字中,第一个“L”的含义是什么()。
A:自左至右
B:自顶向下。
大工20春《编译原理基础》在线作业123【答案】
大工20春《编译原理基础》在线作业1试卷总分:100 得分:100一、判断题(共15 道试题,共75 分)1.试探与回溯是一种穷尽一切可能的办法,效率低、代价高,它只有理论意义,在实践中价值不大。
本题参考答题选项:正确2.预测分析的关键问题是在扩展一个非终结符时怎样为它选择合适的产生式。
本题参考答题选项:正确3.移进-归约分析为输入串构造分析树是从根结点开始的,朝着叶结点方向前进。
本题参考答题选项:错误4.句型的句柄是该句型中和一个产生式左部匹配的子串。
本题参考答题选项:错误5.一个文法,如果能为它构造出所有条目都唯一的LR分析表,就说它是LR文法。
本题参考答题选项:正确6.语法制导的产生式有多组语义规则。
本题参考答题选项:错误7.属性文法是指语义规则函数无副作用的语法制导定义。
本题参考答题选项:正确8.仅仅使用综合属性的语法制导定义称为S属性定义。
本题参考答题选项:正确9.每个结点的属性值都标注出来的分析树叫做注释分析树。
本题参考答题选项:正确10.过程定义是一个声明,它的最简单形式是将一个名字和一个语句联系起来,该名字是过程名,而这个语句是过程体。
本题参考答题选项:正确11.过程名出现在调用语句中则称这个过程在该点被调用。
本题参考答题选项:正确12.出现在过程定义中的某些名字是特殊的,它们被称为该过程的形式参数,简称形参。
本题参考答题选项:正确13.一个声明起作用的程序部分称为该声明的作用域。
本题参考答题选项:正确14.引用某个已被回收的存储单元就称为悬空引用。
本题参考答题选项:正确15.后缀表示是语法树的一种线性表示。
本题参考答题选项:正确二、单选题(共5 道试题,共25 分)16.对于LR(0)分析法,语法分析栈中存放的状态是识别规范句型()的DFA状态。
A.前缀B.活前缀C.LR(0)项目D.句柄本题参考答题选项:B17.同心集合并可能会产生的冲突为()。
A.二义B.移进-移进C.移进-归约D.归约-归约本题参考答题选项:D18.如果一个文法G是无二义性文法,对于任何一个句子,该句子()。
编译原理习题及答案(整理后)
编译原理习题及答案(整理后)第⼀章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)c. a~b都不⼀定成⽴d. a~b⼀定成⽴5、如果⽂法G是⽆⼆义的,则它的任何句⼦α。
a. 最左推导和最右推导对应的语法树必定相同b. 最左推导和最右推导对应的语法树可能不同c. 最左推导和最右推导必定相同d. 可能存在两个不同的最左推导,但它们对应的语法树相同6、由⽂法的开始符经0步或多步推导产⽣的⽂法符号序列是。
(完整版)编译原理课后习题答案
(完整版)编译原理课后习题答案第一章1.典型的编译程序在逻辑功能上由哪几部分组成?答:编译程序主要由以下几个部分组成:词法分析、语法分析、语义分析、中间代码生成、中间代码优化、目标代码生成、错误处理、表格管理。
2. 实现编译程序的主要方法有哪些?答:主要有:转换法、移植法、自展法、自动生成法。
3. 将用户使用高级语言编写的程序翻译为可直接执行的机器语言程序有哪几种主要的方式?答:编译法、解释法。
4. 编译方式和解释方式的根本区别是什么?答:编译方式:是将源程序经编译得到可执行文件后,就可脱离源程序和编译程序单独执行,所以编译方式的效率高,执行速度快;解释方式:在执行时,必须源程序和解释程序同时参与才能运行,其不产生可执行程序文件,效率低,执行速度慢。
第二章1.乔姆斯基文法体系中将文法分为哪几类?文法的分类同程序设计语言的设计与实现关系如何?答:1)0型文法、1型文法、2型文法、3型文法。
2)2. 写一个文法,使其语言是偶整数的集合,每个偶整数不以0为前导。
答:Z→SME | BS→1|2|3|4|5|6|7|8|9M→ε | D | MDD→0|SB→2|4|6|8E→0|B3. 设文法G为:N→ D|NDD→ 0|1|2|3|4|5|6|7|8|9请给出句子123、301和75431的最右推导和最左推导。
答:N?ND?N3?ND3?N23?D23?123N?ND?NDD?DDD?1DD?12D?123N?ND?N1?ND1?N01?D01?301N?ND?NDD?DDD?3DD?30D?301N?ND?N1?ND1?N31?ND31?N431?ND431?N5431?D5431?7 5431N?ND?NDD?NDDD?NDDDD?DDDDD?7DDDD?75DDD?754 DD?7543D?75431 4. 证明文法S→iSeS|iS| i是二义性文法。
答:对于句型iiSeS存在两个不同的最左推导:S?iSeS?iiSesS?iS?iiSeS所以该文法是二义性文法。
大工19春数字电路与系统在线作业123满分答案
大工19春《数字电路与系统》在线作业1一、单项选择题:1、TTL与非门当输入端A、B取值分别为()时,输出端值为0。
A.0、0B.0、1C.1、0D.1、1正确答案:D2、全体最小项的和为()。
A.不定值B.无穷大C.1D.0正确答案:C3、1+A=()A.AB./AC.0D.1正确答案:D4、三个变量A、B、C可以构成几个最小项?()A.3B.6C.8D.9正确答案:C5、数字电路的基本运算单元是()运算。
A.加法B.减法C.乘法D.移位正确答案:A6、二进制数1101与下列哪个数相等?()A.十进制数12B.十进制数13C.十进制数25D.十进制数26正确答案:B二、多选题:1、下列关于8421BCD码的说法中,正确的是()。
A.8421BCD码可以直接转换成二进制数B.8421BCD码不能直接转换成二进制数C.8421BCD码可以直接转换成十进制数D.8421BCD码不能直接转换成十进制数正确答案:BC2、数字信号的特点是()。
A.在时间上是连续的B.在时间上是离散的C.在数值上是连续的D.在数值上是离散的正确答案:BD3、逻辑代数中的变量可以有下列哪些取值?()A.0B.1C.2D.3正确答案:AB4、TTL与非门中不用的输入端如何处理?()A.接+5V高电平B.与使用端并联C.接地D.悬空正确答案:ABD5、化简逻辑表达式的优点在于:表达式化简的越简单,则()。
A.其表示的逻辑关系越明显B.可以节省材料C.可以降低成本D.可以提高系统的可靠性正确答案:ABCD6、下列数中与8421BCD码(10000111.10010100)相等的是()。
A.二进制数1010111.1111B.二进制数10000111.10010100C.十进制数87.94D.十进制数135.5625正确答案:AC三、判断题:1、最大项和标准或项是同一概念。
A.错误B.正确正确答案:B2、TTL电路采用+5V电源。
A.错误B.正确正确答案:B3、运用反演规则时,不是单一变量上的反号可以变化。
编译原理小题答案解析
《编译原理》常见题型一、填空题1.编译程序的工作过程一般可以划分为词法分析,语法分析,中间代码生成______ ,,代码优化(可省)_,目标代码生成等几个基本阶段。
2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序—,则其翻译程序称为编译程序.3.编译方式与解释方式的根本区别在于是否生成目标代码__________5.对编译程序而言,输入数据是源程序_______ ,输出结果是目标程序7.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。
8.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括一表格处理和出错处理—。
其中,词法分析器用于识别单词一。
10.一个上下文无关文法所含四个组成部分是一组终结符号_________ 、, 一组非终结符号―、一个开始符号、一组产生式___________ 。
12.产生式是用于定义语法成分______ 的一种书写规则。
13.设G[S]是给定文法,则由文法G所定义的语言14)可描述为:L(G)= {x| S=>*x.x£ VT*} 。
*14.设G是一个给定的文法,S是文法的开始符号,如果5n x (其中x£V*),则称x是文法的一个.句型。
*15.设G是一个给定的文法,S是文法的开始符号,如果5n x(其中x£V T*),则称x是文法的一个句子一。
16.扫描器的任务是从源程序中识别出一个个单词符号_________ 。
17.语法分析最常用的两类方法是自上而下一和自下而上分析法。
18.语法分析的任务是识别给定的终结符串是否为给定文法的句子_。
19.递归下降法不允许任一非终结符是直接上—递归的。
20.自顶向下的语法分析方法的关键是如何选择候选式________ 的问题。
21.递归下降分析法是自.顶向下分析方法。
22.自顶向下的语法分析方法的基本思想是:从文法的开始符号—开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子—,使之与给定的输入串匹配。
编译原理19春在线作业2-0003
编译原理19春在线作业2-0003
描述语言L={a的m次方b的n次方|n≥m≥1}的文法是哪个()。
A:Z::=Abb,A::=aA|a,B::=bB|b
B:Z::=AB|b,A::=Aa|a,B::=aBb|b
C:Z::=Ab,A::=aAb|a
D:Z::=aAb,A::=Ab|aAb|ε
答案:D
高级语言编译程序常用的语法分析方法中,递归下降分析法属于哪一类的分析方法()。
A:自左至右
B:自顶向下
C:自底向上
D:自右向左
答案:B
两个有穷自动机等价是指它们的什么相等()。
A:状态数相等
B:有向弧数相等
C:所识别的语言相等
D:状态数和有向弧数相等
答案:C
合并表达式中的常量运算的目的是什么()。
A:合并常量,使表达式中的常量尽可能少
B:合并常量,使表达式尽可能简短
C:合并常量,使得生成的代码指令尽可能少
D:合并常量,使表达式的运算强度减弱。
答案:C
算符优先文法是在什么之间定义优先关系()。
A:终结符号
B:非终结符号
C:所有符号
D:部分符号
答案:A
语法制导翻译时,用形如X.ATTR的记号来表示文法符号X的相关什么属性()。
A:语法
B:词法
C:语义
D:语用
答案:D
LL(1)分析法的名字中,第一个“L”的含义是什么()。
A:自左至右
B:自顶向下
C:自底向上
D:自右至左
答案:A
一个文法所描述的语言是什么样的()。
A:唯一的
B:不唯一的。
编译原理教程课后习题答案
编译原理教程课后习题答案【篇一:编译原理教程课后习题答案——第一章】完成下列选择题:(1) 构造编译程序应掌握a. 源程序b. 目标语言c. 编译方法d. 以上三项都是(2) 编译程序绝大多数时间花在上。
a. 出错处理b. 词法分析c. 目标代码生成d. 表格管理(3) 编译程序是对。
a. 汇编程序的翻译b. 高级语言程序的解释执行c. 机器语言的执行d. 高级语言的翻译【解答】(1) d (2) d(3) d1.2 计算机执行用高级语言编写的程序有哪些途径?它们之间的主要区别是什么?【解答】计算机执行用高级语言编写的程序主要有两种途径:解释和编译。
在解释方式下,翻译程序事先并不采用将高级语言程序全部翻译成机器代码程序,然后执行这个机器代码程序的方法,而是每读入一条源程序的语句,就将其解释(翻译)成对应其功能的机器代码语句串并执行,而所翻译的机器代码语句串在该语句执行后并不保留,最后再读入下一条源程序语句,并解释执行。
这种方法是按源程序中语句的动态执行顺序逐句解释(翻译)执行的,如果一语句处于一循环体中,则每次循环执行到该语句时,都要将其翻译成机器代码后再执行。
在编译方式下,高级语言程序的执行是分两步进行的:第一步首先将高级语言程序全部翻译成机器代码程序,第二步才是执行这个机器代码程序。
因此,编译对源程序的处理是先翻译,后执行。
从执行速度上看,编译型的高级语言比解释型的高级语言要快,但解释方式下的人机界面比编译型好,便于程序调试。
这两种途径的主要区别在于:解释方式下不生成目标代码程序,而编译方式下生成目标代码程序。
1.3 请画出编译程序的总框图。
如果你是一个编译程序的总设计师,设计编译程序时应当考虑哪些问题?【解答】编译程序总框图如图1-1所示。
作为一个编译程序的总设计师,首先要深刻理解被编译的源语言其语法及语义;其次,要充分掌握目标指令的功能及特点,如果目标语言是机器指令,还要搞清楚机器的硬件结构以及操作系统的功能;第三,对编译的方法及使用的软件工具也必须准确化。
编译原理词法分析习题集带答案
《编译原理》习题(一)——词法分析一、是非题(请在括号内,正确的划√,错误的划×)1.编译程序是对高级语言程序的解释执行。
(× )2.一个有限状态自动机中,有且仅有一个唯一的终态。
(×)9.两个正规集相等的必要条件是他们对应的正规式等价。
(× )二、选择题1.词法分析器的输出结果是_____。
A.( ) 记号B.( ) 相应条目在符号表中的位置C.( ) 记号和属性二元组D.( ) 属性值2.正规式M 1 和M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等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.生成目标代码三、填空题1.计算机执行用高级语言编写的程序主要有两种途径:___解释__和__编译___。
3.编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。
6.扫描器的任务是从(源程序中)中识别出一个个(单词符号)。
17.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终)态。
1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大工19春《编译原理基础》在线作业1
编译器是一种翻译器,它的特点是目标语言比源语言低级。
T.对
F.错
正确答案:A
语法树的子结点代表该运算的运算对象。
T.对
F.错
正确答案:A
语义分析的一个重要部分是类型检查,编译器检查每个算符的运算对象,看它们的类型是否适当。
T.对
F.错
正确答案:A
语言定义不允许运算对象的类型作隐式转换。
T.对
F.错
正确答案:B
代码生成是指取源程序的一种中间表示作为输入并把它映射到一种目标语言。
T.对
F.错
正确答案:A
符号表是为每个变量名字保存一个记录的数据结构,记录的域是该名字的属性。
T.对
F.错
正确答案:A。