《编译原理》练习题库参考答案

内容发布更新时间 : 2024/7/6 20:12:05星期一 下面是文章的全部内容请认真阅读。

② (+,a,①) ③ (+,a,b) ④ (/,②,③) ⑤ (-,④,d)

10. 文法G(N): N→AB|B A→AC|D B→1|3|5|7|9 D→B|2|4|6|8 C→0|D

11 编译过程的六个阶段的任务,再加上表格管理和出错处理的工作可分别由几个模块或程序完成,它们分别称作词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、表格管理程序和出错处理程序。

12 自反的 在集合X上的关系R,如对任意x∈X,均有(x,x) ∈R,则称关系R是自反的。

非自反的 在集合X上的关系R,如对任意x∈X,均有(x,x)R,则称关系R是非自反。

对称的 在集合X上的关系R,如果合(x,y) ∈R,便必有(y,x) ∈R,则称关系R是对 称的。

非对称的 在集合X上的关系R,如果有(x,y) ∈R丛x≠y,便必有(y,x)R,则称关系R是非对称的。

传递的 在集合X上的关系R,如果合(x,y) ∈R且(y,z) ∈R,必有(x,z) ∈R,则称关系R是传递的。

13. 元素的非空有穷集合。字母表中的元素。由字母表中的符号组成的任何有穷序列,惯用小写字母t、u、v、x、y…表示符号串。长度是符号串所含符号的个数。设有符号串x和y,把y的符号写在x的符号之后所得的符号串,叫做x与y的联结,记为xy。 14答:从所给符号串x开始,在其中寻找与文法的某条规则右部相匹配的子串,并用该规则的左部取代此子串(即归约),重复此过程,步步向上归约,最后试图将符号串x归约到文法的识别符号Z。如归约成功,则符号串x是文法的句子。 15 HARD(S)={S,Q,R,a,b,c}

HARD(Q)={S,Q,R,a,b,c} HARD(R)={S,Q,R,a,b,c} 16 S::=aABb|ab A::={ab}

B::=Aa|a

17传名:a=12 传值:a=6 18. (1)错误 (2)正确 (3)正确 (4)正确 (5)错误 (6)错误 (7)错误

19.(1)在语义上加些限制,或者说加一些语法的非形式规定。这样做不必改变文法中原有的语法规则。

(2)把排除二义性的规则合并到原有文法中,即构造一个等价的无二义性的文法G'。这样做,需要改造原有文法。

20.只有单层分支的子树称为简单子树。

21.由某一结点及其所有分支组成的部分,成为原语法树的一棵子树。

22.句型的分析就是识别一个符号串是否为某文法的句型,是某个推导的构造过程。

23.从所给符号串x开始,在其中寻找与文法的某条规则右部相匹配的子串,并用该规则的左部取代此子串(即归约),重复此过程,步步向上归约,最后试图将符号串x归约到文法的识别符号Z。如归约成功,则符号串x是文法的句子。 24. HARD(S)={S,Q,R,a,b,c} HARD(Q)={S,Q,R,a,b,c} HARD(R)={S,Q,R,a,b,c}

四、综合题

每题10分,3题共30分 1. 解:

(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,-,-,1) (12) (+,b,1, T3) (13) (:=,T3,-,b) (14) (j,-,-,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(2)·TC)} EA→E(1)

{BACKPATCH(E(1)·TC,NXQ); E0·FC:=E(1)·FC} E→EAE(2) {E·TC:=E(2)·TC; E·FC:=MERG(EA·FC,E(2)·FC) E→i {E·TC:=NXQ;E·FC:=NXQ+1; GEN(jn2,entry(i),-0); GEN(j,-,-,0)

3解: (1)

S→(L)|aS’ S’→S|ε L→SL’

L’→SL’|ε

(2)

FIRST)S)={(,a} FIRST(S’)={,a,ε} FIRST(L)={(,a} FIRST(L’)={,,ε} (3)

FOLLOW(S)={#,,,)} FOLLOW(S’)={#,,,)} FOLLOW(L)={ )} FOLLOW(L’〕={ )}

a , ( ) # S S’ L L’ S→aS’ S→(L) S’→S S’→ε S’→S S’→ε S’→ε L→SL’ L→SL’ L’→ε L’→ε 4.(1) 文法G中每个非终结符的FIRSTVT集和LASTVT集为: FIRSTVT(s')={#} FIRSTVT(P)={i,() FIRSTVT(s)={(,i) FIRSTVT(D)={i} FIRSTVT(R)={;,(,i)

(2) 文法G中每个非终结符的LASTVT集为: LASTVT(S')={#} LASTVT(P)={i,}} LASTVT(S)={}} LASTVT(D)={i} LASTVT(R)={;,},i}

5. t11 := i * 20

t12 := t11+j t13 := A-84; t14 := 4*t12

t15 := t13[t14] //A[i,j] t21 := i*20 t22 := t21+j t23 := B-84; t24 := 4*t22

t25 := t23[t24] //B[i,j] t31 := k*20 t32 := t31+l t33 := A-84 t34 := 4*t32

t35 := t33[t34] //A[k,l] t36 := 4*t35 t37 := C-4

t38 := t37[t36] //C[A[k,l]] t41 := i+j

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi