- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5.1 考虑以下的文法: S→S;T|T T→a 为这个文法构造LR(0)的项目集规范族。 这个文法是不是LR(0)文法?如果是,则构造LR(0)分析表。 对输入串“a;a”进行分析。 解: (1)拓广文法G[S’]: 0:S’→S 1:S→S;T 2:S→T 3:T→a 构造LR(0)项目集规范族 状态 项目集 转换函数 0 S’→·S S→·S;T S→·T T→·a GO[0,S]=1 GO[0,S]=1 GO[0,T]=2 GO[0,a]=3 1 S’→S· S→S·;T ACCEPT GO[1,;]=4 2 S→T· R2 3 T→a· R3 4 S→S;·T T→·a GO[4,T]=5 GO[4,a]=3 5 S→S;T· R1 (2)该文法不存在“归约-归约”和“归约-移进”冲突,因此是LR(0)文法。LR(0)分析表如下: 状态 ACTION GOTO ; a # S T 0 S3 1 2 1 S4 ACCEPT 2 R2 R2 R2 3 R3 R3 R3 4 S3 5 5 R1 R1 R1 (3)对输入串“a;a”进行分析如下: 步骤 状态栈 符号栈 输入符号栈 ACTION GOTO 0 0 # a;a# S3 1 03 #a ;a# R3 2 3 02 #T ;a# R2 1 4 01 #S ;a# S4 5 014 #S; a# S3 6 0143 #S;a # R3 5 7 0145 #S;T # R1 1 8 01 #S # ACCEPT 5.2 证明下面文法是SLR(1)文法,但不是LR(0)文法。 S→A A→Ab|bBa B→aAc|a|aAb 解:文法G[S]: 0:S→A 1:A→Ab 2:A→bBa 3:B→aAc 4:B→a 5:B→aAb 构造LR(0)项目集规范族: 状态 项目集 转换函数 0 S→·A A→·Ab A→·bBa GO[0,A]=1 GO[0,A]=1 GO[0,b]=2 1 S→A· A→A·b ACCEPT GO[1,b]=3 2 A→b·Ba B→·aAc B→·a B→·aAb GO[2,B]=4 GO[2,a]=5 GO[2,a]=5 GO[2,a]=5 3 A→Ab· R1 4 A→bB·a GO[4,a]=6 5 B→a·Ac B→a· B→a·Ab A→·Ab A→·bBa GO[5,A]=7 R4 GO[5,A]=7 GO[5,A]=7 GO[5,b]=2 6 A→bBa· R2 7 B→aA·c B→aA·b A→A·b GO[7,c]=8 GO[7,b]=9 GO[7,b]=9 8 B→aAc· R3 9 B→aAb· A→Ab· R5 R1 状态5存在“归约-移进”冲突,状态9存在“归约-归约”冲突,因此该文法不是LR(0)文法。 状态5: FOLLOW(B)={a},因此,FOLLOW(B)∩{b}=Φ 状态9: FOLLOW(B)={a},FOLLOW(A)={#,b,c},因此FOLLOW(B)∩FOLLOW(A)=Φ 状态5和状态9的冲突均可用SLR(1)方法解决,构造SLR(1)分析表如下: 状态 ACTION GOTO a b c # A B 0 S2 1 1 S3 ACCEPT 2 S5 4 3 R1 R1 R1 4 S6 5 R4 S2 7 6 R2 R2 R2 7 S9 S8 8 R3 9 R5 R1 R1 R1 该SLR(1)分析表无重定义,因此该文法是SLR(1)文法,不是LR(0)文法。 5.3 证明下面文法是LR(1)文法,但不是SLR(1)文法。 S→AaAb|BbBa A→ε B→ε 解:拓广文法G[S’]: 0:S’→S 1:S→AaAb 2:S→BbBa 3:A→ε 4:B→ε 构造LR(0)项目集规范族: 状态 项目集 转换函数 0 S’→·S S→·AaAb S→·BbBa A→· B→· GO[0,S]=1 GO[0,A]=2 GO[0,B]=3 R3 R4 1 S’→S· ACCEPT 2 S→A·aAb GO[2,a]=4 3 S→B·bBa GO[3,b]=5 4 S→Aa·Ab A→· GO[4,A]=6 R3 5 S→Bb·Ba B→· GO[5,B]=7 R4 6 S→AaA·b GO[6,b]=8 7 S→BbB·a GO[7,a]=9 8 S→AaAb· R1 9 S→BbBa· R2 状态0存在“归约-归约”冲突,且FOLLOW(A) ={a,b},FOLLOW(B)={a,b},即FOLLOW(A)∩FOLLOW(B)={a,b}≠Φ,所以该文法不是SLR(1)文法。 构造LR(1)项目集规范族: 状态 项目集 转换函数 0 S’→·S,# S→·Aa
文档评论(0)