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

下载本文档

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

文档简介

1、编译原理A一、不定项选择题(每题5分,共8题,计40分)1. 下面说法错误的有( CD )。A、编译前端完成对源程序的分析 B、编译后端对源程序进行综合C、编译器等同于解释器D、编译器可以发现源程序的全部语法错误和全部语义错误2. 下面( ACD )是编译程序的组成部分。 A、词法分析程序B、设备管理程序C、语法分析程序D、代码生成程序3. 不属于下面正规式定义的语言集合的元素有( C )。这里,id是字母开头,后跟字母或数字的,长度不超过10的字符串形式。( int | float | double ) id (, id )* ;A、int a;B、int a,b,d;C、float xyz

2、 abc;D、double m;4. C语言编译中的存储分配策略是( B )。A、静态存储分配策略 B、动态存储分配策略C、最佳分配策略D、时钟分配策略5. Java编译器生成的是( BCD )。A、JavacB、.class文件C、BytecodeD、字节码6. 文法G(E): E i | E+E | E*E | (E) 不可以产生的句子是( CD )。A、(i)B、i*(i+i)+(i*i)C、i+D、(i+()7. 常用的中间代码表示形式有( ABC )。A、后缀表示B、图形表示C、三地址码D、中缀表示8. 在编译过程中,符号表的主要作用有( CD )。A、帮助错误处理B、辅助语法错误的

3、检查C、辅助语义的正确性检查D、辅助代码生成E、辅助对目标程序的优化二、判断题(每题2分,共10题,计20分,写对或错)1. 编译的整个过程都要包括符号表管理和出错管理两个部分。(对 )2. 文法E E + id | id是SLR(1)文法也是LR(1)文法。(对 )3. 对任何一个编译程序来说,产生中间代码是不可缺少的一部分。( 错 )4. 如果一种程序语言允许数据对象能够自由地分配和释放,就需要采用堆式存储分配方法。 ( 对 ) 5. 正规文法、正规式、确定有限自动机和非确定有限自动机在接收语言的能力上是互相等价的。 (对 )6. 正规式能用于描述配对或嵌套的结构。(错 ) 7. 算符作用

4、于不相容的运算对象,这属于语法错误。( 错 )8. LR分析中四个文法的关系是LR(1) LALR(1) SLR(0) LR(0)。(对)9. 后缀表示的优点是便于计算机处理表达式。(对 )10. 基本块是连续的语句序列,控制流从它的开始进入,从它的末尾离开。( 对)三、填空题(每题10分,共4题,计40分)1. 为下面文法写一个语法制导的定义,它完成一个句子的while-do最大嵌套层次的计算并输出这个计算结果。在括号处填上每句文法对应的方案。 S E ( print(S.loop); )E while E do E ( E.loop := max(E1.loop, E2.loop) +1;

5、 )| id := E ( E.loop := E1.loop; )| E + E ( E.loop := max(E1.loop, E2.loop); )| id ( E.loop := 0; )| (E) 此句文法不写2. 正规式的三个基本运算符是( | ),( . )和( * ),优先级最高的运算符是( * ),优先级最低的运算符是( | )。3. 对下面的文法G(S),若对句子 *i1=i2进行规范归约,其符号栈的操作步骤是(移入*,移入i1,i1归约为V,V归约为E,*E归约为V,移入=,移入i2,i2归约为V,V归约为E,V=E 归约为S。)。S ® V=E | EV &

6、#174; *E | iE ® V4. 对于下面C语言文件,某编译器编译时对函数f1有警告错误,提示内容是warning: declaration of x shadows a parameter。对函数f2没有类似的警告错误的原因是(对于函数f1,局部变量x声明的作用域是整个函数体,导致在函数体中不可能访问形式参数x,由于这是一个合法的C语言函数,因此编译器给出警告错误;对于函数f2,由于局部变量x的作用域只是函数体的一部分,不会出现上述问题,因而编译器不报错。 )。f1(int x)long x;x = 1;f2(int x)long x;x = 1;编译原理B一、不定项选择题(

7、每题5分,共8题,计40分)1. 属于正规式(a|b)(0|1|2)*(a|b)定义的语言集合的元素有(ABD)。A、a0a B、aa C、abda D、a012b2. 用l代表字母,d代表数字,定义标识符单词的正规式有( C )。 A、ld* B、ll C、l(l|d)* D、ll*|d*3. 编译器生成的目标代码的主要形式有( ABC )。A、可立即执行的机器语言代码B、汇编语言程序C、待装配的机器语言代码模块D、抽象语法树程序4. LR语法分析栈中存放的状态是识别( B )的DFA状态。A、前缀B、活前缀C、项目D、句柄5. 已知文法G(S)如下,该文法是( CD )。S LaR|RL

8、bR|cR LA、LR(0)文法B、SLR(1)文法C、LR(1)文法D、LALR(1)文法6. 编译过程中,以下属于语法分析器的任务的有( BCD )。A、分析单词是怎样构成的B、分析单词串是如何构成语句和说明的C、分析语句和说明是如何构成程序的D、分析程序的结构7. 影响编译器存储分配策略的语言特征有( ABCD )。A、过程能否递归B、过程能否访问非局部变量C、存储块是否必须显式地释放D、存储块是否在程序控制下动态地分配8. 一般程序设计语言都涉及(ABC )几个方面。A、语法B、语义C、语用D、程序基本符号的确定二、判断题(每题2分,共10题,计20分,写对或错)1. 自上向下语法分析

