大学编译原理课程复习试题及答案_第1页
大学编译原理课程复习试题及答案_第2页
大学编译原理课程复习试题及答案_第3页
大学编译原理课程复习试题及答案_第4页
大学编译原理课程复习试题及答案_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、编译原理复习材料选择题1.文法S0S | S1 | 0的语言是( )。A. 0 m1m| m >=0 B. 0 m1m| m >=1 C. 0 m1n | m>=1,n>=0 D. 0 m1n | m>=0,n>=1 2.描述程序语言所采用的型文法是 ( )。A. 短语文法 B.正规文法C.上下文无关文法D.上下文有关文法3.状态转换图实现的简单方法是使每个状态结对应( )。A.一个终结符B.一个非终结符C.一段小程序D.一个函数4.规范归约的关键问题是寻找( )。A. 最左素短语 B.句柄C.直接短语D.短语5.一个算符文法的任何产生式的右部都不含有两个相

2、继的( )。A.终结符B.非终结符C.终结符和非终结符D.空字6.算符优先分析法的关键在于规定( )。A.算符优先顺序和结合性质B.算符优先顺序C.结合性质D.终结符和非终结符之间关系7.优先函数的优点是( )。A.形象直观B.便于进行比较运算C.语法分析速度快D.语法分析方法简单8.文法符号的属性通常分为( )两类。A. 共用属性和私有属性 B.固有属性和可变属性C.语法属性和语义属性D.综合属性和继承属性9.在程序流图中,组成循环的结点序列应满足( )A. 它们是强连通的 B.它们中间有唯一的入口结点C.它们中间有一条回边D.它们是强连通的且有唯一的入口结点10.在利用寄存器R生成T1:=

3、C/B的目标代码同时,还应记录信息( )。A. C/B在T1中 B. T1在C/B中C. R含有T1, T1在R中D. R含有C/B, C/B在R中1.D2.B3.C4.B5.B6.A7.B8.D9.D10.C1.编译方式与解释方式的根本区别在于( )A.是否生成目标代码B.是否生成中间代码C.是否生成汇编代码D.是否生成优化代码2.编译程序生成的目标程序( )A.一定是机器语言的程序B.不一定是机器语言的程序C.一定不是机器语言的程序D.一定是汇编语言的程序3.设字母表=0,1,x,y, 则上的正规式所对应的正规集为( )A.B. 0,1,x,y C. D.4. *假设G是一个文法,S是文法

4、的开始符号,如果S=> x,则称x是( )A.短语B.句柄C.句子D.句型5.一个算符文法的任何产生式的右部都不含有两个相继的( )A.终结符B.非终结符C.终结符和非终结符D.字6.设有文法GA:A Ax|Ay|Aa|Ac|a|b|c,下列哪些是该文法的句子( )(1) aby(2) aycyx(3) aaa(4) bcxyA.(1) (2) (3)B. (1) (2) (4)C.(2) (3) (4)D.全部7.分析器的核心部分是( )A.带先进后出存贮器的DFA B.一张动作表C.一张GOTO表D.一张分析表8.在程序流图中,组成循环的结点序列应满足( )A.它们是强连通的且有唯一

5、的入口结点B.它们中间有唯一的入口结点C.它们中间有一条回边D.它们是强连通的9.表达式abcadabe的后缀式式为( )。A.abcadabeB.abcdaabeC.abcadabeD.abcadabe10.程序基本块是指 ( )A.一个子程序B.一个仅有一个入口和一个出口的语句C. 一个没有嵌套的程序段D.一组顺序执行的程序段,仅有一个入口和一个出口1.A2.B3.C4.D5.B6.C7.D8.A9.C10.D1.BNF是一种用于 ( )的工具。A. 描述句型 B.描述句子C.描述语言D.描述文法2.设字母表=0,1,x,y, 则上的正规式所对应的正规集为( )A.B. C. 0,1,x,

6、y D.3.规范推导也称为( )A. 最右推导 B.最左推导C.一般推导D.自左向右推导4.在规范归约中, 任何可归约串的出现必在( )A.栈的内部B.栈顶C.剩余的输入串中D.在先进后出栈中5.一个算符文法的任何产生式的右部都不含有两个相继的( )A.终结符B.非终结符C.终结符和非终结符D.字6.分析器的核心部分是( )A.一张分析表B.一张动作表C.一张GOTO表D.带先进后出存贮器的DFA7.算符优先分析的关键问题是寻找( )。A.句柄B.最左素短语C.短语D.直接短语8.四元式之间的联系是通过( )A.指示器B.临时变量C.四元式的编号D.中间运算结果9.表达式abcadabe的逆波

