中国地质大学(武汉)《编译原理》课件-第7章LR分析法.pptVIP

中国地质大学(武汉)《编译原理》课件-第7章LR分析法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,结构力学,力学,流体力学,水力学,工程测量,工程经济学,工程

在I1,I7,I8中 存在移进 -归约冲突 I1:E’ ?E? E ?E?+E E ?E?*E I7 : E ?E+E? E ?E?+E E ?E?*E I8 : E ?E*E? E ?E?+E E ?E?*E 在I1中:归约项目E′→E·实际上为接受项目。由于FOLLOW(E′)={#}也就是只有遇到句子的结束标志#号才能接受,因而与移进项目的移进符号+,*不会冲突,所以可用SLR(1)方法解决,即遇当前输入符为#时则接受,遇+或*号时则移进。 在I7和I8中,由于归约项目[E→E+E·]和[E→E*E·]的左部都为非终结符E,而FOLLOW(E)={#,+,*,)},而移进项目均有+和*也就存在FOLLOW(E)∩{+,*}≠ 对于I7和I8规定:‘*’优先于‘+’,都服从左结合 I7 :遇‘*’移进 遇‘+’归约 I8 :遇‘+’,‘*’ 都归约 LR分析的特征是:   ◇ 归约过程是规范的:   ◇符号栈中的符号是规范句型的前缀,且不含句柄以后的任何符号(活前缀)。   ◇ 分析决策依据栈顶状态和现行输入符号是什么来决定的。   ◇为构造LR分析表,可先构造识别活前缀和句柄的DFA。   ◇ LR分析器的关键部分是分析表的构造, 对一个文法能判断是否是LR类文法,能否构造相应的LR分析表,并能对给定的输入串进行分析以决定该输入串是否为所给文法的句子    小结 ◇ 四种LR类型:   LR(0) SLR(1) LALR(1) LR(1) 功能逐个增强   ◇ 四种LR类型的文法是真包含关系    ?????????????????????????????????????????????????????? 因此本节将介绍对于LR(0)规范族中有冲突的项目集(状态)用向前查看一个符号的办法进行处理,以解决冲突。这种办法将能满足一些文法的需要,因为只对有冲突的状态才向前查看一个符号,以确定做那种动作,因而称这种分析方法为简单的LR(1)分析法,用SLR(1)表示。 因此假定一个LR(0)规范族中含有如下的项目集(状态)I   I={X→α·bβ,A→γ·,B→δ·} 也就是在该项目集中含有移进-归约冲突和归约-归约冲突。其中α,β,γ,δ为文法符号串,b为终结符。那么只要在所有含有A或B的句型中,直接跟在A或B后的可能终结符的集合即FOLLOW(A)和FOLLOW(B)互不相交,且都不包含b,也就是只要满足   FOLLOW(A)∩FOLLOW(B)= ?   FOLLOW(A)∩{b}= ?    FOLLOW(B)∩{b}= ?  那么,当在状态I时面临某输入符号为a时,则动作可由下规定决策。   1) 若a=b,则移进。   2) 若a∈FOLLOW(A),则用产生式A→γ进行归约。   3) 若a∈FOLLOW(B),则用产生式B→δ进行归约。   4) 此外,报错。 I={X→α·bβ,A→γ·,B→δ·} I3:S→rD·.. D→D·,i 在上例中的I3如下: 因为I3中存在移进个归约的冲突,采用SLR(1)的方法看看是否可以解决: Follow(S) ∩ {,}={#} ∩ {,}= 所以遇到‘,’就移进,遇到#就归约。 实数说明文法的SLR(1)分析表 状态 ACTION GOTO r , i # S D 0 1 2 3 4 5 6 S2 . . . r3 . r2 . . . S5 r3 . r2 . . S4 . r3 S6 r2 . acc . r1 r3 . r2 1 . . 3    如果对于一个文法的LR(0)项目集规范族的某些项目集或LR(0)分析表中所含有的动作冲突都能用上述方法解决,则称这个文法是SLR(1)文法,所构造的分析表为SLR(1)分析表,使用SLR(1)分析表的分析器称为SLR(1)分析器。 例如,我们可以构造算术表达式文法的LR(0)项目集规范族,然后分析它是LR(0)文法还是SLR(1)文法,现将表达式文法拓广如下:   (0) S′→E   (1) E→E+T   (2) E→T   (3) T→T*F   (4) T→F   (5) F→(E)   (6) F→i      I0: S′→·E      E→·E+T      E→·T      T→·T*F      T→·F      F→·(E)      F→·i   I1: S′→E·      E→E·+T   I2: E→T·      T→T·

文档评论(0)

翰林大当家 + 关注
实名认证
服务提供商

文案个性定制,计划书、方案、策划书专业撰写。

1亿VIP精品文档

相关文档