77范文网 - 专业文章范例文档资料分享平台

《编译原理》期中及期末习题(7)

来源:网络收集 时间:2018-12-09 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

(1)构造文法G的LR(1)项目集规范族和GO函数。 (2)构造G的LR(1)分析表。

5

※<习题五>

第五章 中间代码生成

5.1 单项选择题

1.中间代码生成时所依据的是—。

a.语法规则 b.词法规则 c.语义规则 d.等价变换规则 2.四元式之间的联系是通过___实现的。

a.指示器 b.临时变量 c.符号表 d.程序变量 3.后缀式ab+cd+/可用表达式___来表示。(陕西省1999年自考题) a. a+b/c+d b. (a+b)/(c+d) c. a+b/(c+d) d. a+b+c/d 4.间接三元式表示法的优点为_。(陕西省1998年自考题)

a.采用间接码表,便于优化处理 b.节省存储空间,不便于表的修改 c.便于优化处理,节省存储空间 d.节省存储空间,不便于优化处理 5.表达式(A∨B)∧(C∨D)的逆波兰表示为_。(陕西省1998年自考题) a.┐AB∨∧CD∨ b. A┐B∨CD∨∧

c. AB∨┐CD∨∧ d. A┐B∨∧CD∨ 6.中间代码的树型表示 所对应的表达式为___。(陕西省1998年自考题) a. A+B+C+D b. A+(B+C)+D c.(A+B)+C+D d. (A+B)+(C+D) 7.四元式表示法的优点为_。(陕西省1997年自考题)

a.不便于优化处理,但便于表的更动b.不便于优化处理,但节省存储空间 c.便于优化处理,也便于表的更动d.便于表的更动,也节省存储空间 8.终结符具有_属性。

a.传递 b.继承 c.抽象 d.综合

9.有文法G及其语法制导翻译如下所示(语义规则中的*和+分别是常规意义下的算术运算符):

E→E'∧T{E.val:=E'.val*T.val} E→T{E.val:=T.val}

T→T'#n{T.val:=T'.val+n.val} T→n {T.val:=n.val;} 则分析句子1∧2∧3#4其值为_。 (西安电子科大2000年研究生试题)

a. 10 b. 34 c. 14 d. 54

10.表达式(a+b)*c的后缀式表示为_。

a. ab*c+ b. abc*+ c. ab+e* d. abc+*

11.后缀式_对应的表达式是a-(-b)*c(@代表后缀式中的求负运算符)。 a. a-b@c*、b. ab@.c. ab@c-* d, ab@c*- 12.使用___可以把Z=(X+0.418)*YNV翻译成四元式序列。(陕西省1999年自考题) a.语义规则 b.等价变换规则 c.语法规则 d.词法规则 13.采用右结合规则时,a+b*c+d可解释为_(假设*的优先级高于+)。

(陕西省2000年自考题)

a. (a+(b*c))+d b. a+((b*c)+d) c. a+d+(b*c) d. (b*c)+a+d 14.更动一张_表很困难。(陕西省2000年自考题)

a.三元式 b.间接三元式 c.四元式 d.三元式和四元式

