手机版

编译原理(陈火旺第三版)练习答案(8)

时间:2025-04-30   来源:未知    
字号:

编译原理(陈火旺第三版)练习答案

P81-2

文法:E→TE' E'→+E|ε T→FT' T'→T|ε F→PF' F'→*F'|ε P→(E)|a|b| (1)

First(E) = {(,a,b, } First(E') = {+,ε} First(T) = {(,a,b, } First(T') = {(,a,b, , ε} First(F) = {(,a,b, } First(F') = {*,ε} First(P) = {(,a,b, }

Follow(E)={#, )} Follow(E')={#,)} Follow(T)={+,),#}

Follow(T')={+,),#} Follow(F)= {+,(,a,b, ,),# } Follow(F')={+,(,a,b, ,),# } Follow(P) ={*,+,(,a,b, ,),# }

(2)文法无左递归,考察E'→+E|ε T'→T|ε F'→*F'|ε P→(E)|a|b| E'→+E|ε: First(E') = {+,ε}∩Follow(E')={#,)} = Φ

T'→T|ε: First(T') = {(,a,b, , ε} ∩Follow(T')={+,),#} = Φ F'→*F'|ε:First(F') = {*,ε}∩Follow(F')={ (,a,b, ,),# } = Φ P→(E)|a|b| :候选式终结首符集两两不相交 所以该文法为LL(1)文法。 (3) LL(1)分析表 + * ( ) a b # E E→TE' E→TE'E→TE'E→TE' E' E'→+E E'→ε E'→εT T→FT' T→FT'T→FT'T→FT' T' T'→ε T'→T T'→εT'→T T'→T T'→T

T'→ε

F F→PF'

F→PF'F→PF'F→PF' F' F'→εF'→*F' F'→ε

F'→ε

F'→εF'→εF'→ε F'→εP

P→(E)

P→a

P→b

P→

(4) 构造递归下降程序

Procedure E; Begin

If sym = ‘(’ or sym = ‘a’ or sym = ‘b’ or sym = ‘ ’ Then begin T;E' end Else error End

Procedure E'; Begin

If sym = ‘+’

Then begin advance ; E end

Else if sym <> ‘)’ and sym <> ‘#’ then error End

Procedure T; Begin

If sym = ‘(’ or sym = ‘a’ or sym = ‘b’ or sym = ‘ ’ Then begin F; T' end Else error End

编译原理(陈火旺第三版)练习答案(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)