欢迎来到天天文库
浏览记录
ID:33975573
大小:1.30 MB
页数:33页
时间:2019-03-03
《[工学]《编译原理》课程复习》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《编译原理》课程复习五、计算题:1、考虑下面程序 ………… Vara:integer; ProcedureS(X); VarX:integer; Begin a:=a+1; X:=a+X End; Begin a:=5; S(a); Print(a) End. 试问:若参数传递方式分别采取传名和传值时,程序执行后输出a的值是什么?答:传名:a=12 传值:a=62、写出表达式(a+b*c)/(a+b)-d的逆波兰表示及三元式序列。 逆波兰表示: abc*+ab+/
2、d- 三元式序列: ①(*,b,c) ②(+,a,①) ③(+,a,b) ④(/,②,③) ⑤(-,④,d)3、已知文法G(S) S→a
3、∧
4、(T) T→T,S
5、S 写出句子((a,a),a)的规范归约过程及每一步的句柄。 句型 归约规则 句柄 ((a,a),a) S→a a ((S,a),a) T→S S ((T,a),a) S→a a ((T,S),a) T→T,S T,S ((S),a)
6、 T→S S ((T),a) S→S(T) (T) (S,a) T→S S (T,a) S→a a (T,S) T→T,S T,S (T) S→(T) (T) S 4、写一个文法,使其语言是奇数集,且每个奇数不以0开头。解:文法G(N): N→AB
7、B A→AC
8、D B→1
9、3
10、5
11、7
12、9 D→B
13、2
14、4
15、6
16、8 C→0
17、D5、设文法G(S): S→(L)
18、aS
19、a
20、 L→L,S
21、S (1)消除左递归和回溯; (2)计算每个非终结符的FIRST和FOLLOW;(3)构造预测分析表。解: S→(L)
22、aS’ S’→S
23、ε L→SL’ L’→SL’
24、ε FIRST)S)={(,a} FOLLOW(S)={#,,,)} FIRST(S’)={,a,ε} FOLLOW(S’)={#,,,)} FIRST(L)={(,a} FOLLOW(L)={)} FIRST(L’)={,,ε} FOLLOW(L’)={}}6、
25、While a>0∨b<0 do Begin X:=X+1; ifa>0thena:=a-1 elseb:=b+1 End; 翻译成四元式序列。 解: (1)(j>,a,0,5) (2)(j,-,-,3) (3)(j<,b,0,5) (4)(j,-,-,15) (5)(+,×,1,T1) (6)(:=,T1,-,×) (7)(j>,a,0,9) (8)(j,-,-,12) (9)(-,a,1,T2) (10)(:=,T2,-,a) (11)(j
26、,-,-,1) (12)(+,b,1,T3) (13)(:=,T3,-,b) (14)(j,-,-,1) (15)7、已知文法G(E)E→T
27、E+TT→F
28、T*FF→(E)
29、i(1)给出句型(T*F+i)的最右推导及画出语法树;(2)给出句型(T*F+i)的短语、素短语。解:(1)最右推导: E→T→F→(E)→(E+T)→(E+F)→(E+i)→(T+i)→(T*F+i)(2)短语:(T*F+i),T*F+i,T*F,i 素短语:T*F,i8、设布尔表达式的文法为E→E(1)∨E(2)E→E(1)∧E(2)E→i假定它们将用于条件控制语句中,请
30、(1)改写文法,使之适合进行语法制导翻译和实现回填;(2)写出改写后的短个产生式的语义动作。解:(1)E0→E(1) E→E0E(2) EA→E(1) E→EAE(2) E→i (2)E→E(1) {BACKPATCH(E(1)·FC,NXQ); E0·TC:=E(1)·TC} E→E0E(2) {E·FC:=E(2)·FC; E·TC:=MERG(E0·TC,E(
此文档下载收益归作者所有