《编译原理第七章练习题.docx》由会员分享,可在线阅读,更多相关《编译原理第七章练习题.docx(4页珍藏版)》请在第壹文秘上搜索。
1、d.等价变换规则d.程序变量d.a+b+c/d习题单项选择题1、中间代码生成所依据的是Oa.语法规则b.词法规则c.语义规则2、四元式之间的联系是通过实现的。a.指示器b.临时变量c.符号表3、后缀式ab+cd+/可用表达式来表示。a.a+b/c+db.(a+b)(c+d)c.a+b(c+d)4、表达式(1AVB)(CVD)的逆波兰表示为oa.-IABVCDVb.A-BVCDVAc.ABV-CDVAd.A-BVACDV5、中间代码的树型表示所对应的表达式为oa.A+B+C+Db.A+(B+C)+Dc.(A+B)+C+Dd.(A+B)+(C+D)6、四元式表示法的优点为oa.不便于优化处理,但便
2、于表的更动b.不便于优化处理,但节省存储空间c.便于优化处理,也便于表的更动d.便于表的更动,也节省存储空间7、终结符具有属性。a.传递b.继承c.抽象d.综合解答1、选c。2、四元式之间的联系是通过临时变量实现的,故选b。3、选b。4、选b。5、选d.6、四元式表示法的优点与间接三元式相同,故选c。7、选d。二、多顶选择题1、中间代码主要有Oa.四元式b.二元式c.三元式d.后缀式e.间接三元式2、下面中间代码形式中,能正确表示算术表达式a+b+c的有。a.ab+c+b.abc+3、在下面的语法制导翻译中,采用拉链回填技术。a.赋值语句b.goto语句c.条件语句d.循环语句4、下列中间代码
3、形式有益于优化处理。5、在编译程序中安排中间代码生成的目的是.a.三元式b.四元式c.间接三元式d.逆波兰表示法e.树形表示b.利于目标代码的优化d.利于目标代码的移植a.便于进行存储空间的组织c.利于编译程序的移植e.利于提高目标代码的质量6、下面的中间代码形式中,能正确表示算术表达式a+b*c题)a.ab+c*b.abc*+c.a+b*cd.7、三地址代码语句具体实现通常有表示方法。a.逆波兰表示b.三元式c.间接三元式d.树形表示e.四元式1、选a、cd、e。2、b、d的中间代码不能正确表示a+b+c,而e不是中间代码:故选a、c,3、凡涉及到跳转的语句都需要采用拉链回填技术,故选b、c
4、、do4、选b、Co5、选b、do6、选b、eo7、选b、c、eo三、填空题1、中间代码有等形式,生成中间代码主要是为了使2、语法制导翻译鼠可以用来产生代码,也可以用来产生指令,甚至可用来对输入串进行O3、当源程序中的标号出现“先引用后定义”时,中间代码的转移地址须持时才能确定,因而要进行O4、文法符号的属性有两种,一种称为,另一种称为o5、后缀式abcJ所代表的表达式是,表达式(a-b)*c可用后缀式表示。6、用一张辅以的办法来表示中间代码,这种表示法称为间接三元式。解答口1、逆波兰记号、树形表示、三元式、四元式目标代码的优化容易实现2、中间目标解释执行3、标号定义回填4、继承属性综合属性5
5、、a(b-c)ab-c*6、间接码表三元式表四、综合题1?给出下列表达式的逆波兰表示(后缀式):a*(-b+c)(AVB)(CV-DAE)2、写出算术表达式:A+B*(CD)+E/(C-D)tN的四元式序列;三元式序列;间接三元式序列解答1、 abc+*; ABVCD-IEAVA2、表达式的四元式序列:表达式的三元式序列间接三元式序列(1)(-,C,D,T1)(1)(-,C,D)(1)(1)(-,C,D)(2)(*B,Ti,T2)(2)(*,B,(1)(2)(2)(*,B,(1)(3)(+AT2,T3)(3)(+,A,(2)(3)(3)(+A(2)(4)(-,C,D,T4)(4)(-,C,D)(t,(1),N)(5)(t,T4,N,T5)(5)(t,(4),N)(E,(4)(6)(/,E,T5,T6)(/,E,(5)(+,(3),(5)(7)(+,T3,T6,T7)(+,(3),(6)(6)