郑州大学编译原理试卷及答案(往年试题整合)_第1页
郑州大学编译原理试卷及答案(往年试题整合)_第2页
郑州大学编译原理试卷及答案(往年试题整合)_第3页
郑州大学编译原理试卷及答案(往年试题整合)_第4页
郑州大学编译原理试卷及答案(往年试题整合)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、二填空题1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静态存储分配方案和动态存储分配方案,而后者又分为(栈式动态存储分配) 和 (堆式动态存储分配) 。 2. 规范规约是最(左 )规约。 3. 编译程序的工作过程一般划分为5个阶段:词法分析、(语法分析 ) 、语义分析与中间代码生成,代码优化及(目标代码生成) 。另外还有(表格管理)和出错处理。 4表达式x+y*z/(a+b)的后缀式为 (xyz*ab+/+

2、0;) 。 5文法符号的属性有综合属性和 (继承属性)。 6假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a1.15,1.20某个元素ai,j的地址计算公式为(a+(i-1)*20+j-1 )。 7局部优化是局限于一个(基本块)范围内的一种优化。8 词法规则通常可以用_正规式_,正规文法、_自动机_描述;语法规则通常用_2型文法_来描述;语义规则通常用_属性文法_来描述。9 编译原理的工作过程一般划分为:词法分析、语法分析、语义分析、优化和目标代码生成五个阶段。1.(  最右推导  

3、 )称为规范推导。 2.编译过程可分为 (词法分析) ,( 语法分析),(中间代码生成),(代码优化)和(目标代码生成  )五个阶段。 3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是(       二义性的)。   4.从功能上说,程序语言的语句大体可分为(     执行性  )语句和(   

4、0;说明性   )语句两大类。 5.语法分析器的输入是(  单词符号     ),其输出是(   语法单位    )。 6.扫描器的任务是从( 源程序    )中识别出一个个(  单词符号   )。 7.符号表中的信息栏中登记了每个名字的有关的性质,如(    

5、;   类型、种属、所占单元大小、地址             )等等。 8.一个过程相应的DISPLAY表的内容为(         现行活动记录地址和所有外层最新活动记录的地址             &#

6、160;                )。 9.一个句型的最左直接短语称为句型的(     句柄    )。 10.常用的两种动态存贮分配办法是(   栈式 )动态分配和(堆式    )动态分配。 11.一个名字的属性包括( &

7、#160;类型)和( 作用域  )。 12.常用的参数传递方式有(传地址),(   传值)和(    传名 )。 13.根据优化所涉及的程序范围,可将优化分成为(   局部优化     ),(    循环优化    )和(       全局

8、优化 )三个级别。 14.语法分析的方法大致可分为两类,一类是(   自上而下 )分析法,另一类是(    自下而上     )分析法。 15.预测分析程序是使用一张(分析表 )和一个( 符号栈)进行联合控制的。 16.常用的参数传递方式有(  传地址 ),(传值)和( 传名   )。 17.一张转换图只包含有限个状态,其中有一

9、个被认为是(初   )态;而且实际上至少要有一个(  终 )态。 18.根据优化所涉及的程序范围,可将优化分成为(局部优化 ),(循环优化)和(全局优化 )三个级别。 19.语法分析是依据语言的(语法)规则进行。中间代码产生是依据语言的(语义)规则进行的。 20.一个句型的最左直接短语称为句型的(句柄  )。 21.一个文法G,若它的预测分析表M不含多重定义,则该文法是LL(1) 文法)文法。 22.对于数据空间的存贮分配, 

10、FORTRAN采用(静态  )策略, PASCAL采用(动态  )策略。 23.如果一个文法存在某个句子对应两棵不同的语法树, 则称这个文法是(二义性文法)。 24.最右推导亦称为(规范推导),由此得到的句型称为(规范 )句型。 25.语法分析的方法大致可分为两类,一类是(自上而下 )分析法,另一类是(自下而上 )分析法。 26.对于文法G,仅含终结符号的句型称为 (  句子   )。 27.所谓

11、自上而下分析法是指(从开始符号出发,向下推导,推出句子 )。 28.语法分析器的输入是(  单词符号),其输出是(  语法单位  )。 29.局限于基本块范围的优化称(      局部优化    )。 30.预测分析程序是使用一张(分析表 )和一个(符号栈)进行联合控制的。 31.2型文法又称为(上下文无关文法)文法;3型文法又称为(正规 )文法。 32.每

12、条指令的执行代价定义为(指令访问主存次数加1 )。 33.算符优先分析法每次都是对(最左素短语)进行归约。三  解答题 1 已知文法GE:    EETE|(E)|i       T*|+ (1) 将文法G改造成LL(1)文法;(1)文法存在左递归,消除左递归后的文法为:  E(E)E|i E  ETEE|   T*|+    

13、  (2) 构造文法G中每个非终结符的FIRST集合及FOLLOW集合;FIRST(E)=(,i   FIRST(E)=*,+,   FIRST(T)=*,+        FOLLOW(E)=),*,+,#   FOWLLOW(E)= ),*,+,#   FOLLOW(T)=(,i (3) 构造LL(1)分析表。()i*+#EE(E)EEiEEE ETEEE ETE

14、EE E TT*T+ 2 (共12分)给定文法GS:SS(S)| (1) 给出句子()()()()的规范推导过程;(4分) (2) 指出每步推导所得句型的句柄; (1)中加下划线的部分是句柄,标识如(1)画出该句子的语法推导树。SS ( S )S ( S ) ) )S ( S ) )S ( S ) ) S ( S ) )1. 写一个文法G, 使其语言为 不以0开头的偶数集。所求文法是GS: SAB |B A0 AAD |C B2 |4 

15、|6 |8 C1 |3 |5 |7 |9 |B D0 |C 2.已知文法G(S)及相应翻译方案  SaAb   print “1” Sa      print “2” AAS    print “3” Ac      print 

16、“4” 输入acab, 输出是什么?    输出是4231  3. 已知文法G(S) SbAa  A(B | a BAa)   写出句子b(aa)b的规范归约过程。 4. 考虑下面的程序: procedure  p(x, y, z); begin y:=x+y; z:=z*z;   end 

17、;  begin A:=2; B:=A*2; P(A, A, B); Print A, B   end. 试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出 A, B的值是什么? 传地址  A=6,  B=16  传值    A=2,  B=4  5.文法G(S) SdAB

18、60;AaA| a BBb|  描述的语言是什么?L(G)=danbm  |n>0, m0  6.证明文法G(S)    SSaS|     是二义性的因为文法GS存在句子aa有两个不同的最左推导,所以文法GS是是二义性的。 S=>SaS=>SaSaS=>aSaS=>aaS=>aa       S=>SaS

19、=>aS=>aSaS=>aaS=>aa。 7.已知文法G(S)   SBA ABS| d BaA| bS | c 的预测分析表如下        a       b      c     d &#

20、160;   #   S SBA SBA SBA     A ABS ABS ABS Ad    B BaA    BbS    Bc    给出句子 adccd 的分析过程。 8.写一个文法G, 使其语言为&

21、#160;L(G)=albmclanbn |  l>=0, m>=1, n>=2  所求文法是GS:     SAB   AaAc | D    DbD | b BaBb | aabb9.已知文法G(S): Sa| (T) TT,S|S 的优先关系表如下: 关系 a (&

22、#160;) , a - - .> .> ( <. <. =. <. ) - - .> .> , <. <. .> .> 请计算出该优先关系表所对应的优先函数表。 10.何谓优化?按所涉及的程序范围可分为哪几级优化? 对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。&#

23、160;  三种级别:局部优化、循环优化、全局优化 11.目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题? 11.目标代码通常采用三种形式:机器语言,汇编语言,待装配机器语言模块。  应着重考虑的问题:  (1)如何使生成的目标代码较短;  (2)如何充分利用寄存器,以减少访问内存次数;    (3)如何充分利用指令系统的特点。12.一字母表=a, b,试写出上所有以a为首的字组成的正规集相对应的正规式12.正规式 a (&#

24、160;a | b )*。13.基本的优化方法有哪几种? 13.删除多余运算,代码外提,强度削弱,变换循环控制条件,合并已知量,复写传播和删除无用赋值。14.写一个文法G, 使其语言为 L(G)=abncn| n0 14.文法GS: SaB | a     Bbc |bBc 15.考虑下面的程序: procedure p(x, y, z); begin  &

25、#160;y:=y+z;   z:=y*z+x end; begin   a:=2;   b:=3;   p(a+b, b, a);   print a end. 试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出 a的值是什么?   15.传值    a=2   &#

26、160;传地址  a=15   16.写出表达式ab*(c-d)/e的逆波兰式和三元序列。 16.逆波兰式: abcd-*e/+ 三元序列:        op     arg1     arg2           (1)

27、60;   -       c        d           (2)    *       b        (

28、1)           (3)    /       (2)      e           (4)    +    

29、0;  a        (3) 17.证明文法G(A)   AAA | (A)|    是二义性的。 17.证明: 因为文法GS存在句子 () 有两个不同的最左推导,所以文法GS是是二义性的。 A=>AA=>(A)A=>()A=>()   A=>AA=>A=>(A)=>

30、() 18.令=a,b,则正规式a*b|b*a  表示的正规集是什么?18.(a*b|b*a)=a,b,ab,ba,aab,bba 19.何谓DISPLAY表?其作用是什么?19.Display表: 嵌套层次显示表 由于过程嵌套允许内层过程引用外层过程定义的数据,因此,当一个过程运行时必须跟踪它的所有外层过程的最新活动记录起始地址, display表就是用于登记每个外层过程的最新活动记录起始地址。 20.考虑下面的程序:  procedure  p(x, y,

31、60;z); begin y:=y+2; z:=z+x;   end   begin a:=5; b:=2; p(a+b, a-b, a); print a   end. 试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出 a的值是什么?  20.传地址  a=12 传值    a=5&#

32、160;21.写一个文法G, 使其语言为 L(G)=anbncm|  n>0为奇数, m>0为偶数 21.所求文法是GS:     SAC     AaaAbb | ab      CccC | cc 22.写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。 23.一个文法G别是LL(1)文法的充要条件是什么?23.一个文法G别是LL(1)文法的充要条件是:  (1)  FIR

温馨提示

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

评论

0/150

提交评论