9、遇到的主要困难是左递归带来的无限循环和回溯。(对)2. 下面所示的文法是LALR(1)文法。(对)S V = E | EV E | idE V3. 通常程序设计语言的中的单词符号都能用正规式描述。( 对 )4. 因为名字都是用标识符表示的,故名字与标识符没有区别。(错 )5. 现今的程序语言一般用上下文无关文法来描述。(对 )6. 算术表达式的括号不匹配属于语法错误。( 对 )7. LALR分析中,同心集的和并不会引起新的移进-归约冲突。(对 ) 8. (8-4)+2的后缀表示是8 4 2 + 。(对 )9. 代码优化环节中,代码变换可以改变程序的含义。(错 )10. 句柄的右边仅含终结符。如

10、果文法二义,那么句柄可能不唯一。(对 )三、填空题(每题10分,共4题,计40分)1. 为下面的算术表达式文法写一个语法制导的翻译方案,它将每个子表达式E的符号(即值大于零还是小于零)记录在属性E.sign中(属性值分别用POS或NEG表示)。可以假定所有的整数都不为零,这样就不用担心零的符号。在括号处写出每句文法对应的方案。E E * E (if E1.sign = E2.sign then E.sign := POS else E.sign := NEG )| + E (E.sign := E1.sign ) | - E (if E1.sign= POS then E.sign := NE

11、G else E.sign := POS) | unsigned_integer (E.sign := POS )2. 对下面的文法G(S),FIRST(S)=( a, b, d, e, ),FIRST(T)=( a, b, ),FIRST(R)=( d, ),FIRST(D)=( a, b ),FOLLOW(S)=( # ),FOLLOW(T)=( # ),FOLLOW (R)=( a, b, # ),FOLLOW(D)=( d, # ),这个文法( 是 )LL(1)文法(填是或不是)。S eT|RTT DR|R dR|D a|bd3. 将下面的DFA化简后,(1)-(6)的括号中应该按顺序

12、填写( b a b a b a )。4. 将正规式( int | float ) id (, id )* ;改写成等价的上下文无关文法( D ® T L ;T ® int | floatL ® L, id | id )。编译原理C一、不定项选择题(每题5分,共8题,计40分)1. 解释程序和编译程序的主要区别在于( D )。A、单用户与多用的区别 B、对用户程序的查错能力C、机器执行效率D、是否生成目标代码2. 要在某一台机器上为某种语言构造一个编译程序,必须掌握( BCD )A、汇编语言B、源语言C、编译方法D、目标语言E、程序设计方法学F、测试方法3. 文法G

13、(S)=(S,B,b,Sb|bB, BbS,S),该文法描述的语言L(G(S)是( C )A、bi|i>=0B、b2i|i>=0C、b2i+1|i>=0D、b2i+1|i>=14. 有文法G(I): I I1|I0|Ia|Ic|a|b|c,下面属于这个文法句子的有(BCD )。A、ab0B、a0c01C、aaaD、bc105. 语法分析常用的方法有( AB )。A、自上而下B、自下而上C、自左向右D、自右向左6. 在编译程序中安排中间代码生成的目的是( BC )。A、便于程序空间的组织B、利于中间代码优化C、利于编译程序移植D、有利于提高编译程序的质量7. 过程信息表中

14、必须包括( ABC )。A、过程名B、参数信息C、过程入口地址D、目标代码8. 关于代码优化,下列说法中正确的有(ABCD )。A、复写传播变换本身并不是优化,但它给其它优化带来机会B、一些优化变换可能会引起死代码C、代码外提是循环优化的一种D、循环必须有唯一的入口点,叫做首结点,首结点是循环中所有结点的必经结点二、判断题(每题2分,共10题,计20分,写对或错)1. 编译器是一种应用软件。( 错 )2. 编译程序于具体的机器有关,与具体的语言无关。(错 )3. 用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行。(错 )4. 文法G(S):S S*S|S+S|(S)|a是二义性

15、文法。( 对 )5. 符号与字符的概念是相同的。(错 )6. 存在一些语言,他们能被确定的有穷自动机识别,但不能用正规表达式表示。(错 )7. LR(0)分析法名字中L的含义是从左到右进行分析。( 对 )8. 语法制导翻译是在语法规则的制导下,通过计算语义规则,完成对输入符号串的翻译。( 对 )9. 符号表由词法分析程序建立,由语法分析程序使用。(错 )10. 静态存储分配要求程序中每一个数据对象的大小在编译阶段能够确定。(对 )三、填空题(每题10分,共4题,计40分)1. 正规式( 1 | 01 )* 0*所描述的语言是( 所有不含子串001的0和1的串 )。2. 对下面的文法Follow(F)=( *,+,#,) ), FIRST(T)=( *, )。E TEE +TE| T FTT *FT| F (E) |id3. 为下面的文法写一个语法制导的定义,用S的综合属性val给出下面文法中S产生的二进制数的值。例如,输入101.101时,S. val := 5.625。在括号处写出每句文法对应的方案。S ® L . R(S. val := L. val + R. val )S ® L(S. val := L. val )L ®

温馨提示

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

评论

0/150

提交评论