第7章 LR分析法 (2).pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  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文档。上传文档
查看更多
第7章LR分析法 教学要求:要求理解可归约串、有效项目的基本概念;掌握分析方法。 教学重点:LR族文法、分析表的构造。 7.1 LR分析概述 一、LR分析法含义 L:从左到右扫描输入串 R:最右推导的逆过程(即最左归约) LR分析法:根据当前分析栈中的符号串和向右顺序查看输入串的K个( K≥0)符号唯一地确定分析器的动作是移进还是归约和用哪个产生式归约。 (2)动作(ACTION)表: ACTION[i,a]规定当前状态 i遇到输入符号a应执行的动作。 a)移进Sj:a、j分别进入符号栈和状态栈。 b)归约rj:栈顶形成句柄为β时,有产生式A→β,|β|=n,两个栈均出栈n项,然后A、k=GOTO[i′,A]分别进栈。 c)acc:接受 d)报错 三、LR分析算法 置ip指向输入串w的第一个符号;0和#分别进栈; 令S为栈顶状态;a是ip指向的符号; begin if ACTION[S,a]=Sj then begin j、a分别进栈;ip指向下一输入符号; end else if ACTION[S,a]=rj (第j条产生式为A??) then begin 出栈|?|项; 令当前栈顶状态为S’,A和GOTO[S’,A]分别进 栈; end else if ACTION[S,a]=acc then return (成功) else error end. 四、LR分析说明 1、符号栈中的内容加上余留的输入串的内容构成规范句型。 2、是规范的归约(是规范推导的逆过程)。 3、分析决策依据:栈顶状态和现行输入符号. 四种技术 LR(0) SLR(1) LR(1) LALR(1) 7.2 LR(0)分析 一、可归前缀 1、符号串S的前缀:移走符号串的尾部的零个或多个符号所得到的一个符号串。 例:ban是banana的一个前缀。 2、符号串S的后缀:删去符号串的头部的零个或多个符号所得到的一个符号串。 例:nana是banana的一个后缀。 3、可归前缀:如果一个规范句型含有这样一个前缀,这个前缀的后缀是该句型的句柄,则这个前缀称为该句型的可归前缀。 例:S?aAcBe [1] A?b [2] A?Ab [3] B?d [4] 输入串:abbcde。 规范推导过程为: 二、构造识别可归约前缀的DFA LR分析方法的核心问题是首先从给定的文法构造一个识别该文法所有可归前缀的确定的有限自动机(DFA),然后根据DFA去构造它的分析表。 LR(0)项目说明 1)一个产生式可对应的项目数为它的右部符号串长度加1。 2)每个项目的含义与圆点位置有关,圆点的左部表示已识别过的部分,右部表示待识别的部分。 3)对于A→ε的LR(0)项目只有A→·。 项目分类: 移进项目:形如X???a?(在分析过程中将把a移入栈中) 待约项目:形如X???A?(期待在分析过程中进行归约而 得到A) 归约项目:形如X??? 接受项目:形如S′?S? 解:这个文法的LR(0)项目有 (1)S→·E ????(2)S→E· ?(3)E→·E+E (4)E→E·+E ?(5)E→E+·E ?(6)E→E+E· ?(7)E→·i (8)E→i· (1)S→·E ????(2)S→E· ?(3)E→·E+E (4)E→E·+E ?(5)E→E+·E ?(6)E→E+E· (7)E→·i (8)E→i· 解:这个文法的LR(0)项目有 (1)S→·E ????(2)S→E· ????(3)E→·E+T (4)E→E·+T ????(5)E→E+·T ??(6)E→E+T· ????(7)E→·T (8)E→T· ????(9)T→·id ???(10)T→id· ?? (11)T→·(E) ???(12)T→(·E) ????(13)T→(E·) (14)T→(E)· LR(0)分析法的不足对文法的要求严格。 例 文法 G: S→E [1] E→E+T [2] E→T [3] T→T?P [4]

文档评论(0)

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

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

1亿VIP精品文档

相关文档