- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章作业参考答案
第7章 LR 分析1.已知文法A→aAd|aAb|ε判断该文法是否是SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。答案:文法:A→aAd|aAb|ε拓广文法为G′,增加产生式S′→A若产生式排序为:0 S →A1 A →aAd2 A →aAb3 A →ε由产生式知:First (S ) = {ε,a}First (A ) = {ε,a}Follow(A ) = {d,b,#}G′的LR(0)项目集规范族及识别活前缀的DFA 如下图所示:在I0 中:A →.aAd 和A →.aAb 为移进项目,A →.为归约项目,存在移进-归约冲突,因此所给文法不是LR(0)文法。在I0、I2 中:Follow(A) ∩{a}= {d,b,#} ∩{a}=φ所以在I0、I2 中的移进-归约冲突可以由Follow 集解决,所以G 是SLR(1)文法。构造的SLR(1)分析表如下:题目1 的SLR(1)分析表对输入串ab#的分析过程10.判断下列各题所示文法是否为LR类方法,若是请说明是LR(0),SLR(1),LALR(1)或LR(1)的哪一种,并构造相应的分析表,若不是请说明理由.(3)S-aAd|eBd|aBr|eAr A-a B-a答案:1)列出扩展文法G'的产生式列表:(0)S'-S(1)S-aAd(2)S-eBd(3)S-aBr(4)S-eAr (5)A-a(6)B-a2) G'的LR(0)项目集族及识别活前缀的DFA 如下图所示:SaeI4:S-aA.dI5:S-aB.rI6:A-a.B-a.ABaI7:S-eB.dI8:S-eA.rAaI9:S-aAd.dI10:S-aBrd.rI11:S-eBd.dI12:S-eAr.r从上图中看出项目集I6中存在归约-归约冲突,所以该文法不是LR(0)文法。下面判断是否为SLR(1)文法:Follow(S)={#}Follow(A)={d,r}Follow(B)={d,r}对于I6,Follow(A) ∩Follow(B)= {d,r}不为φ,所以项目集I6中的归约-归约冲突不能消除,该文法不是SLR(1)文法。下面判断是否为LR(1)文法,在上面的项目集规范族中加入搜索符:SaeI4:S-aA.d,#I5:S-aB.r,#I6:A-a.,dB-a.,rABaI7:S-eB.d,#I8:S-eA.r,#AaI9:S-aAd.,#dI10:S-aBr.,#rI11:S-eBd.,#dI12:S-eAr. ,#rI13:B-a.,dA-a.,r从上图可以看出原来存的的归约-归约冲突已经消除,所以该文法为LR(1)文法。但若合并同心项目集I6和I13,则归约-归约冲突又会重现,因此该文法不是LALR(1)文法。3)LR(1)分析表 ActionGotoState a e d r # S A B0 S2 S3 11 acc 2 S6 4 53 S13 8 74 S9 5 S10 6 R5 R6 7 S11 8 S12 9 R1 10 R3 11 R2 12 R4 13 R6 R5 11.设文法G[S]为:S-AS|εA-aA|b证明G[S]是LR[1]文法; 扩展文法G’为:S’-SS-ASS-εA-aAA-bG'的LR(1)项目集族及识别活前缀的DFA 如下图所示:SI2:S-A.S,#S-.AS,#S-.,#A-.aA,a/b/#A-.b, a/b/#AI3:A-a.A,a/b/#A-.aA,a/b/#A-.b, a/b/#I4:A-b., a/b/#abI5:S-AS.,#SAI6:A-aA.,a/b/#从上图中可以看出,每个项目集中均无移进-归约冲突和归约-归约冲突,所以该文法为LR(1)文法。构造它的LR(1)分析表; ActionGotoState a b # S A 0 S3 S4 R2 1 21 acc 2 S3 S4 R2 5 23 S3 S4 64 R4 R4 R4 5 R1 6 R3 R3 R3 给出输入符号串abab#的分析过程。序号状态栈符号栈输入缓冲区动作10#abab#S3,移进203#abab#S4,移进3034#abab#R4,归约 A-b4036#aAab#R3,归约 A-aA502#Aab#S3,移进6023#Aab#S4,移进70234#Aab#R4,归约 A-b80236#AaA#R3,归约 A-aA9022#AA#R2,归约 S-ε100225#AAS#R1,归约 S-AS11025#AS#R1,归约 S-AS1201#S#acc 成功15.已知文法为:S-a|∧|(T)T-T,S|S构造它的LR(0),LALR(1),LR(1)分析表; 扩展
文档评论(0)