ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:108.03KB ,
资源ID:9889467      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9889467.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理第4章作业答案.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理第4章作业答案.docx

1、编译原理第4章作业答案第四章习题:考虑上下文无关文法:(1)给出这个串的一个最左推导S - S S *- S S + S *- a S + S *- a a + S *- aa + a*(3)给出这个串的一棵语法分析树习题:下面是一个只包含符号以避免和文法中作为元符号使用的竖线相混淆:a和b的正则表达式的文法。它使用+ 替代表示并运算的符号I ,rexprrtermrfactorrprimaryrexpr + rterm | rterm rterm rfactor | rfactor rfactor * | rp rimary a I b1)对这个文法提取公因子2)提取公因子的变换使这个文法适

2、用于自顶向下的语法分析技术吗?3)提取公因子之后,原文法中消除左递归4)得到的文法适用于自顶向下的语法分析吗?解1)2)3)提取左公因子之后的文法变为rexpr rexpr + rterm | rtermrterm rterm rfactor | rfactorrfactor rfactor * | rp rimaryrp rimary a | b不可以,文法中存在左递归,而自顶向下技术不适合左递归文法 消除左递归后的文法rexpr - rterm rexpr rexpr - + rterm rexpr rterm- rfactor rterm rterm - rfactor rterm rf

3、actor- rp rimay rfactorrfactor - *rfactor rp rimary- a | b4)该文法无左递归,适合于自顶向下的语法分析习题:为下面的每一个文法设计一个预测分析器, 并给出预测分析表。 可能要先对文法进行提取左公因子或消除左递归(3)S-S(S)S|(5)S-(L)|a L-L,S|S解消除该文法的左递归后得到文法S-S S -(S)SS |用类Pascal语言构造的一个预测分析器:PROCEDURE SBEGINS;()WHILE (lookahead=THEN BEGINmatch ();S;match ();END;ELSE IF (lookahe

4、ad=a) THEN match(a) ELSE errorEND;2计算FIRST和FOLLOW!合FIRST(S)=(, FOLLOW(S)=),$FIRST(S )=(, FOLLOW(S )=),$3构建预测分析表非终结符号输入符号()$SS-SS-SS-SSS -(S)SS S-S-消除该文法的左递归得到文法S-(L)|aL-SL L -,SL |用类Pascal语言的一个预测分析器:PROCEDURESBEGINif (lookahead=THEN BEGIN()match ();L;match ();END;ELSE IF (lookahead=a)THEN match(a)EL

5、SE errorEND;P ROCEDURE L;BEGINS;WHILE (lookahead =,);BEGINmatch (,);S;END;END;计算FIRST与FOLLOW!合FIRST(S)=(,a FOLLOW(S)=),,$FIRST(L)=(,a FOLLOW(L)= ) FIRST(L )= , , FOLLOW(L )= ) 构建预测分析表非终结符号输入符号()Ja$SS-(L)S-aLL-SL L-SLLL-L -,SL 计算练习的文法的 FIRST和FOLLOW!合S(S)S|(L)|a,L习题3)S5)S解:3)FIRST(S)=L,S|S,( FOLLOW(S)

6、= (,),$ 习题 为练习中的增广文法构造 SLR项集,计算这些项集的 GOTO!数,给出这个文法的语法 分析表。这个文法是 SLR文法吗?S SS+|SS*|a解:1构造该文法的增广文法如下S -SS-SS+S-SS*S-a2构造该文法的LR(0)项集如下I0I1I2I3I4I5S -.SS -S.S-a.S-SS.+S-SS+.S-SS*.S-.SS+S-+S-SS.*S-.SS*S-*S-+S-.aS-.SS+S-*S-.SS*S-.SS+S-.aS-.SS*S-.a,a)=I2,a)=I2 GOTO(I1,$)=acc,+)=I4 GOTO(I3 ,*)=I5 GOTO(I3 ,a)