15.有一语法制导翻译如下所示: (西安电子科大1999年研究生试题) S→bAb {print\ A→(B {print\ A→a {print\ B→Aa) {print\

若输入序列为b(((aa)a)a)b,且采用自下而上的分析方法,则输出序列为_。 a. 32224441 b. 34242421 c. 12424243 d. 34442212 5.2 多项选择题

1.中间代码主要有___。

a.四元式 b.二元式 c.三元式 d.后缀式 e.间接三元式

2.下面中间代码形式中,能正确表示算术表达式a+b+c的有_。(陕西省1997年自考题)

3.在下面的_语法制导翻译中,采用拉链一回填技术。

a.赋值语句 b.布尔表达式的短路计算 c. goto语句 d.条件语句 e.循环语句

4.下列___中间代码形式有益于优化处理。(陕西省1997年自考题) a.三元式 b.四元式 c.间接三元式 d.逆波兰表示法 e.树形表示法

5.在编译程序中安排中间代码生成的目的是_。

a.便于进行存储空间的组织 b.利于目标代码的优化 c.利于编译程序的移植 d.利于目标代码的移植 e.利于提高目标代码的质量

6.下面的中间代码形式中,_能正确表示算术表达式a+b*c。(西省2000年自考题)

7.三地址代码语句具体实现通常有_表示方法。

a.逆波兰表示 b.三元式 c.间接三元式 d.树形表示 e.四元式 5.3 填空题

1.中间代码有______等形式,生成中间代码主要是为了使______。

2.语法制导翻译既可以用来产生_代码,也可用来产生_指令,甚至可用来对 输入串进行。(陕西省1999年自考题)

3.当源程序中的标号出现“先引用后定义”时,中间代码的转移地址须待____时才能 确定,因而要进行____。(陕西省1998年自考落)

4.文法符号的属性有两种,一种称为____,另一种称为_____。

5.后缀式abc-/所代表的表达式是_,表达式(a-b)*c可用后缀式_表示。 (陕西省2000年自考题)

6.用一张______辅以_____的办法来表示中间代码,这种表示法称为间接三元式。

7.在语法分析中,根据每个产生式对应的语义子程序进行____的办法叫做____。

(陕西省1998年自考题) 8.对+、*采用左结合习惯,对乘幂↑个采用右结合习惯,则E1+E2+E3可解释成_, 而E1↑E2↑E3可解释成_。(陕西省1997年自考题)

9.在语法树中,一个结点的综合属性的值由其_的属性值确定,而继承属性则由该 结点的_的某些属性确定。

10.对某个压缩了的上下文无关文法,当把每个文法符号联系于,且让该文法的规 则附加以_时,称该文法为属性文法。

11.语法制导的翻译程序能够同时进行_____和______。 5.4 判断题

1.一个语义子程序描述了一个文法所对应的翻译工作。() 2.逆波兰表示法表示表达式时无须使用括号。 ()

3.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化。() 4.三地址语句类似于汇编语言代码,可以看成中间代码的一种抽象形式。() 5.非终结符可以有综合属性,但不能有继承属性。() 6.程序中的表达式语句在语义翻译时不需要回填技术。() 7.在编译阶段只对可执行语句进行翻译。()

8.无论是三元式表示还是间接三元式表示的中间代码,其三元式在三元式表中的位置一

旦确定就很难改变。(陕西省1998年自考题)()

9.对中间代码的产生而言,目前还没有一种公认的形式系统。() 10.三元式出现的先后顺序和表达式各部分的计值顺序并不一致。()

11.自上而下分析的一个优点是:在一个产生式的中间就可以调用语义子程序。() 12.终结符只有继承属性,它们由词法分析器提供。() 13.翻译算术表达式语句时需要用到回填技术。()

14.程序中不允许标号先引用后定义。() 5.5 综合题

5.5 .1 (哈工大2000年研究生试题) 叙述下列概念:

(1)语法制导翻译 (2)翻译文法 (3)语义子程序

5.5.2 (武汉大学1999年研究生试题)

何谓“语法制导翻译(SDTS)”?试给出用SDTS生成中间代码的要点,并用一简例予以说明。

5.5.3 给出下列表达式的逆波兰表示(后缀式): ①a*(-b+c)

②(A∨)∧(C∨┐D∧E)

③if (x+y)*Z=5 then x:=(a+b)↑c else y:=a↑b↑ c 5.5.4 写出算术表达式:A+B*(C-D)+E/(C-D)↑N的

①四元式序列;②三元式序列;③间接三元式序列;④树形表示 5.5.5 (清华大学1999年研究生试题)

令S.val为文法G[S]生成的二进制数的值,例如对输入串101.101则S.val=5.625。按照语法制导翻译方法的思想,给出计算S.val的相应的语义规则。 G[S]:S-L.L|L L→LB|B B→0|1

5.5.6 (清华大学2000年研究生试题)

现有文法G1、G2如下,欲将G1定义的expression转换成如、G2的E所描述的形式。给出其语法制导翻译的语义描述。(提示:可采用类似yacc源程序的形式,所涉及的语义函数须用自然语言给予说明,不用抄写产生式,用产生式编号表示)。 G1:(1):begin end. (2)→var (3),id: (4)→id: (5)→int (6)→bool (7)

(8) (9) and (10)* (11)→id (12)→num (13)→true (14)→false 要求:(1) 中的id必须在中先声明。

(2)and和*分别是常规的布尔和算术运算符,要求其运算对象的相应类型匹配, G2:E→EE*|EE and|id|num|true|false 5.5.7 下面的文法生成变量的类型说明: D→id L L→,id L|:T T→integer|real

试构造一个翻译方案,仅使用综合属性,把每个标识符的类型填入符号表中(对所用到 的过程,仅说明功能即可,不必具体写出)。

5.5.8 已知文法G及每个产生式相应的语义子程序如下:

(1)E→i {E·TC: =NXQ; E·FC:=NXQ+1:GEN (jnz, ENTRY(i), ,0);

GEN (j,_,_,0)}/*NXQ指针总是指向下一个将要形成的四元式的地址(编号); GEN过程把四元式(OP, ARG1,ARG2,RESULT)填入四元式表中*/

(2)E→i(1)ropi(2) {E·TC: =NXQ; E·FC:=NXQ+1:GEN(jrop, ENTRY(i(1)),ENTRY(i(2)),0);

GEN (j,_,_,0)}/*jrop是根据关系符rop而定义的一条件转移指令*/ (3)E→(E(1)) {E·TC:=E(1)·TC;E·FC:=E(1)·FC} (4)E→┐E(1) {E·TC:=E(1)·FC;E·FC:=E(1)·TC}

(5)EA→E(1)∧{BACKPATCH(E(1)·TC,NXQ);EA·FC:=E(1)·FC}

/*BACKPATCH过程将NXQ的当前值填入E(1)·TC所指四元式的第四区段*/ (6)E→EAE(2) {E·TC:=E(2)·TC;E·FC: =MERG(EA·FC,E(2)·FC)}

/*MERG函数将EA·FC和E(2)·FC两条链合并,并以EA·FC作为链首*/ (7)E0→E(1)∨{BACKPATCH(E(1)·FC,NXQ);E0·TC:=E(1)·TC} (8)E→E0E(2) {E·FC:=E(2)·FC;E·TC:=MERG(E0·TC, E(2)·TC} 5.5.9 赋值语句的文法及语义动作描述如下: (1)A→:=E {GEN(:=,E·PLACE,_ ,ENTRY(i))}

(2)E→E(1)+E(2) {E·PLACE:=NEWTEMP:GEN(+,E(1))·PLACE,E(2)·PLACE,E·PLACE)} (3)E→E(1)*E(2) {E·PLACE:=NEWTEMP:GEN(*,E(1)·PLACE,E(2)·PLACE,E·PLACE)} (4)E→-E(1) {E·PLACE:=NEWTEMP:GEN(@,E(1)·PLACE,_,E·PLACE)} (5)E→(E(1) {E·PLACE:= E(1)·PLACE} (6)E→i {E·PLACE:=ENTRY(i)}

写出赋值语句X:=-B*(C+D)+A的自下而上的语法制导翻译过程。 5.6.0 (1)写出Pascal语言的repeat语句; repeat

S1;S2;…;Sn until. E;

的文法及对应的语义子程序(注:E为条件表达式); (2)按构造好的文法分析并翻译语句: repeat x:=x+l until x>5; 5.6.1 写出翻译过程调用语句的语义子程序。要求生成的四元式序列在转子指令之前的参

数四元式par按反序出现(与实在参数的顺序相反),问这种情况下在翻译过程调用语句时是否需要语义变量(队列)QUEUE呢?

5.6.2 (国防科大2001年研究生试题) 设某语言的while语句的语法形式为: S→while E do S(l) 其语义解释如图5.8所示。

(1)写出适合语法制导翻译的产生式。

(2)写出每个产生式对应的语义动作。

5.6.3 (国防科大1999年研究生试题)

条件式if E(l) then E(2) else E(3)的语义解释为:若布尔式E(l)为真,则条件表达式值取E(2)的值;否则条件表达式值取E(3)的值。

(1)写出if E(l) then E(2) else E(3)的适合语法制导翻译的产生式及相应语义子程序。 (2)按(1)中的语义子程序把

a:=if x>0 then x+1 else x+2; 翻译为四元式序列。

5.6.4 (哈工大2000年研究生试题) 设for语句的形式为:

for V=El step E2 until E3 do S

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《编译原理》期中及期末习题(7)在线全文阅读。

《编译原理》期中及期末习题(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/354857.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: