编译原理试题答案.doc

上传人:scccc 文档编号:12761440 上传时间:2021-12-06 格式:DOC 页数:11 大小:228KB
返回 下载 相关 举报
编译原理试题答案.doc_第1页
第1页 / 共11页
编译原理试题答案.doc_第2页
第2页 / 共11页
编译原理试题答案.doc_第3页
第3页 / 共11页
编译原理试题答案.doc_第4页
第4页 / 共11页
编译原理试题答案.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《编译原理试题答案.doc》由会员分享,可在线阅读,更多相关《编译原理试题答案.doc(11页珍藏版)》请在三一文库上搜索。

1、编译原理期末测试题专业班级:号:生名:总分一、单项选择题(共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 .扫描器所完成的任务是从字符串形式的源程序中识别出一个

2、个具有独立含义的最小语 法单位即D .句型A . 字符B.单词C.句子6.对应Chomsky四种文法的四种语言之间的关系是A . Lo Li L2 L3C . L3= L2 Li Lo7 .词法分析的任务是A.识别单词C.识别句子&常用的中间代码形式不含A .三兀式B.四兀式B. L3 L2 Li LoD. Lo Li L2= L3B .分析句子的含义D.生成目标代码C.逆波兰式D .语法树9.代码优化的目的是A.节省时间C.节省时间和空间10 .代码生成阶段的主要任务是A .把高级语言翻译成汇编语言B .节省空间D .把编译程序进行等价交换B .把咼级语言翻译成机器语言C .把中间代

3、码变换成依赖具体机器的目标代码D .把汇编语言翻译成机器语言、填空题(本大题共5小题,每小题1.编译程序首先要识别出源程序中每个 (其意义。2 .编译器常用的语法分析方法有 (2分)(题分10分),然后再分析每个()并翻译得分)和()两种。3. 通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的(),中间代码生成、代码优化与目标代码的生成则是对源程序的()。4. 程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即:()方案和()方案。5 .对编译程序而言,输入数据是 (),输出结果是()。三、名词解释题(共5小题,每小题4分)(题分20分)得分

4、2.3.4.5.四、简答题(共4小题,每小题5分)(题分20分)得分词法分析LL(1)文法语法树LR(0)分析器语言和文法编译程序和高级语言有什么区别2.3.4.编译程序的工作分为那几个阶段 简述自下而上的分析方法。简述代码优化的目的和意义。(题分30分)得分五、综合应用题(共3小题,每小题10分)1. 证明下述文法G:SaSbS|aS|d是二义性文法。2. 对于文法 GS : S >AB,AAa|bB,B > a|Sb求句型baSb的全部短语、直接短语 和句柄?句型baSb的语法树如图五所示。Qa图五(2)句型baSb的的语法树3 设有非确定的有自限动机NFA M=(A , B

5、, C , 0, 1,:, A , C),其中:.(A,0)=C (A,1)=A,B 、. (B,1)=C (C,1)=C。请画出状态转换距阵和 状态转换图。参考答案、单项选择题(共10小题,每小题2分,共20分)1 .语言是A .句子的集合B .产生式的集合C .符号串的集合D .句型的集合2. 编译程序前三个阶段完成的工作是A.词法分析、语法分析和代码优化B .代码生成、代码优化和词法分析C .词法分析、语法分析、语义分析和中间代码生成D .词法分析、语法分析和代码优化3. 个句型中称为句柄的是该句型的最左A .非终结符号B .短语C.句子D .直接短语4. 下推自动机识别的语言是A .

6、0型语言B . 1型语言C . 2型语言D . 3型语言5 .扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语 法单位即A.字符B .单词C.句子D .句型6.对应Chomsky四种文法的四种语言之间的关系是A. Lo二Li 二L2二L3C . L3= L2 二Li 二Lo7 .词法分析的任务是A.识别单词C.识别句子&常用的中间代码形式不含A .三兀式B.四兀式9.代码优化的目的是A.节省时间C.节省时间和空间10 .代码生成阶段的主要任务是A .把高级语言翻译成汇编语言B .把高级语言翻译成机器语言B . L3二L2二Li 二LoD . Lo二Li 二L2

7、= L3B .分析句子的含义D.生成目标代码C.逆波兰式D .语法树B.节省空间D .把编译程序进行等价交换C .把中间代码变换成依赖具体机器的目标代码D .把汇编语言翻译成机器语言、填空题(本大题共5小题,每小题2分,共10分)1. 编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。2 .编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。3 通常把编译过程分为分析前端与综合后端两大阶段。词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。(静4程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为

8、两大类,即 态存储分配)方案和(动态存储分配)方案。5 对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。三、名词解释题(共5小题,每小题4分,共20分)1词法分析词法分析的主要任务是从左向右扫描每行源程序的符号,按照词法规则 从构成源程序的字符串中识别出一个个具有独立意义的最小语法单位, 并转换成统一的内部表示 (toke n),送给语法分析程序。2. LL文法若文法的任何两个产生式 A > : | :都满足下面两个条件:(1) FIRST( : ) - FIRST( 一:)=;(2) 若 1-'= ;,那么 FIRST( :- FOLLOW( A )=。我们把满足

9、这两个条件的文法叫做LL(1)文法,其中的第一个 L代表从左向右扫描输入,第二个L表示产生最左推导,1代表在决定分析器的每步动作时向前看一个输入符号。除了没有公共左因子外,LL(1)文法还有一些明显的性质,它不是二义的,也不含左递归。3. 语法树句子的树结构表示法称为语法树(语法分析树或语法推导树 )。给定文法G=(Vn, Vt, P, S),对于G的任何句型都能构造与之关联的 语法树。这棵树具有下列特征:(1) 根节点的标记是开始符号 So(2) 每个节点的标记都是 V中的一个符号。(3) 若一棵子树的根节点为 A,且其所有直接子孙的标记从左向右的排列次序为A1A2A r,那么A、AjA2A

10、 r (4) 若一标记为 A的节点至少有一个除它以外的子孙,则A Vno(5) 若树的所有叶节点上的标记从左到右排列为字符串w,则w是文法G的句型;若w中仅含终结符号,则 w为文法G所产生的句子。4. LR(0)分析器所谓LR(0)分析,是指从左至右扫描和自底向上的语法分析,且在分析的 每一步,只须根据分析栈当前已移进和归约出的全部文法符号,并至多再 向前查看0个输入符号,就能确定相对于某一产生式左部符号的句柄是否已在分析栈的顶部形成,从而也就可以确定当前所应采取的分析动作(是移进还是按某一产生式进行归约等)。5 .语言和文法文法就是语言结构的定义和描述,是有穷非空的产生式集合。文法G定义为四

11、元组的形式:G=(Vn, Vt, P, S)其中:Vn是非空有穷集合,称为非终结符号集合;Vt是非空有穷集合,称为终结符号集合;P是产生式的集合(非空);S是开始符号(或识别符号)。 这里,Vn AVt=. , S Vn。V=V nU Vt,称为文法G的字母表,它是出现 文法产生式中的一切符号的集合。文法G所描述的语言用L(G)表示,它由文法 G所产生的全部句子组成,即L(G)=x| S=*x,其中S为文法开始符号,且 X Vt 简单的说,文法描述的语言是该文法一切句子的集合。四、简答题(共4小题,每小题5分,共20分)1 .编译程序和高级语言有什么区别?用汇编语言或高级语言编写的程序,必须先

12、送入计算机,经过转换成用机器 语言表示的目标程序(这个过程即编译),才能由计算机执行。执行转换过程 的程序叫编译程序。汇编程序是指没有编译过的汇编语言源文件。编译程序转 换过的叫目标程序,也就是机器语言。编译程序的工作情况有三种:汇编型、解释型和编译型。汇编型编译程序用来 将汇编语言编写的程序,按照一一对应的关系,转换成用机器语言表示的程序。 解释型编译程序将高级语言程序的一个语句,先解释成为一组机器语言的指令, 然后立即执行,执行完了,取下一组语句解释和执行,如此继续到完成一个程序 止。用解释型编译程序,执行速度很慢,但可以进行人和计算机的"对话",随时可以修改高级语言的

13、程序。BASIC语言就是解释型高级语言。编译型编译程序将级语言编写的程序,一次就会部翻译成机器语言表示的程序,而且过程进行很快, 在过程中,不能进行人机对话修改。FORTRAN语言就是编译型高级语言。2.编译程序的工作分为那几个阶段?词法分析、语法分析和语义分析是对源程序进行的分析(称为编译程序的前端),而中间代码生成、代码优化和代码生成三个阶段合称为对源程序进行综合(称为编译程序的后端),它们从源程序的中间表示建立起和源程序等价的目标程序3. 简述自下而上的分析方法。所谓自下而上分析法就是从输入串开始,逐步进行归约”,直至归约到文法的开始符号;或者说从语法树的末端开始,步步向上归约”,直到根

14、节点。4简述代码优化的目的和意义。代码优化是尽量生成 好”的代码的编译阶段。也就是要对程序代码进行 一种等价变换,在保证变换前后代码执行结果相同的前提下,尽量使目 标程序运行时所需要的时间短,同时所占用的存储空间少。五、综合应用题(共3小题,每小题10分,共30分)1.证明下述文法G :S;aSbS|aS|d是二义性文法。解:一个文法,如果存在某个句子有不只一棵语法分析树与之对应,那么称这个 文法是二义性文法。句子aadbd有两棵语法树。如下图:(1) (2)由此可知,SaSbS|aS|d定义的文法是二义性文法。2 .对于文法 GS: S >AB,A >Aa|bB,B >a|Sb求句型baSb的全部短语、直接短语和句 柄?句型baSb的语法树如图五(2)所示。a图五(2)句型baSb的的语法树解:baSb为句型baSb的相对于S的短语,ba为句型baSb的相对于A的短语,Sb为句型baSb 的相对于B的短语,且为直接短语,a为句型baSb的相对于B的短语,且为直接短语和句柄。3 设有非确定的有自限动机NFA M=(A,B,C,0, 1,:, A,C),其中:(A,0)=C (A,1)=A,BJ. (B,1)=C (C,1)=C。请画出状态转换距阵和状态转换图。解:状态转换距阵为:601ACA,BB0CC0C状态转换图为:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1