编译原理与技术 - 习题集(含答案)(3)

2020-04-18 07:19

如有过程,则过程占7分,否则该分加入最简DFA中,最简DFA对,则该过程满分,否则零分。

接受该语言的最简DFA是: start 1

b a a 2 b

(有初态1分, 2态3分,回朔3分,终态1分,共8分)

5. NFA:

(有初态1分,有末态2分,有中间态3分,共6分)

确定化:

i0{S} i1{A,C} i2{C} i3{C,Z} DFA M:

a {A,C} {C} / / b / {C,Z} {C,Z} {C,Z} 第 11 页 共 26 页

(内容一行1.5分,图1分,共7分

二、计算题2

6. 解:等价文法G[S]:

S→aA A→BcA’

A’→ASA’|ε B→iB’

B’→iB’|ε

(消除左递归2分)

First(S)={a} , FOLLOW(S)={#] FIRST(A)={i} , FOLLOW(A)={#,a}

First(A’)={i,ε}, FOLLOW(A’)= FOLLOW(A)={#,a] First(B)={i} , FOLLOW(B)= {c]

First(B’)={i,ε}, FOLLOW(B’)= FOLLOW(B)={c]

∵SELECT(A’→ASA’)∩SELECT(A’→ε)=Φ SELECT(B’→iB’)∩SELECT(B’→ε)=Φ ∴可知文法满足LL(1)文法的条件。

(有FIRST和FOLLOW 4分,有判断4分,结果正确1分,共9分)

分析表: a c S aA A A' ε B B' ε (一行1分,共6分)

i # BcA’ ASA’ iB’ iB’ ε 第 12 页 共 26 页

7. (1)消除左递归,提公因子

E→aTb|iE’

E’→E|ε T→ET’

T’→ET’|ε

(消除左递归2分,提公共因子2分)

(2)求FIRST和FOLLOW

FIRST(E)={a,i} FOLLOW(E)={#,a,b,i } FIRST(E’)={a,i,ε} FOLLOW(E’)={#,a,b,i } FIRST(T)={a,i} FOLLOW(T)={b} FIRST(T’)={a,i,ε} FOLLOW(T’)={b} (一条1分,共8分)

(3) ∵FIRST(E)∩ FOLLOW(E’)= {a,b,i}; ∴不是LL(1)文法

(有FIRST(E)∩ FOLLOW(E’)4分,结果正确1分,共5分) 1、 8. 消除左递归(2分)

E → T E’ E’→ or T E’|ε T → F T’ T’→ and F T’|ε

F → not F | (E) | true | false

构造First和Follow集合

First(E)={not,(,true,false) Follow(E)={(),#} First(E’)={or,ε} Follow(E’)={(),#} First(T)={not,(,true,false) Follow(T)={or,(),#} First(T’)={and,ε} Follow(T’)={or,(),#} First(F)={not,(,true,false) Follow(F)={or,and,(),#} (一条1分,共10分)

第 13 页 共 26 页

∵SELECT(E’→ or T E’)∩SELECT(E’→ε)=Φ; SELECT(T’→ and F T’)∩SELECT(T’→ε)=Φ; F 的SELECT()两两相交为Φ; ∴可知文法满足LL(1)文法的条件。

(有判断4分,结果正确1分,共5分)

9. 提公因子(2分)和消除左递归(2分)

D→TL T→int | real L→id L’ L’→,id L’|ε

构造First和Follow集合

First(D)={int,real} Follow(D)={#} First(T)={int,real} Follow(T)={id} First(L)={id} Follow(L)={#} First(L’)={‘,’,ε} Follow(L’)={#} (一条1分,共8分)

∵S{ T→int } ∪ S{ T→real }=Φ; S{ L’→,id L’} ∪ S{ T→ε}=Φ; ∴该文法是LL(1)文法

(有FIRST(E)∩ FOLLOW(E’)4分,结果正确1分,共5分)

10. 改造后的文法G[S]:

S → PS'

S' → aPS'| fS' |ε P → qP' P' → bP |ε

(消除左递归2分,提公共因子2分)

第 14 页 共 26 页

求FIRST和FOLLOW

FIRST(S)={q} FOLLOW(S)={#} FIRST(S’)={a ,f,ε} FOLLOW(S’)={#} FIRST(P)={q} FOLLOW(P)={a,f,#} FIRST(P’)={b,ε} FOLLOW(P’)={a,f,#}

(一条1分,共8分) LL(1) 分析表为

S S' P P' a aPS' ε b bP f fS' ε q PS' qP' # ε ε

(一行1分,共5分)

三、问答与作图题

11. 最左推导:S=>D=>H=>(S)=>(S+D)=>(D+D)=>(D,H+D)=>(D,H+H)=>(D,H+a) (一步0.25分,共2分)

最右推导:S=>D=>H=>(S)=>(S+D)=>(S+H)=>(S+a)=>(D+a)=>(D,H+a) (一步0.25分,共2分)

语法树: S S

S D * + D S

S + D S * D

D D

(一树2分,共4分)

短语:“(D,H+a)”,“D,H+a”,“D,H”,“a” (2分) 素短语:“D,H”,“a ” (2分)

第 15 页 共 26 页


编译原理与技术 - 习题集(含答案)(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:港口建设项目预可行性研究报告和工程可行性研究报告编制办法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: