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

下载本文档

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

文档简介

二填空题1.不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静态存储分配方案和动态存储分配方案,而后者又分为(1)和(2)。2.规范规约是最(3)规约。3.编译程序的工作过程一般划分为5个阶段:词法分析、(4)、语义分析与中间代码生成,代码优化及(5)。另外还有(6)和出错处理。4表达式x+y*z/(a+b)的后缀式为(7)。5文法符号的属性有综合属性和(8)。6假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a1.15,1.20某个元素ai,j的地址计算公式为(9)。7局部优化是局限于一个(10)范围内的一种优化。答案(1)栈式动态存储分配 (2)堆式动态存储分配 (3)左 (4)语法分析 (5)目标代码生成 (6)表格管理 (7)xyz*ab+/+ (8)继承属性(9)a+(i-1)*20+j-1(10)基本块8 词法规则通常可以用_正规式_,正规文法、_自动机_描述;语法规则通常用_2型文法_来描述;语义规则通常用_属性文法_来描述。9 编译原理的工作过程一般划分为:词法分析、语法分析、语义分析、优化和目标代码生成五个阶段。1.()称为规范推导。2.编译过程可分为(),(),(),()和()五个阶段。3.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是()。4.从功能上说,程序语言的语句大体可分为()语句和()语句两大类。5.语法分析器的输入是(),其输出是()。6.扫描器的任务是从()中识别出一个个()。7.符号表中的信息栏中登记了每个名字的有关的性质,如()等等。8.一个过程相应的DISPLAY表的内容为()。9.一个句型的最左直接短语称为句型的()。10.常用的两种动态存贮分配办法是()动态分配和()动态分配。11.一个名字的属性包括()和()。12.常用的参数传递方式有(),()和()。13.根据优化所涉及的程序范围,可将优化分成为(),()和()三个级别。14.语法分析的方法大致可分为两类,一类是()分析法,另一类是()分析法。15.预测分析程序是使用一张()和一个()进行联合控制的。16.常用的参数传递方式有(),()和()。17.一张转换图只包含有限个状态,其中有一个被认为是()态;而且实际上至少要有一个()态。18.根据优化所涉及的程序范围,可将优化分成为(),()和()三个级别。19.语法分析是依据语言的()规则进行。中间代码产生是依据语言的()规则进行的。20.一个句型的最左直接短语称为句型的()。21.一个文法G,若它的预测分析表M不含多重定义,则该文法是()文法。22.对于数据空间的存贮分配,FORTRAN采用()策略,PASCAL采用()策略。23.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是()。24.最右推导亦称为(),由此得到的句型称为()句型。25.语法分析的方法大致可分为两类,一类是()分析法,另一类是()分析法。26.对于文法G,仅含终结符号的句型称为()。27.所谓自上而下分析法是指()。28.语法分析器的输入是(),其输出是()。29.局限于基本块范围的优化称()。30.预测分析程序是使用一张()和一个()进行联合控制的。31.2型文法又称为()文法;3型文法又称为()文法。32.每条指令的执行代价定义为()。33.算符优先分析法每次都是对()进行归约。答案参考答案:1.(最右推导)2.(词法分析),(语法分析),(中间代码生成),(代码优化),(目标代码生成)3.(二义性的)4.(执行性),(说明性)5.(单词符号),(语法单位)。6.(源程序),(单词符号)7.(类型、种属、所占单元大小、地址)8.(现行活动记录地址和所有外层最新活动记录的地址)9.(句柄)10.(栈式),(堆式)11.(类型),(作用域)12.(传地址),(传值),(传名)13.(局部优化),(循环优化),(全局优化)14.(自上而下),(自下而上)15.(分析表),(符号栈)16.(传地址),(传值),(传名)17.(初),(终)18.(局部优化),(循环优化),(全局优化)19.(语法),(语义)20.(句柄)21.(LL(1)文法)22.(静态),(动态)23.(二义性文法)24.(规范推导),(规范)25.(自上而下),(自下而上)26.(句子)27.(从开始符号出发,向下推导,推出句子)28.(单词符号),(语法单位)29.(局部优化)30.(分析表),(符号栈)31.(上下文无关文法),(正规)32.(指令访问主存次数加1)33.(最左素短语)三解答题(共60分)1(共15分)已知文法GE:EETE|(E)|iT*|+(1)将文法G改造成LL(1)文法;(5分)(2)构造文法G中每个非终结符的FIRST集合及FOLLOW集合;(5分)(3)构造LL(1)分析表。(5分)2(共12分)给定文法GS:SS(S)|(1)给出句子()()()()的规范推导过程;(4分)(2)指出每步推导所得句型的句柄;(4分)(3)画出该句子的语法推导树。(4分)答案1(1)文法存在左递归,消除左递归后的文法为:E(E)E|iE(2分)ETEE|(2分)T*|+(1分)(2)(5分)没考虑#扣0.5分,其它错或少写一个扣0.5分FIRST(E)=(,i FIRST(E)=*,+,FIRST(T)=*,+FOLLOW(E)=),*,+,# FOWLLOW(E)=),*,+,# FOLLOW(T)=(,i1.写一个文法G,使其语言为不以0开头的偶数集。2.已知文法G(S)及相应翻译方案SaAbprint“1”Saprint“2”AASprint“3”Acprint“4”输入acab,输出是什么?3.已知文法G(S)SbAaA(B|aBAa)写出句子b(aa)b的规范归约过程。4.考虑下面的程序:procedurep(x,y,z);beginy:=x+y;z:=z*z;endbeginA:=2;B:=A*2;P(A,A,B);PrintA,Bend.试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出A,B的值是什么?5.文法G(S)SdABAaA|aBBb|描述的语言是什么?6.证明文法G(S)SSaS|是二义性的。7.已知文法G(S)SBAABS|dBaA|bS|c的预测分析表如下abcd#SSBASBASBAAABSABSABSAdBBaABbSBc给出句子adccd的分析过程。8.写一个文法G,使其语言为L(G)=albmclanbn|l=0,m=1,n=29.已知文法G(S):Sa|(T)TT,S|S的优先关系表如下:关系a(),a-.(.=.,.请计算出该优先关系表所对应的优先函数表。10.何谓优化?按所涉及的程序范围可分为哪几级优化?11.目标代码有哪几种形式?生成目标代码时通常应考虑哪几个问题?12.一字母表=a,b,试写出上所有以a为首的字组成的正规集相对应的正规式13.基本的优化方法有哪几种?14.写一个文法G,使其语言为L(G)=abncn|n015.考虑下面的程序:procedurep(x,y,z);beginy:=y+z;z:=y*z+xend;begina:=2;b:=3;p(a+b,b,a);printaend.试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出a的值是什么?16.写出表达式ab*(c-d)/e的逆波兰式和三元序列。17.证明文法G(A)AAA|(A)|是二义性的。18.令=a,b,则正规式a*b|b*a表示的正规集是什么?19.何谓DISPLAY表?其作用是什么?20.考虑下面的程序:procedurep(x,y,z);beginy:=y+2;z:=z+x;endbegina:=5;b:=2;p(a+b,a-b,a);printaend.试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出a的值是什么?21.写一个文法G,使其语言为L(G)=anbncm|n0为奇数,m0为偶数22.写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。23.一个文法G别是LL(1)文法的充要条件是什么?24.已知文法GSSS*aF|aF|*aFF+aF|+a消除文法左递归和提公共左因子。25.符号表的作用是什么?符号表查找和整理技术有哪几种?答案:.1所求文法是GS:SAB|BA0AAD|CB2|4|6|8C1|3|5|7|9|BD0|C2.输出是42314.传地址A=6,B=16传值A=2,B=45.L(G)=danbm|n0,m06.证明:因为文法GS存在句子aa有两个不同的最左推导,所以文法GS是是二义性的。S=SaS=SaSaS=aSaS=aaS=aaS=SaS=aS=aSaS=aaS=aa8.所求文法是GS:SABAaAc|DDbD|bBaBb|aabb10.优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。三种级别:局部优化、循环优化、全局优化11.目标代码通常采用三种形式:机器语言,汇编语言,待装配机器语言模块。应着重考虑的问题:(1)如何使生成的目标代码较短;(2)如何充分利用寄存器,以减少访问内存次数;(3)如何充分利用指令系统的特点。12.正规式a(a|b)*。13.删除多余运算,代码外提,强度削弱,变换循环控制条件,合并已知量,复写传播和删除无用赋值。14.文法GS:SaB|aBbc|bBc15.传值a=2传地址a=1516.逆波兰式:abcd-*e/+三元序列:oparg1arg2(1)-cd(2)*b(1)(3)/(2)e(4)+a(3)17.证明:因为文法GS存在句子()有两个不同的最左推导,所以文法GS是是二义性的。A=AA=(A)A=()A=()A=AA=A=(A)=()18.(a*b|b*a)=a,b,ab,ba,aab,bba19.Display表:嵌套层次显示表由于过程嵌套允许内层过程引用外层过程定义的数据,因此,当一个过程运行时必须跟踪它的所有外层过程的最新活动记录起始地址,display表就是用于登记每个外层过程的最新活动记录起始地址。20.传地址a=12传值a=521.所求文法是GS:SACAaaAbb|abCccC|cc23.一个文法G别是LL(1)文法的充要条件是:(1)FIRST()FIRST()=(2)如果=*,FIRST()FOLLOW(A)=24.消除左递归SaFS|*aFSS*aFS|F+aF|+a提公共左因子,文法G(S)SaFS|*aFSS*aFS|F+aFFF|25.作用:登记源程序中出现的各种名字及其信息,以及了解各阶段的进展状况。主要技术:线性表,对折查找,杂奏技术。三、简答题:(每题7分,共28分)(说明:将答案写在试卷后面的答题纸上)1、已知文法GEE-E+T|E-T|TT-T*F|

温馨提示

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

评论

0/150

提交评论