一、简答题(40 分)
1.编译程序分哪几个主要部分?各部分的主要功能是什么?
2.描述 LR 语法分析算法。
3.解释语法制导翻译。
4.L(G)={a
n
b
n
︱n≥1},试求上下文无关文法 G。
5.C 语言活动记录的结构是怎样的?
二、(15 分)已知正规式(a|b)
*
(aa|bb)(a|b)
*
构造其 NFA,并将其确定化, 最小化。
三、(15 分)
证明下面文法消除左递归后是 LL(1)文法。
E→E+T︱T
T→T*F︱F
F→(E)︱i
四、(15 分)
用语法制导翻译的思想,把下面的语句翻译成三地址码序列。
While a<c and b<d do if a=1 then c=c+1 else c=c+2
五.(15 分)对基本块 B:
T0= 2
T1= 2*T0
T2= A+B
T3= C*D
T4= T1/2
T5= E+T3
T6= C*D
R= T3
X= T2 T5﹣
Y= T1*T6
R= X
1.构造 B 的 DAG 图
2.若只有 R 在 B 出口之后是活跃的,写出优化之后的中间代码。若有寄存器 R0,R1 可用,将优化
之后的中间代码生成目标代码。
评论0