- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理第4章作业答案
第四章
习题4.2.1:考虑上下文无关文法: S-S S +|S S *|a 以及串aa + a*
(1)给出这个串的一个最左推导 S - S S *
- S S + S *
- a S + S *
- a a + S *
- aa + a*
(3)给出这个串的一棵语法分析树
习题4.3.1:下面是一个只包含符号a和b的正则表达式的文法。它使用+替代表示并运算的符号|,以避免和文法中作为元符号使用的竖线相混淆: rexpr( rexpr + rterm | rterm
rterm(rterm rfactor | rfactor
rfactor( rfactor * | rprimary
rprimary(a | b
1)对这个文法提取公因子
2)提取公因子的变换使这个文法适用于自顶向下的语法分析技术吗?
3)提取公因子之后,原文法中消除左递归
4)得到的文法适用于自顶向下的语法分析吗?
解
提取左公因子之后的文法变为
rexpr( rexpr + rterm | rterm
rterm(rterm rfactor | rfactor
rfactor( rfactor * | rprimary
rprimary(a | b
不可以,文法中存在左递归,而自顶向下技术不适合左递归文法
消除左递归后的文法
rexpr - rterm rexpr’
rexpr’- + rterm rexpr’|
rterm- rfactor rterm’
rterm’- rfactor rterm’|
rfactor- rprimay rfactor’
rfactor’- *rfactor’|
rprimary- a | b
4)该文法无左递归,适合于自顶向下的语法分析
习题4.4.1:为下面的每一个文法设计一个预测分析器,并给出预测分析表。可能要先对文法进行提取左公因子或消除左递归
(3)S-S(S)S|
(5)S-(L)|a L-L,S|S
解
(3)
①消除该文法的左递归后得到文法
S-S’
S’-(S)SS’|
②计算FIRST和FOLLOW集合
FIRST(S)={(,} FOLLOW(S)={),$}
FIRST(S’)={(,} FOLLOW(S’)={),$}
③构建预测分析表
非终结符号 输入符号 ( ) $ S S-S’ S-S’ S-S’ S’ S’-(S)SS’ S’- S’- (5)
①消除该文法的左递归得到文法
S-(L)|a
L-SL’
L’-,SL’|
②计算FIRST与FOLLOW集合
FIRST(S)={(,a} FOLLOW(S)={ ),, ,$}
FIRST(L)={(,a} FOLLOW(L)={ ) }
FIRST(L’)={,,} FOLLOW(L’)={ ) }
③构建预测分析表
非终结符号 输入符号 ( ) , a $ S S-(L) S-a L L-SL’ L-SL’ L’ L’- L’-,SL’
习题4.4.4 计算练习4.2.2的文法的FIRST和FOLLOW集合
3)S(S(S)S|
5)S((L)|a,L(L,S|S
解:
3)FIRST(S)={ ,( } FOLLOW(S)={ (,),$ }
5)FIRST(S)={ (,a } FOLLOW(S)={ ),,,$ }
FIRST(L)={ (,a } FOLLOW(L)={ ),, }
习题4.6.2 为练习4.2.1中的增广文法构造SLR项集,计算这些项集的GOTO函数,给出这个文法的语法分析表。这个文法是SLR文法吗?
S(SS+|SS*|a
解:
①构造该文法的增广文法如下
S’-S
S-SS+
S-SS*
S-a
②构造该文法的LR(0)项集如下
③GOTO函数如下
GOTO(I0,S)=I1 GOTO(I0,a)=I2
GOTO(I1,S)=I3 GOTO(I1,a)=I2 GOTO(I1,$)=acc
GOTO(I3,S)=I3 GOTO(I3,+)=I4 GOTO(I3,*)=I5 GOTO(I3,a)=I2
④构造该文法的语法分析表
状态 ACTION GOTO + * a $ S 0 S2 1 1 S2 acc 3 2 R3 R3 R3 R3 3 S4 S5 S2 3 4 R1 R1 R1 R1 5 R2 R2 R2 R2 注:FOLLOW(S’)=FOLLOW(S)={+,*,a,
您可能关注的文档
最近下载
- 形势与政策(2024春)超星尔雅学习通章节测试答案.docx VIP
- 最新2023版知识产权贯标GBT29490 02知识产权法律法规及合规性评价控制程序(含表单)[知识产权合规管理体系文件].docx VIP
- 2025年山西政采专家培训后考试题库及答案最新.docx VIP
- 《工程勘察设计收费标准》(2002年修订本)-完整版-1.pdf VIP
- 2025湖北襄阳粮油集团有限公司招聘通过人员笔试历年参考题库附带答案详解.pdf
- 免费颁奖典礼晚会PPT模板 (8).pptx VIP
- 人教部编版八年级语文上册《采桑子》示范公开课教学课件.pptx VIP
- 2025年贵州省贵阳市【辅警协警】笔试预测试题(附答案).docx VIP
- 2025年浙教版七年级数学上册第二单元测(含答案)试卷 .pdf VIP
- ACP云计算复习测试卷含答案.doc
文档评论(0)