编译原理模拟题_第1页
编译原理模拟题_第2页
编译原理模拟题_第3页
编译原理模拟题_第4页
编译原理模拟题_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、        填空题(每空1分,共20分)1编译过程一般分为 词法分析 、语法分析、中间代码生成、代码优化和目标代码生成五个阶段。2语法分析最常用的两类方法是自上而下 和 自下而上 分析法。3确定的有穷自动机是一个 五元组  ,通常表示为 DFA=(K , , M, S, Z) 。4所谓最右推导是指    任何一步都是对中最右非终结符进行替换   。5语法分析器的任务是 分析一个文法的句子结构。6如果一个文法的任何产生式

2、的右部都不含有相邻的非终结符,则这种文法称为 算符 文法。7进行确定的自上而下语法分析要求语言的文法是无 左递归 和 公共左因子 的。8LR分析法是一种   自下而上     的语法分析方法。9根据优化对象所涉及的程序范围,代码优化分为 局部优化 、循环优化和 局部优化 等。10常用的优化技术包括: 删除公共子表达式 、 代码外提    、强度削弱、复写传播、  变换循环控制条件 等。(

3、合并已知量、删除无用赋值)二、是非题(下列各题,你认为正确的,请在题后的括号内打“ ”,错的打“×”。每题2分,共20分)  1正规文法产生的语言都可以用上下文无关文法来描述。( ×  )2仅考虑一个基本块,不能确定一个赋值是否真是无用的。( )3如果一个文法是递归的,则其产生的语言的句子是无穷个。 ( )4四元式之间的联系是通过符号表实现的。( ×)5文法的二义性和语言的二义性是两个不同的概念。 ( )6一个LL( l)文法一定是无二义的。 (    )7在规范规

4、约中用最左素短语来刻划可归约串。(  ×  )8目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。 (   )9编译程序是对汇编程序的翻译。  ( ×)10逆波兰法表示的表达式亦称前缀式。   (  ×  )三、        简答题(每题5分,共15分)1、简述栈式存储管理策略;   2、何谓DAG;   3、

5、何谓文法的二义性;四、        给出下述文法对应的正规式   (7分) S 0A| 1B A1S | 1 B0S | 0解:首先得正规式方程组:                S=0A+1B             

6、;   A=1S+1                B=0S+0       求解该方程组得: S=(01|10)(01|10)*    五、           已知文法G(E): (2分)是文法GS的句型。 

7、0;  ET | E+T | E-T 短语:E+T*F,  T*F  (2分)TF | T*F | T/F 直接短语:T*F      (2分)F(E) | I   句柄:T*F          (2分)证明E+T*F是该文法的一个句型,并指出该句型的所有短语、直接短语和句柄。(8分)1. 何谓二义性文法?试举一例说明。(5)答:若文法G的一个句子对应有两棵或两棵以上不同的推导树,则称该句子是二义性的。产

8、生二义性句子的文法称为二义性文法,否则该文法是无二义性的。例子:给定文法G<R>:<R><R>*|<R><R>|a|b考察句子ab*,它有两棵不同的推导树,如下所示:编译原理模拟试题一一、是非题(请在括号内,正确的划,错误的划×)(每个2分,共20分)1计算机高级语言翻译成低级语言只有解释一种方式。(×)2在编译中进行语法检查的目的是为了发现程序中所有错误。(×)3甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同。 ( )4正则文法其产生式为 A->a , A->

9、;Bb,  A,BVN , a 、 bVT 。 (×)5每个文法都能改写为 LL(1) 文法。 ()6递归下降法允许任一非终极符是直接左递归的。 ()7算符优先关系表不一定存在对应的优先函数。 (×)8自底而上语法分析方法的主要问题是候选式的选择。 (×)9LR 法是自顶向下语法分析方法。 (×)10简单优先文法允许任意两个产生式具有相同右部。 (×)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1 一个编译程序中,不仅包含词法分析,_,中间代码生成,代码优化,目标代码生成等五个部分。A(

10、 ) 语法分析 B( )文法分析C( )语言分析D( )解释分析2 词法分析器用于识别_。  A( ) 字符串   B( )语句C( )单词 D( )标识符3 语法分析器则可以发现源程序中的_。A( ) 语义错误   B( ) 语法和语义错误C( ) 错误并校正    D( ) 语法错误4 下面关于解释程序的描述正确的是_。 (1) 解释程序的特点是处理程序时不产生目标代码 (2) 解释程序适用于 COBOL 和 FORTRAN 语言 (3) 解释程序是为打开编译程序技术的僵局而开发的   A( ) (1)(2) B( ) (1) C