7、兰式为( )。A.abcadabe B.abcdaabeC.abcadabeD.abcadabe10.代码外提时要求该不变运算所在的结点是循环的( )。A.某个出口的必经结点B.至少是一个入口的必经结点C.入口的必经结点D.所有出口的必经结点1.D2.B3.A4.B5.B6.A7.B8.B9.A10.D填空题1.一个状态转换图可用于一定的字符串。2.设a , b , c,则*中最短的符号串为。3.若由文法的开始符号可以推导出串 ,且,则为原文法的一个句子。4.若文法的某非终结符P满足,称文法含有左递归。5.表达式-(a+b)/(c*d)-e的逆波兰式为_。6.后序遍历一棵表达式树,可得到它的。

8、7.中间代码是一种面向语法,易于翻译成的代码。8.四元式序列中各四元式出现的顺序与是一致的。9.若每个程序对应一个流图,则流图中的结点对应一个。10.若从流图首结点出发, 到达nj的任一通路必须经过ni,则称的必经结点。1.识别或接受2.3. VT*4.=5.ab+cd*/e-6.逆波兰式7.目标代码8.运算顺序9.基本块10.ni为nj1.一个非确定的有限自动机可以表示为一个元式。2.若文法的某非终结符P满足,称文法含有左递归。3.设1 , 2, 3,则*中最短的符号串为。4.用+表示上所有的集合。5.三地址代码的一般形式为。6.递归下降法对每个构造一个相应的子程序。7.在算符优先分析中,用

9、作为可归约串。8.在形式语言中,最推导被称为规范推导。9.语法树中,一个结点的属性由此结点的父结点和/或兄弟结点的属性确定。10.如果循环中对变量I只有唯一的形如I=I±C的赋值,则称I为循环中的变量。1. 2.五=3.4.长度不为0的串5.x:=y op z6.非终结符7.最左素短语8.右9.继承10.基本归纳1.终态与非终态的区别在于。2.用+表示上所有的集合。3.一个状态转换图可用于一定的字符串。4.用于词法分析的扫描缓冲区可将两个半区使用。5.一个句型的称为该句型的句柄。6.递归下降法对每个构造一个相应的子程序。7.算符优先法尤其适用于的分析。8.规范归约的关键在于如何确定。

10、9.文法符号的属性值可自底向上应用语义规则计算出来。10.DAG代表。1.终态可接受空串2.长度不为0的串3.识别4.互补5.最左简单短语6.非终结符7.表达式8.句柄9.综合10.有向无环图判断题1.若一个文法是递归的,则由它产生的语言的句子个数是有限的。( )2.用于词法分析的扫描缓冲区可将两个半区重叠使用。( )3.一个LR分析器实质上是一个带有后进先出存储器的DFA。( )4.符号表的每一项一般包含入口栏和信息栏两大部分。( )5.DAG是对循环进行优化的有效工具。( )6.代码外提时要求该不变运算所在的结点是循环的某个出口的必经结点。( )1.×无限2.×互补3.

11、4.×名字5.×基本块6.×所有1.描述程序语言所采用的型文法是上下文无关文法。( )2.状态转换图实现的简单方法是使每个状态结点对应一个非终结符( )3.欲构造行之有效的自下而上分析器,则必须清除文法中含有的左递归。( )4.在规范归约中, 任何可归约串的出现必在栈的内部。( )5.循环优化中的强度削弱主要是指将循环中的乘法变成加法。( )6.符号表的信息栏中的内容称为关键字。( )1.× 正规文法2.× 一段小程序3.× 自上而下4.× 栈顶5.×递归加法6.×名字1.设是某句型的一个子串,若它能被一

12、次直接归约为一个非终结符,则是该句型的一个直接短语。( )2.语法分析过程可用一棵树表示出来,这棵树叫做语法树。( )3.欲构造行之有效的自下而上分析器,则必须清除文法中含有的左递归。( )4.四元式作为中间语言,用于翻译除表达式外的其他语句代码。( )5.循环优化中的强度削弱主要是指将循环中的乘法变成加法。( )6.流图中有向边ab为回边的条件是a DOM b。( )1. × 要求这个非终结符取代后,原句型还可继续向开始符方向归约。2.×分析树3.× 自上而下4.× 各种5.×递归加法6.×b DOM a简答题1.简述正规式与有限自

13、动机的关系。2.已知文法G: S iSeS | iS | i该文法是否具有二义性?请根据句子iiiei构造语法树予以说明。3.何谓递归下降分析法?应用此种分析法的文法应满足什么条件?4简述代码优化所依据的原则与优化的级别,并列举三种常用的优化技术。1.正规式用来描述正规集,而有限自动机用来识别正规集,在正规集的意义上它们存在等价关系。 即:对每一个正规式所代表的正规文法G,都存在一个有限自动机M,使得L(M)=L(G),M所能识别的字的全体恰为这个正规文法G的语言集合; 对每一个有限自动机M,都存在一个可以用正规式表示的正规文法G,使得L(G)=L(M),这个正规文法G的语言集合中的任一个字可

