《编译原理》考试试题及答案.pdf
《《编译原理》考试试题及答案.pdf》由会员分享,可在线阅读,更多相关《《编译原理》考试试题及答案.pdf(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 编锌原理 考锹被兼及答案(汇总)一、是非题(请在括号内,正确的划4错误的划X)(每个2分,共2 0分)1 .编译程序是对高级语言程序的解释执行。(X)2 .一个有限状态自动机中,有且仅有一个唯一的终态。(x)3.一 个算符优先文法可能不存在算符优先函数与之对应。(Y)4 .语法分析时必须先消除文法中的左递归。(x)5 .L R分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。(力6 .逆波兰表示法表示表达式时无须使用括号。(Y)7 .静态数组的存储空间可以在编译时确定。(x)8 .进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用。(x)9 .两个正
2、规集相等的必要条件是他们对应的正规式等价。(x)1 0 .一个语义子程序描述了一个文法所对应的翻译工作。(x)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共4 0分)1 .词 法 分 析 器 的 输 出 结 果 是。A.()单词的种别编码 B.()单词在符号表中的位置C.()单词的种别编码和自身值 D.()单词自身值2 .正 规 式M 1和M2等价是指 oA.()M l和M2的状态数相等 B.()M l和M2的有向边条数相等C.()M 1和M 2所识别的语集和券 D.()M l和M 2状态数和有向边条数相等3 .文法G:S x S x|y所 识 别 的 语
3、 言 是。A.()x y x B.()(x y x)*C.()x n y x n(n 0)D.()x*y x*4 .如果文法G是无二义的,则它的任何句子a。A.()最左推导和最右推导对应的语法树必定相同B.()最左推导和最右推导对应的语法树可能不同1C.()最左推导和最右推导必定相同D.()可能存在两个不同的最左推导,但它们对应的语法树相同5.构 造 编 译 程 序 应 掌 握。A.()源程序 B.()目标语言C.()编译方法 D.()以上三项都是6.四元式之间的联系是通过 实现的。A.()指示器 B.()临时变量C.()符号表 D.()程序变量7.表达式(1 AVB)A(CVD)的 逆 波
4、兰 表 示 为。A.0-ABVACDV B.()A-|BVCDVAC.()ABV-|CDVA D.()Aq BVACDV8.优化可生成 的目标代码。A.()运行时间较短 B.()占用存储空间较小C.()运行时间短但占用内存空间大 D.()运行时间短且占用存储空间小9.下列 优化方法不是针对循环优化进行的。A.()强度削弱 B.()删除归纳变量C.()删除多余运算 D.()代码外提10.编译程序使用 区别标识符的作用域。A.()说明标识符的过程或函数名B.()说明标识符的过程或函数的静态层次C.()说明标识符的过程或函数的动态层次D.()标识符的行号三、填空题(每空1分,共10分)1.计算机执行
5、用高级语言编写的程序主要有两种途径:解释_ 和 _编译2.扫描器是一诃法分析落,它接受输入的源程方;对源程序进行一词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。3.自上而下分析法采用 移进_、归约、错误处理、_ 接受等四种操作。4.一个LR分析器包括两部分:一个总控程序和_ 张分析及5.后缀式abc/所代表的表达式是_a/(b-c)_。6.局部优化是在基本块 范围内进行的一种优化。四、简 答 题(20分)1.简要说明语义分析的基本功能。答:语义分析的基本功能包括:确定类型、类型检查、语义处理和某些静态语义检查。2.考虑文法GS:S 一(T)|a+S|aT T,S|S消
6、除文法的左递归及提取公共左因子。解:消除文法GS的左递归:ST(T)I a+S I aTSTT f ST1 8提取公共左因子:S_(T)|aS,S一+S I T-srT f STI 3.试为表达式w+(a+b)*(c+d/(e-10)+8)写出相应的逆波兰表示。解:w ab+c d e l0-/+8+*+4.按照三种基本控制结构文法将下面的语句翻译成四元式序列:while(AC A Bl)C=C+l;else while(A D)A=A+2;解:该语句的四元式序列如下(其中E l、E2和 E3分别对应A C/B V D、A*和 AMD,并且关系运算符优先级高):31 0 0 (j ,A,C,1
7、 0 2)1 0 1 (j,_,_,1 1 3)1 0 2 (j ,B,D,1 0 4)1 0 3 G,_,_,1 1 3)1 0 4 (j=,A,1,1 0 6)1 0 5 0,_,_,1 0 8)1 0 6 (+,C,1,C)1 0 7 U,_,_,1 1 2)1 0 8 U a A d|a A b|判断该文法是否是SL R(l)文法,若是构造相应分析表,并对输入串ab#给出分析过程。解:增加一个非终结符S/后,产生原文法的增广文法有:S1-AA-aAd|aAb|e4下面构造它的L R(O)项目集规范族为:彳号abd#AIo:A-BaAdA-*aAbL:A-a*AdA f a AbA-*a
8、AdA-*aAbII:Ii:s/accIo:A 3 a AdA玲a AbA aA dA-*I:L:A-aA*dAaAbIs:A-aA*dA-aA*bI:A-aAbIs:A-aAd-I:A今aAbIs:AaAd*从上表可看出,状态1 0 和 1 2 存在移进-归约冲突,该文法不是L R(0)文法。对于1 0 来说有:F O L L O W(A)n a=b,d,#n a=0,所以在1 0 状态下面临输入符号为a 时移进,为 b,d,#时归约,为其他时报错。对于1 2 来说有也有与1 0 完全相同的结论。这就是说,以上的移进-归约冲突是可以解决的,因此该文法是SL R(l)文法。其 SL R(l)分
9、析表为:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _状态ACTIONGOTOabd#A0S2Xir-r511acc2ScXir2r333SS54r2r:r:r25XiXiXiXi对输入串ab#给出分析过程为:5步骤状态栈符号栈输入串AC T I O NG O T O10#ab#S:20 2#ab#r5330 2 3#aAb#S40 2 3 4#aAb#150
10、1#A#acc一、是非题:1 .个上下文无关文法的开始符,可以是终结符或非终结符。2 .一个句型的直接短语是唯一的。3 .已经证明文法的二义性是可判定的。4 .每个基本块可用一个D AG 表示。5.每个过程的活动记录的体积在编译时可静态确定。6.2型文法一定是3型文法。7.一个句型一定句子。8.算符优先分析法每次都是对句柄进行归约。X9.采用三元式实现三地址代码时,不利于对中间代码进行优化。1 0 .编译过程中,语法分析器的任务是分析单词是怎样构成的。1 1 .一个优先表一定存在相应的优先函数。X1 2 .目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。1 3 .递归下降分析法是一种自
11、下而上分析法。1 4 .并不是每个文法都能改写成L L(D文法。1 5.每个基本块只有一个入口和一个出口。1 6.一个L L(1)文法一定是无二义的。1 7.逆波兰法表示的表达试亦称前缀式。1 8.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。1 9.正规文法产生的语言都可以用上下文无关文法来描述。2 0 .一个优先表一定存在相应的优先函数。2 1 .3型文法一定是2型文法。2 2 .如果一个文法存在某个句子对应两棵不同的语法树,则文法是二义性的。答案:1.X 2.X 3.X 4.V 5.V 6.X 7.X 8.X1 1.X 1 2.V 1 3.X 1 4.V()()()()()()
12、()()()()()()()()()()()()()()()()9.V 1 0.X1 5.V 1 6.V 1 7.X 1 8.V 1 9.V 2 0.X 2 1.V 2 2.V二、填空题:2 .编译过程可分为(词法分析),(语法分析),(语义分析与中间代码生成),(优化)和(目标代码生成)五个阶段。3 .如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是(二义性的)。4 .从功能上说,程序语言的语句大体可分为(执行性)语 句 和(说明性)语句两大类。5 .语法分析器的输入是(单词符号),其输出是(语法单位)。6 .扫描器的任务是从(源程序中)中识别出一个个(单词符号)o7 .符号表中
13、的信息栏中登记了每个名字的有关的性质,如(类型、种属、所占单元大小、地址)等等。8 .一个过程相应的D I S P LA Y 表的内容为(现行活动记录地址和所有外层最新活动记录的地址)1 0 .常用的两种动态存贮分配办法是(栈式)动态分配和(堆式)动态分配。1 1 .一个名字的属性包括(类型)和(作用域)。1 2 .常用的参数传递方式有(传地址),(传值),(传名)613.根据优化所涉及的程序范围,可将优化分成为(局部优化),(循环优化),(全局优化)三个级另(I。14.语法分析的方法大致可分为两类,一 类 是(自上而下)分析法,另一 类 是(自下而上)分析法。15.预测分析程序是使用一张(分
14、析表)和 一 个(符 号 栈)进行联合控制的。17.一张转换图只包含有限个状态,其中有一个被认为是(初)态;而且实际上至少要有一个(终)态。19.语法分析是依据语言的(语 法)规则进行。中间代码产生是依据语言的(语义)规则进行的。21.一个文法G,若它的预测分析表M不含多重定义,则该文法是(LL(1)文法)文法。22.对于数据空间的存贮分配,FORTRAN采用(静态策略,PASCAL采用(动态)策略。24.最右推导亦称为(规范推导),由此得到的句型称为(规范)句型。26.对于文法G,仅含终结符号的句型称为(句 子)。27.所谓自上而下分析法是指(从开始符号出发,向下推导,推出句子)29.局限于
15、基本块范围的优化称(局 部 优 化)031.2 型文法又称为(上下文无关)文法;3 型文法又称为(正 则)文法。32.每条指令的执行代价定义为(指令访问主存次数加1)33.算符优先分析法每次都是对(最左素短语)进行归约。三、名词解释题:1.局部优化-局限于基本块范围的优化称。2.二义性文法-如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义性文法。3.DISPLAY表一一过程的嵌套层次显示表,记录该过程的各外层过程的最新活动记录的起始地址。5.最左推导-任何一步a=B都是对a 中的最右非终结符替换。6.语法-组规则,用它可形成和产生一组合式的程序。7.文法-描述语言的语法结构的形
16、式规则。8.基本块-指程序中一顺序执行的语句序列,其中只有一个入口和一个出口,入口就是其中的第一个语句,出口就是其中的最后一个语句。9.语法制导翻译-在语法分析过程中,根据每个产生式所对应的语义子程序进行翻译的办法叫做语法制导翻译。10.短语-令 G是一个文法,S划文法的开始符号,假定a B 3 是文法G的一个句型,如果有a A 8 且P,则称B是句型a p 5 相对非终结符A的短语。11.待用信息-如果在个基本块中,四元式i 对 A定值,四元式j 要引用A值,而 从 i 到 j 之间没有A的其它定值,则称j 是四元式i 的变量A的待用信息。12.规范句型-由规范推导所得到的句型。13.扫描器
17、-执行词法分析的程序。14.超前搜索-在词法分析过程中,有时为了确定词性,需超前扫描若干个字符。15.句柄-个句型的最左直接短语。16.语法制导翻译-在语法分析过程中,根据每个产生式所对应的语义程序进行翻译的方法叫做语法制导翻译。17.规范句型-由规范推导所得到的句型。18.素短语-素短语是指这样一个短语,至少含有一个终结符,并且,除它自身外不再含任何更小的素短语。19.语法-是组规则,用它可形成和产生一个合式的程序。_20.待用信息-如果在一个基本块中,四元式i 对 A定值,位元式j 要引用A值,而 从 i 到 j 之间没有A的其它定值,则称j 是四元式i 的变量A的待用信息。21.语义-定
18、义程序的意义的一组规则。四、简答题:71 .写一个文法G,使其语言为不以0开头的偶数集。2 .已知文法G(S)及相应翻译方案S a A b (p r i n t T”S *a p r i n t 2 A-A S p r i n t 3”A-*c p r i n t 4 输入a c a b,输出是什么?3 .已知文法G(S)S-*b A aA -(B|aB A a)写出句子b(a a)b 的规范归约过程。4 .考虑下面的程序:p r o c e d u r e p(x,y,z);b eginy:=x+y;z:=z*z;en db eginA:=2;B:=A*2;P(A,A,B);P r in t
19、 A,Ben d.试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出A,B 的值是什么?5 .文法G(S)S-dABA-*a A|aB-Bb|描述的语言是什么?6 .证 明 文 法 G(S)S-*S a S|是二义性的。7 .已知文法G(S)S-BAA-BS l dB-a A|b S|c的预测分析表如下abcd甘sS-BAS-BAS-BAAA-BSA-BSA-BSA-dBB-a AB-b SB-c给出句子a dc c d的分析过程。8 .写一个文法 G,使其语言为 L(G)=a,bmc,anbn|1=0,m=l,n=2 89.已知文法G 法):S-a:(T)T-T,S|S的优先关系表
20、如下:关系a()a-.(.请计算出该优先关系表所对应的优先函数表。1 0 .何谓优化?按所涉及的程序范围可分为哪几级优化?1 1 .目标代码有哪儿种形式?生成目标代码时通常应考虑哪几个问题?1 2 .一字母表X =a,b ,试写出上所有以a为首的字组成的正规集相对应的正规式。1 3 .基本的优化方法有哪几种?1 4 .写一个文法G,使其语言为L(G)=a bnc|n 0 1 5 .考虑下面的程序:p r o c edu r e p(x,y,z);b eginy:=y+z;z:=y*z+xen d;b egina:=2;b:=3;P (a+b,b,a);p r in t aen d.试问,若参数
21、传递的方式分别采用传地址和传值时,程序执行后输出a的值是什么?1 6 .写出表达式a+b*(c-d)/e的逆波兰式和三元序列。1 7 .证明文法G(A)A-AA|(A)|e是二义性的。1 8 .令X =a,b ,则正规式a*b|b*a 表示的正规集是什么?1 9.何谓D I S P L AY 表?其作用是什么?2 0 .考虑下面的程序:p r o c edu r e p(x,y,z);b eginy:=y+2;z:=z+x;en db egina:=5;b:=2;P (a+b,a-b,a);p r in t a9en d.试问,若参数传递的方式分别采用传地址和传值时,程序执行后输出a的值是什么
22、?2 1.写一个文法6,使其语言为1&)=1 1)%”|n 0 为奇数,m 0 为偶数2 2 .写出表达式a:=(b+c)*e+(b+c)/f的逆波兰式和三元序列。2 3 .一个文法G 别是L L(1)文法的充要条件是什么?2 4 .已知文法G S S f S*a F|a F I*a FF-+a F|+a消除文法左递归和提公共左因子。2 5 .符号表的作用是什么?符号表查找和整理技术有哪几种?答案:1.所求文法是G S:S-AB|B AOA-AD|CB-*2|4|6|8C-l|3|5|7 9 BD-0|C2.输出是4 2 3 13.句子b(a a)b 的规范归约过程:步骤符号栈输入串动作0#b
23、(aa)b#预备1#b(aa)b#移进2#b(aa)b#移进3#b(aa)b#移进4#b(Aa)b#归约5#b(Ma)b#移进6#b(Ma)b#移进7#b(Bb#归约8#bAb#归约9#bAb#移进10#S#接受4.传地址 A=6,B=1 6传值 A=2,B=45.L(G)=da b n 0,m 2 0 6.证明:因为文法G S 存在句子a a 有两个不同的最左推导,所以文法G S 是是二义性的。S=S a S=S a S a S=a S a S=a a S=a aS=S a S=a S=a S a S=a a S=a a7.句 子 a dc c d的分析过程:10步骤符号栈输入串产生式0#s
24、a dc c d#1#ABa dc c d#S-*BA2#AAaa dc c d#B-a A3#AAdeed#4#Addeed#A f d5#Ac c d#6#S Bc c d#A-B S7#S cc c d#B f c8#Sc d#9#ABc d#Bc1 0#Acd#1 1#Ad#1 2#dd#A-d1 3U8.所求文法是G S:S-A BA-a Ac|DD-b D|bB-a Bb|a a b b函数a()f4244g55231 0.优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。三种级别:局部优化、循环优化、全局优化1 1 .目标代码通常采用三种形式:机器语言
25、,汇编语言,待装配机器语言模块。应着重考虑的问题:(1)如何使生成的目标代码较短;(2)如何充分利用寄存器,以减少访问内存次数;(3)如何充分利用指令系统的特点。1 2 .正规式 a (a|b )*(A)A=()A=()A=A A=A=(A)=()111 8 .(a*b I b*a)=a,b,a b,b a,a a b,b b a.1 9 .D i s p l a y表:嵌套层次显示表由于过程嵌套允许内层过程引用外层过程定义的数据,因此,当一个过程运行时必须跟踪它的所有外层过程的最新活动记录起始地址,d i s p l a y表就是用于登记每个外层过程的最新活动记录起始地址。2 0 .传 地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 编译 原理 考试 试题 答案
限制150内