11、( ) (1)(2)(3)  D( ) (2)(3)5 解释程序处理语言时 , 大多数采用的是_方法。A( ) 源程序命令被逐个直接解释执行   B( ) 先将源程序转化为中间代码 , 再解释执行C( ) 先将源程序解释转化为目标程序 , 再执行   D( ) 以上方法都可以6 编译过程中 , 语法分析器的任务就是_。 (1) 分析单词是怎样构成的     (2)  分析单词串是如何构成语句和说明的 (3) 分析语句和说明是如何构成程序的   (4) 分析程序的结构 A( ) (2)(

12、3) B( ) (2)(3)(4)C( ) (1)(2)(3) D( ) (1)(2)(3)(4)7 编译程序是一种_。A. ( ) 汇编程序 B( ) 翻译程序       C( ) 解释程序         D( ) 目标程序8 文法 G 所描述的语言是_的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串B( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串C( ) 由文法的开始符号推出的所有终极符串D. ( ) 由文法的开始符号推出的所有符号

13、串9 文法分为四种类型,即0型、1型、2型、3型。其中3型文法是_。A. ( ) 短语文法     B( ) 正则文法     C( ) 上下文有关文法 D( ) 上下文无关文法10 一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 _。A( ) 句子 B( ) 句型C( ) 单词 D( ) 产生式2文法分为四种类型,即0型、1型、2型、3型。其中0型文法是_。A. ( ) 短语文法     B( ) 正则文法     C

14、( ) 上下文有关文法 D( ) 上下文无关文法3一个上下文无关文法 G 包括四个组成部分,它们是:一组非终结符号,一组终结符号,一个开始符号,以及一组 _。 A( ) 句子 B( ) 句型 C( ) 单词 D( ) 产生式4_是一种典型的解释型语言。  A( ) BASIC B( ) C C( ) FORTRAN  D( ) PASCAL5与编译系统相比,解释系统_。A( ) 比较简单 , 可移植性好 , 执行速度快 B( ) 比较复杂 , 可移植性好 , 执行速度快   C( ) 比较简单 , 可移植性差 , 执行速度慢 D( ) 比较简单 , 可移植性好 ,

15、 执行速度慢 6用高级语言编写的程序经编译后产生的程序叫_。   A( ) 源程序       B( ) 目标程序      C( ) 连接程序 D( ) 解释程序7词法分析器用于识别_。   A. ( ) 字符串       B( ) 语句          C( ) 单词    

16、60;   D( ) 标识符 8编写一个计算机高级语言的源程序后 , 到正式上机运行之前,一般要经过_这几步: (1) 编辑   (2) 编译   (3) 连接   (4) 运行 A. ( ) (1)(2)(3)(4)     B( ) (1)(2)(3)    C( ) (1)(3)     D( ) (1)(4)9把汇编语言程序翻译成机器可执行的目标程序的工作是由_完成的。A( ) 编译器   

17、;         B( ) 汇编器             C( ) 解释器            D( ) 预处理器10文法 G 所描述的语言是_的集合。 A. ( ) 文法 G 的字母表 V 中所有符号组成的符号串B( ) 文法 G 的字母表 V 的闭包 V* 中的所有符号串C( ) 由文法的

18、开始符号推出的所有终极符串D. ( ) 由文法的开始符号推出的所有符号串三、填空题(每空1分,共10分)1编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,中间代码生成,代码优化等几个基本阶段,同时还会伴有_表格处理_和 _出错处理_。 2若源程序是用高级语言编写的,_目标程序_是机器语言程序或汇编程序,则其翻译程序称为 _编译程序_ 。3编译方式与解释方式的根本区别在于_是否生成目标代码_。4对编译程序而言,输入数据是_源程序_, 输出结果是_目标程序_。5产生式是用于定义_语法成分_的一种书写规则。 6语法分析最常用的两类方法是_自上而下_和_自下而上_分析法。 1语法分析是依

19、据语言的_语法_规则进行的,中间代码产生是依据语言的_语义_规进行的。2语法分析器的输入是_单词符号串_,其输出是_语法单位_。3一个名字的属性包括_类型_和_作用域_。5逆波兰式 ab+c+ d*e- 所表达的表达式为_(a+b+c)*d-e_ 。 1词法分析基于_正则_文法进行,即识别的单词是该类文法的句子。 2语法分析基于_上下文无关_文法进行,即识别的是该类文法的句子。语法分析的有效工具是_语法树_。3分析句型时,应用算符优先分析技术时,每步被直接归约的是_最左素短语_,而应用LR分析技术时,每步被直接归约的是_句柄_。4语义分析阶段所生成的与源程序等价的中间表示形式可以有_逆波兰_、

20、_四无式表示_与_三元式表示_等。5按Chomsky分类法,文法按照_规则定义的形式_进行分类。 6一个文法能用有穷多个规则描述无穷的符号串集合(语言)是因为文法中存在有_递归_定义的规则。 四、简答题(20分)1. 什么是句子? 什么是语言 ? 答:(1)设G是一个给定的文法,S是文法的开始符号,如果S x(其中xVT*),则称x是文法的一个句子。 (2)设GS是给定文法,则由文法G所定义的语言L(G)可描述为: L(G)xS x,xVT* 。参考答案:(每个2分,共4分)答:(1)设G是一个给定的文法,S是文法的开始符号,如果S x(其中xVT*),则称x是文法的一个句子。 (2)设GS是

21、给定文法,则由文法G所定义的语言L(G)可描述为: L(G)xS x,xVT* 。 2. 写一文法,使其语言是偶正整数的集合,要求:    (1)允许0打头;   (2) 不允许0打头。解:(1)GS=(S,P,D,N,0,1,2,9,P,S) 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)GS=(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|

22、4|6|8 N->1|2|3|4|5|6|7|8|9 Q->0|1|2|3|4|5|6|7|8|9 3. 已知文法 GE 为:     ET|E+T|E-T     TF|T*F|T/F     F ( E ) |i 该文法的开始符号(识别符号)是什么? 请给出该文法的终结符号集合 VT 和非终结符号集合 VN 。 找出句型 T+T*F+i 的所有短语、简单短语和句柄。解: 该文法的开始符号(识别符号)是E。 该文法的终结符号集合VT=+、-、*、/、(、)、i。

23、 非终结符号集合VN=E、T、F。 句型T+T*F+I的短语为i、T*F、第一个T、T+T*F+i; 简单短语为i、T*F、第一个T;句柄为第一个T。4. 构造正规式相应的 NFA : 1(0|1)*101 解1(0|1)*101对应的NFA为 5. 写出表达式(ab*c)/(ab)d的逆波兰表示和三元式序列。逆波兰表示: abc*ab/d 三元式序列: (*,b,c) (,a,) (,a,b) (/,) (,d)五.计算题(10分)构造下述文法 GS 的自动机: S->A0 A->A0|S1|0 该自动机是确定的吗?若不确定,则对它确定化。解:由于该文法的产生式S->A0,

24、A->A0|S1中没有字符集VT的输入,所以不是确定的自动机。 要将其他确定化,必须先用代入法得到它对应的正规式。把S?A0代入产生式A?S1有:A=A0|A01|0=A(0|01)|0=0(0|01)*。 代入S->A0有该文法的正规式:0(0|01)*0,所以,改写该文法为确定的自动机为: 由于状态A有3次输入0的重复输入,所以上图只是NFA,下面将它确定化: 下表由子集法将NFA转换为DFA: 由上表可知DFA为:四、简答题(20分)1. 文法 GS 为: S->Ac|aB A->ab B->bc 写出 L(GS) 的全部元素。解:S=>Ac=>

25、abc 或S=>aB=>abc 所以L(GS)=abc2. 构造正规式 1(0|1)*101 相应的DFA。解:先构造NFA: 确定化: 重新命名,令AB为B、AC为C、ABY为D得: 所以,可得DFA为: 3. 文法 S->a|(T) T->T,S|S 对 (a,(a,a) 和 (a,a),(a),a) 的最左推导。解: 对(a,(a,a)的最左推导为: S=>(T) =>(T,S) =>(S,S) =>(a,S) =>(a,(T) =>(a,(T,S) =>(a,(S,S) =>(a,(a,S) =>(a,(a,

26、a) 对(a,a),(a),a) 的最左推导为: S=>(T) =>(T,S) =>(S,S) =>(T),S) =>(T,S),S) =>(T,S,S),S) =>(S,S,S),S) =>(T),S,S),S) =>(T,S),S,S),S) =>(S,S),S,S),S) =>(a,S),S,S),S) =>(a,a),S,S),S) =>(a,a),S),S) =>(a,a),(T),S) =>(a,a),(S),S) =>(a,a),(a),S) =>(a,a),(a),a)4. 文

