温故知新compiler-principle10编译器原理.pptxVIP

温故知新compiler-principle10编译器原理.pptx

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

温故知新输入LR分析程序输出栈LR分析器的模型actiongotosmXmsm-1Xm-1…s0…a1ai…an$简单的LR方法(SLR)规范的LR方法向前看的LR方法(LALR)10/46LR分析器模型实现简单,分析表规模小;功能有限

3.5LR分析器3.5.4构造规范的LR分析表LR(1)项目: 重新定义项目,让它带上搜索符,成为如下形式 [A??·?,a]LR(0)项目[A??·?]点的左边代表历史信息,右边代表展望信息。直观地讲,项目表示在分析过程的某一阶段,已经看到了产生式的多大部分,以及希望看到的部分。

3.5LR分析器3.5.4构造规范的LR分析表LR(1)项目: 重新定义项目,让它带上搜索符,成为如下形式 [A??·?,a]LR(1)项目[A??·?,a]对活前缀?有效: 如果存在着推导S?*rm?Aw?rm???w,其中:?=??;a是w的第一个符号,或者w是?且a是$。

3.5LR分析器例 S?BB B?bB|a从最右推导S?*rmbbBba?rmbbbBba看出: [B?b·B,b]对活前缀?=bbb是有效的LR(1)项目[A??·?,a]对活前缀?有效: 如果存在着推导S?*rm?Aw?rm???w,其中:?=??;a是w的第一个符号,或者w是?且a是$。

3.5LR分析器例 S?BB B?bB|a从最右推导S?*rmbbBba?rmbbbBba看出: [B?b·B,b]对活前缀?=bbb是有效的对于项目[A??·?,a],当?不为空时,采取移进操作(同LR(0)项目);当?为空时,是根据搜索符a来决定归约,而不是根据A的后继符FOLLOW(A)来规约(不同于LR(0)项目),通常搜索符a的集合是FOLLOW(A)的子集。

3.5LR分析器构造规范的LR分析表基于LR(1)项目来构造识别G?活前缀的DFA。1、拓广文法S??SS?BBB?bBB?a15/46

3.5LR分析器构造规范的LR分析表基于LR(1)项目来构造识别G?活前缀的DFA。2、构造LR(1)项目集规范族I0:S??.S,$ S?.BB,$ B?.bB,b/a B?.a,b/a 闭包函数closure(I)1、I的每个项目均加入closure(I)2、如果[A?α·Bβ,a]在closure(I)中,且B?η是产生式,那么如果项目[B?·η,b]还不在closure(I)中的话,那么把它加入(其中b属于FIRST(βa))。S??SS?BBB?bBB?a

3.5LR分析器构造规范的LR分析表基于LR(1)项目来构造识别G?活前缀的DFA。2、构造LR(1)项目集规范族I0:S??.S,$ (核心项目)S?.BB,$ (非核心项目, B?.bB,b/a 通过对核心项目求闭包 B?.a,b/a 而获得)S??SS?BBB?bBB?a

3.5LR分析器S??·S,$I0S?·BB,$B?·bB,b/aB?·a,b/aS??SS?BBB?bBB?a

3.5LR分析器S??·S,$I0S?·BB,$B?·bB,b/aB?·a,b/aS??S·,$I1S?B·B,$B?·bB,$B?·a,$I2SBB?b·B,b/aB?·bB,b/aB?·a,b/aI3B?a·,b/aI4abS??SS?BBB?bBB?a

3.5LR分析器S??·S,$I0S?·BB,$B?·bB,b/aB?·a,b/aS??S·,$I1S?B·B,$B?·bB,$B?·a,$I2SBB?b·B,b/aB?·bB,b/aB?·a,b/aI3B?a·,b/aI4aabbS?BB·,$I5B?b·B,$B?·bB,$B?·a,$I6B?bB·,$I9B?a·,$I7B?bB·,b/aI8BbbBaaB20/46S??SS?BBB?bBB?a

3.5LR分析器构造规范的LR分析表基于LR(1)项目来构造识别G?活前缀的DFA。从Ii构造分析器的状态i,状态i的action函数如下确定如果[A??·a?,b]在Ii中,且goto(Ii,a)=Ij,那么置action[i,a]为sj。如果[A??·,a

文档评论(0)

ericxiao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档