答案家

 找回密码
 立即注册
查看: 928|回复: 0

《编译原理》中文版 (李建中 编) 课后习题答案 机械工业出版社

[复制链接]

1万

主题

1万

帖子

80万

积分

校长

Rank: 9Rank: 9Rank: 9

积分
808912
发表于 2016-10-15 20:37:21 | 显示全部楼层 |阅读模式
P1774.14 为练习4.3的文法构造一个预测语法分析器
bexpr→bexpr or bterm|bterm
bterm→bterm and bfactor | bfactor
bfactor→not bfactor|(bexpr)|true |false
1  非递归方法
1) 消除左递归
①bexpr→bterm A     
②A→or bterm  A   
③A→ε
④bterm→bfactor B   
Band bfactor B   
B→ε
⑦bfactor→not bfactor
⑧bfactor→(bexpr)
⑨bfactor→true
⑩bfactor→false
2) first集 与 follow
针对以同一非总结符开头的产生式右部求first集  如果该非终结符能产生ε  则需要求其follow集   
①bexpr→bterm A           first(bterm  A)= {not,(,true,false}
②A→or bterm  A          first(or bterm  A)={or}
③A→ε                   follow(A=follow(bexpr)= {$, )}
④bterm→bfactor B         first(bfactor B)={not,(,true,false}               
Band bfactor B         first(and bfactor B)={and}
B→ε                   follow(B=follow(bterm)=first(A)
因为first(A)= {or , ε} 包含ε
                          所以follow(B=follow(bterm)
=first(A) ∪follow(A-{ε}={or, $, )}
⑦bfactor→not bfactor     first(not bfactor)={not}
⑧bfactor→(bexpr)         first((bexpr))={(}
⑨bfactor→true            first(true)={true}
⑩bfactor→false           first(false)={false}

游客,如果您要查看本帖隐藏内容请回复
回帖码请关注我们的公众号获取。

请在电脑访问我们的网站下载答案,手机下载可能会造成答案不正常显示!QQ群627816650公告有详细步骤。

该答案由网友整理提供,如果答案不符请扫描关注我们的公众号反馈给我们。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

CopyRight(c)2016 www.daanjia.com All Rights Reserved. 本站部份资源由网友发布上传提供,如果侵犯了您的版权,请来信告知,我们将在5个工作日内处理。
快速回复 返回顶部 返回列表