14、以由M识别。 2.对于句子iiiei,该文法具有两棵不同的语法树与之对应,故为二义性文法。 S S / / / i S e S i S / | / / i S ii S e S| | |Iii3.当文法满足LL(1)条件时,可以为它构造一个不带回溯的自上而下分析程序。它由一组递归过程(函数)组成,每个过程(函数)对应文法的一个非终极符,这样的分析程序称为递归下降分析器。 利用这种分析程序进行语法分析的方法称为递归下降分析法。 4.代码优化所依据的原则是:等价原则、有效原则和合算原则。代码优化所依据的级别是:局部优化、循环优化与全局优化。常用的代码优化技术有:删除公共子表达式、删除无用赋值、合并

15、已知量、代码外提、强度削弱、删除归纳变量等。 1.什么是编译器的前端和后端,通常两者之间用什么作为接口?2.简述NFA和DFA的联系与区别。3.语法分析方法如何分类?它们面对的主要问题是什么?4.何谓中间语言?简述它的作用。1.前端主要由与源语言有关但与目标机无关的那些部分组成,通常包括词法分析、语法分析、语义分析与中间代码产生,有的代码优化工作也可包括在前端。(2分)后端包括编译程序中与目标机有关的那些部分,如与目标机有关的代码优化和目标代码生成等。(2分)通常,前端和后端以中间语言作为接口(1分)2.联系:NFA和DFA都是有限自动机,都用于接收、识别一定的字符串。NFA是DFA的推广,D

16、FA是NFA的特例。 (2分)区别:NFA多值函数,DFA是单值函数。 NFA可以有多个初态,DFA只有一个初态。 NFA的每条弧允许用*上的一个字作标记,DFA的每条弧只允许用上的一个字符作标记。 (3分)3.按照语法分析树的建立方法,可以把语法分析方法分为两类:自上而下分析法与自下而上分析法。 (2分)自上而下分析法面对的主要问题是:如何消除文法的左递归,以及在由文法的开始符出发推导句子的过程中如何避免回溯。 (2分)自下而上分析法面对的主要问题是:在由输入串出发向文法的开始符归约的过程中,如何确定可归约子串(句柄或最左素短语)。 (1分)4.中间语言是一种面向语法,复杂性介于用高级语言书

17、写的源程序和用机器语言表示的目标程序之间,是一种易于翻译成目标代码的代码形式。 (3分)中间语言的作用在于:利用它作为中间环节,不仅可以较快地实现源程序翻译过程,而且可在此基础上应用优化方法,将源程序翻译成为运行时间短、占用内存少的目标程序。 (2分)1.何谓上下文无关文法? 它是由哪几部分组成的?2.简述NFA和DFA的联系与区别。3.语法分析方法如何分类?它们面对的主要问题是什么?4.何谓中间语言?简述它的作用。1.上下文无关文法是这样一种文法,它所定义的语法范畴(或语法单位)是完全独立于这种范畴所处的环境的。 (3分)上下文无关文法由四部分所组成:一组终极符号,一组非终极符号,一个开始符

18、号以及一组产生式。 (2分)2.联系:NFA和DFA都是有限自动机,都用于接收、识别一定的字符串。NFA是DFA的推广,DFA是NFA的特例。 (2分)区别:NFA多值函数,DFA是单值函数。 NFA可以有多个初态,DFA只有一个初态。 NFA的每条弧允许用*上的一个字作标记,DFA的每条弧只允许用上的一个字符作标记。 (3分)3.按照语法分析树的建立方法,可以把语法分析方法分为两类:自上而下分析法与自下而上分析法。 (2分)自上而下分析法面对的主要问题是:如何消除文法的左递归,以及在由文法的开始符出发推导句子的过程中如何避免回溯。 (2分)自下而上分析法面对的主要问题是:在由输入串出发向文法

19、的开始符归约的过程中,如何确定可归约子串(句柄或最左素短语)。 (1分)4.中间语言是一种面向语法,复杂性介于用高级语言书写的源程序和用机器语言表示的目标程序之间,是一种易于翻译成目标代码的代码形式。 (3分)中间语言的作用在于:利用它作为中间环节,不仅可以较快地实现源程序翻译过程,而且可在此基础上应用优化方法,将源程序翻译成为运行时间短、占用内存少的目标程序。 (2分)综合题1.构造一个DFA,它接受=a,b上所有包含ab的字符串。2.对文法G(S):S (L) | aS | aL L,S | S1 、消除左递归和回朔;2、构造各非终结符的FIRST和FOLLOW集合;3、构造预测

20、分析表。3.给出文法G(P)P bQbQ cRQ aR Qad该文法是不是算符优先文法,请构造算符优先关系表证实之。4.(1)有如下三地址码: read(n) i:=1fen:=1L1: if i<=n goto L2Goto L3L2: t1:=fen*i fen:=t1 i:=i+1goto L1L3: write (fen)将该代码段划分为基本块;并构造相应的程序流图。(2)对下列四元式序列生成目标代码:A:=B*CD:=E+FG:=A+DH:=G*2其中,H在基本块出口之后是活跃变量,R0和R1是可用寄存器。1构造一个DFA,它接受=a,b上所有包含ab的字符串。2对文法G(S)

21、:S (L) | aS | aL L,S | S1 、消除左递归和回朔;2、构造各非终结符的FIRST和FOLLOW集合;3、构造预测分析表。答:3给出文法G(P)P bQbQ cRQ aR Qad该文法是不是算符优先文法,请构造算符优先关系表证实之。答:对于文法G,计算它的每个非终结符的FIRSTVT和LASTVT集合:4(1)有如下三地址码:read(n)i:=1fen:=1L1: if i<=n goto L2Goto L3L2: t1:=fen*ifen:=t1i:=i+1goto L1L3: write (fen)将该代码段划分为基本块;并构造相应的程序流图。(2)对

22、下列四元式序列生成目标代码:A:=B*CD:=E+FG:=A+DH:=G*2其中,H在基本块出口之后是活跃变量,R0和R1是可用寄存器。解:1.构造一个最简的DFA,它接受=a,b上所有满足如下条件的字符串:所有b都有a直接跟在后面。得分2.设有文法G(X),该文法产生式为:X b | & | (Y)Y Y;X| X其中X为文法开始符号,b & ; ( )为终结符号(1)消除左递归和回朔(2)计算每个非终结符号的FIRST集和FOLLOW集(3)构造它的预测分析表3.设文法G(S):S SiA | AA A+B | BB )A* | (1、构造各非终结符的FIRSTVT和LAS

23、TVT集合;2、构造优先关系表和优先函数4.对以下程序(1) READ B(2) J:=1(3) A:=I+2(4) E:=I*J(5) D:=A+E(6) B:=D+B(7) If J>60 goto (10)(8) J:=J+1(9) goto (3)(10) WRITE B(11) halt(1)划分基本块,画出流图(2)对其中循环进行优化,画出优化后流图1构造一个最简的DFA,它接受=a,b上所有满足如下条件的字符串:所有b都有a直接跟在后面。答:(1)由以上正规式构造相应的NFA M'(4分)(2)用子集法对M'进行确定化,得到DFA M (4分)IIa =_C

24、LOSURE(J)Ib =_CLOSURE(J)x,1,y1,y21,y1,y1,y22-状态ab01211122-(3)把DFA M进行化简 (4分)把M状态集分为两组:终态结点0,1;非终态结点2考察0,1,因为,0,1a =1包含于0,1;0,1b=2包含于2;所以,0,1不可再分所以,最终把M分割为0,1,2。状态1代替状态0,把引向状态0的箭弧都引向状态1,把0消去,得到一个DFA M2设有文法G(X),该文法产生式为:X b | & | (Y)Y Y;X| X其中X为文法开始符号,b & ; ( )为终结符号(1)消除左递归(2)计算每个非终结符号的FIRST集和F

25、OLLOW集(3)构造它的预测分析表答:(1)消除左递归(4分)X b | & | (Y)Y XYY ;XY|(2)计算每个非终结符号的FIRST集和FOLLOW集(4分)FIRST( X )= b , & ,( ;FIRST( Y )= b , & ,( ;FIRST( Y)=; , ;FOLLOW(T)= ) ; FOLLOW (Y)= ) ;FOLLOW (X)= #, ; ;(3)构造它的预测分析表(4分)b&();#XX bX &X (Y)YYXYYXYYXYYY Y,XY3设文法G(S):S SiA | AA A+B | BB )A* | (1、构造各非终结符的FIRSTVT和LASTVT集合;2、构造优先关系表和优先函数答:(4分)(4分)(4分)4对以下程序(1) READ B(2) J:=1(3) A:=I+2(4) E:=I*J(5) D:=A+E(6) B:=D+B(7) If J>60 goto (10)(8) J:=J+1(9) goto (3)(10) WRITE B(11) halt(1)划分基本块,画出流图(2)对其中循环进行优化,画出优化后流图(1)划分基本块,画出流图(6分)(10) WRITE B(11) halt(8) J:=J+1(9) goto (3)(3) A:=I+2(4

温馨提示

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

评论

0/150

提交评论