7、=I24构造该文法的语法分析表状态ACTIONGOTO+*a$S0S211S2acc32R3R3R3R33S4S5S234R1R1R1R15R2R2R2R2注:FOLLOW(S )=FOLLOW(S)=+,*,a,$这个文法是SLR文法,因为语法分析表中没有重复的条目习题说明下面文法S SA|AA a是SLR(1)的,而不是 LL(1)的。证明:1)可以求得FIRST(SA)=FIRST(A)=a,故该文法不是 LL(1)文法2)构造该文法的增广文法的语法分析表如下构造增广文法S -SS-SAS-AA-a可以看到该语法分析表中没有重复的条目故该文法是构造LR(0)项集族I0I1I2I3I4S

8、-.SS -S.S-A.A-a.S-SA.S-.SAS-S-.AA-.aA-.a状态ACTIONGOTOa$SA0S3121S3acc42R2R23R3R34R1R1SLR(1)文法3GOTO函数如下GOTO(IO, S)=I1 GOTO(I0 ,A)=I2 GOTO(IO,a)=l3GOTO(I1, A)=I4 GOTO(I1 ,a)=I3 GOTO(I1,$)=acc4构建语法分析表如下 (FOLLOW(A)=FOLLOW(S)=a,$)习题说明下面的文法S-Aa|bAc|dc|bdaA-d是LALR(1)的,但不是 SLR(1)的证明:1、构造该文法的 SLR(1)语法分析表构造增广文法

9、S -SS-AaS-bAcS-dcS-bdaA-d构造LR(0)项集族状态ACTIONGOTOabcd$SA0S3S4121acc2S53S764R5S8|R55R16S97S10|R5R58R39R210R4SLR(1)文法可以看到在图中存在二义性的条目,故该文法不是2、构造该文法的LALR(1)语法分析表构造该增广文法的 LR(1)项集族如下2项集合并:没有可以合并的项集3GOTO函数GOTO(I0, S)=I1 GOTO(I0 ,A)=I2 GOTO(I0 ,b)=I3 GOTO(I0 ,d)=I4 GOTO(I1,$)=acc GOTO(I2 ,a)=I5 GOTO(I3 ,A)=I6

10、 GOTO(I3 ,d)=I7状态ACTIONGOTOabcd$SA0S3S4121acc2S53S764R5S8R55R16S97S10R58R39R210R4LALR(1)文法GOTO(I4, c)=I8 GOTO(I6 ,c)=I9 GOTO(I7 ,a)=l10构造LALR(1)分析表如下可见该分析表中不存在二义性的条目,故该文法是习题说明下面的文法S-Aa|bAc|Bc|bBaA-dB-d是LR(1)的,但不是 LALR(1)的证明:1、构造该文法的LR(1)语法分析表 构造该文法的增广文法S -SS-AaS-bAcS-BcS-bBaA-dB-d构造该增广文法的 LR(1)项集族如下

11、项集合并:没有可以合并的项集3GOTO函数GOTO(IO, S)=I1 GOTO(I0 ,A)=I2 GOTO(I0 ,b)=l3 GOTO(I0 ,B)=I4 GOTO(I0 ,d)=I5 GOTO(l1,$)=acc GOTO(I2 ,a)=I6 GOTO(I3 ,A)=I7 GOTO(I3 ,B)=I8 GOTO(I3,d)=I9GOTO(I4, c)=I10 GOTO(I7 ,c)=I11 GOTO(I8 ,a)=I124构造LR(1)分析表如下状态ACTIONGOTOabcd$SAB0S3S51241acc2S63S9784S105R5R66R17S118S129R6R510R311R212R4LR(1)文法可见该语法分析表中存在有二义性的条目,故该文法不是构造LALR(1)语法分析表如下状态ACTIONGOTOabcd$SAB0S3S591241acc2S63S9784S959R5|R6R6|R66R17S108S119R310R211R4LALR(1)文法

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1