当前位置:首页 > 编译原理试题汇总+编译原理期末试题(8套含答案+大题集)(完整资料).doc
102: t3:=5+t2 (2)100: j:=1
101: if j>10 goto NEXT 102: i:=j+j 103: a[i]:=0
2. 设基本块p由如下语句构成:
T 0 : =3.14;
T 1 :=2*T 0 ;
T 2 :=R+r;
A:=T l *T 2 ; B:=A;
T 3 :=2*T 0 ;
T 4 :=R+r;
T 5 :=T 3 *T 4 ;
T 6 :=R-r ;
B:=T 5 *T 6 ;
试给出基本块p的 DAG 。
解:基本块p的DAG图:
3. 写出表达式(a+b)/(a-b-(a+b*c)的三元序列及四元序列。
解:(1)三元式: ①(+,a,b) ②(-,a,b) ③(/,①,②)
④(*,b,c) ⑤(+,a,④) ⑥(-,③,⑤) (2)四元式: ①(+,a,b,T1) ②(-,a,b,T2) ③(/,T1,T2,T3) ④(*,b,c,T4) ⑤(+,a,T4,T5) ⑥(-,T3,T5,T6)
4. 写一个文法使其语言为偶数集,且每个偶数不以0开头。
解:文法G(S): S→AB|B|A0 A→AD|C B→2|4|6|8 C→1|3|5|7|9|B D→0|C
5. 设文法 G ( S ):
S→S + aF|aF| + aF
F→*aF|*a
(1)消除左递归和回溯;
(2)构造相应的 FIRST 和 Follow 集合。 1)
S->aFS'|+aFS' S'->+aFS'|ε F->*aF' F'->F|ε (2)
FIRST(S)={a,+} FOLLOW(S)={#} FIRST(S')={+,ε } FOLLOW(S')={#} FIRST(F)={*} FOLLoW(F)=(+,#} FIRST(F')={*,ε} FOLLOW(+,#}
五.计算题(10分)
已知文法为:
S->a|^|(T)
T->T,S|S
构造它的 LR(0)分析表。
解:加入非终结符S',方法的增广文法为: S'->S S->a S->^ S->(T) T->T,S
T->S 下面构造它的LR(0)项目集规范族为:
共分享92篇相关文档