编译原理第七章练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7节习题
一、单项选择题
1、中间代码生成所依据的是。
a.语法规则
b.词法规则
c.语义规则
d.等价变换规则
2、四元式之间的联系是通过实现的。
a.指示器
b.临时变量
c.符号表
d.程序变量
3、后缀式ab+cd+/可用表达式来表示。
a.a+b/c+d
b.(a+b)/(c+d)
c.a+b/(c+d)
d.a+b+c/d
4、表达式(┓A∨B)∧(C∨D)的逆波兰表示为。
a. ┓AB∨∧CD∨
b. A┓B∨CD∨∧
c. AB∨┓CD∨∧
d. A┓B∨∧CD∨
5
所对应的表达式为。
a.A+B+C+D
b.A+(B+C)+D
c.(A+B)+C+D
d.(A+B)+(C+D)
6、四元式表示法的优点为。
a.不便于优化处理,但便于表的更动
b.不便于优化处理,但节省存储空间
c.便于优化处理,也便于表的更动
d.便于表的更动,也节省存储空间
7、终结符具有属性。
a.传递
b.继承
c.抽象
d.综合
解答
1、选c。
2、四元式之间的联系是通过临时变量实现的,故选b。
3、选b。
4、选b。
5、选d。
6、四元式表示法的优点与间接三元式相同,故选c。
7、选d。
二、多顶选择题
1、中间代码主要有。
a.四元式b.二元式c.三元式d.后缀式e.间接
三元式
2、下面中间代码形式中,能正确表示算术表达式a+b+c 的有 。 a .ab+c+ b .abc++ e .a+b+c
3、在下面的 语法制导翻译中,采用拉链-回填技术。 a .赋值语句 b .goto 语句 c .条件语句 d .循环语句
4、下列 中间代码形式有益于优化处理。 a .三元式 b .四元式 c .间接三元式 d .逆波兰表示法 e .树形表示
法
5、在编译程序中安排中间代码生成的目的是 。 a .便于进行存储空间的组织 b .利于目标代码的优化
c .利于编译程序的移植
d .利于目标代码的移植
e .利于提高目标代码的质量 6、下面的中间代码形式中, 能正确表示算术表达式
a .ab+c*
b .abc*+
c .a+b*c
7、三地址代码语句具体实现通常有 表示方法。 a .逆波兰表示 b .三元式 c .间接三元式 d .树形表示
e .四元式
解答
1、选a 、c 、d 、e 。
2、b 、d 的中间代码不能正确表示a+b+c ,而e 不是中间代码:故选a 、c 。
3、凡涉及到跳转的语句都需要采用拉链——回填技术,故选 b 、c 、d 。
4、选b 、c 。
5、选b 、d 。
6、选b 、e 。
7、选b 、c 、e 。
三、填空题
1、中间代码有等形式,生成中间代码主要是为了使。
2、语法制导翻译既可以用来产生代码,也可以用来产生指令,甚至可用来对输入串进行。
3、当源程序中的标号出现“先引用后定义”时,中间代码的转移地址须持时才能确定,因而要进行。
4、文法符号的属性有两种,一种称为,另一种称为。
5、后缀式abc-/所代表的表达式是,表达式(a-b)*c可用后缀式表示。
6、用一张辅以的办法来表示中间代码,这种表示法称为间接三元式。
解答
1、逆波兰记号、树形表示、三元式、四元式目标代码的优化容易实现
2、中间目标解释执行
3、标号定义回填
4、继承属性综合属性
5、a/(b-c) ab-c*
6、间接码表三元式表
四、综合题
1、给出下列表达式的逆波兰表示(后缀式):
①a*(-b+c)
②(A∨B)∧(C∨┑D∧E)
2、写出算术表达式:A+B*(C-D)+E/(C-D)↑N的
①四元式序列;②三元式序列;③间接三元式序列
解答1、
①ab@c+*;
②AB∨CD┑E∧∨∧
2、
①表达式的四元式序列:②表达式的三元式序列③间接三元式序列
(1)(-,C,D,T1) (1)(-,C,D) ⑴(1)(-,C,D)
(2)(*,B,T1,T2) (2)(*,B,(1)) ⑵(2)(*,B,(1))
(3)(+,A,T2,T3) (3)(+,A,(2)) ⑶(3)(+,A,(2))
(4)(-,C,D,T4) (4)(-,C,D) ⑴⑷(↑,(1),N)
(5)(↑,T4,N,T5) (5)(↑,(4),N) ⑷⑸(/,E,(4))
⑹(/,E,T5,T6) ⑹(/,E,(5)) ⑸⑹(+,(3),(5))
⑺(+,T3,T6,T7) ⑺(+,(3),(6))⑹