27、法: S->MH|a H->LSo| K->dML| L->eHf M->K|bLM 判断 G 是否为 LL(1) 文法,如果是,构造 LL(1) 分析表。解:各符号的FIRST集和FOLLOW集为: 预测分析表为: 由于预测分析表中无多重入口,所以可判定文法是LL(1)的。五.计算题(10分)已知文法 GS 为: S->a|(T) T-> T,S|S (1) 计算 GS 的 FIRSTVT 和 LASTVT 。 (2) 构造 GS 的算符优先关系表并说明 GS 是否未算符优先文法。 (3) 计算 GS 的优先函数。 (4) 给出输入串 (a,a)#

28、的算符优先分析过程。解:(1)各符号的FIRSTVT和LASTVT:(2)算符优先关系表: (3)对应的算符优先函数为: (4)句子(a,a)#分析过程如下: 4、她们宁可做一时的女王,不愿一世的平庸。5、男人插足叫牛逼,女人插足叫小三。6、你要成佛成仙,我跟你去,你要下十八层地狱,我也跟你去。你要投胎,我不答应!7、忘川之畔,与君长相憩,烂泥之中,与君发相缠。寸心无可表,唯有魂一缕。燃起灵犀一炉,枯骨生出曼陀罗。8、如果还有机会的话,我一定会让你回到我的身边,我不想让你和别人结婚。9、每个人心里都有脆弱的一面,如果放大这种脆弱的话,没人想活。10、我做了一个很伟大的决定,看你这么可怜,又没有朋友,我们做朋友吧!11、我不该只是等待,我应该去寻找。12、哪怕再花上七十年,七百年,我想我肯定会找到他!13、恶鬼:你敢打我!夏冬青:你都要吃我了,我还不能打你啊!14、人活着就会失去,你失去的不会再来,你争取的永远都会失去!15、阿茶:我可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论