新编译原理及实现技术 教学课件 刘磊 第05章 语法分析 自底向上分析方法.pptVIP

新编译原理及实现技术 教学课件 刘磊 第05章 语法分析 自底向上分析方法.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文档。上传文档
查看更多
在线教务辅导网:;第五章 自底向上分析方法;基本思想 从待分析的符号串开始,自左向右进行扫描,自下而上进行分析,通过反复查找当前句型的句柄,并使用产生式规则将找到的句柄归约为相应产生式的左部非终极符,直到将输入串归约为文法的开始符。(移入-归约分析) 两种分析方法 简单优先和LR类分析方法;例:S ? aAcBe [1] A ? b [2] A ? Ab [3] B ? d [4] 输入流:abbcde。 规范推导过程为: ;简单优先分析;简单优先分析中的三种关系;文法优先关系的确定; 例: Z ? bMb M ? a M ? (L L ? Ma);定理: 设X1…XiXi+1…Xj…Xn是一个句型,若有 Xi ?Xi+1 ?Xi+2 ?… ?Xj-1 ?Xj ?Xj+1 则Xi+1Xi+2…Xj-1Xj一定是该句型的简单短语。 结论: ?用来确定句柄的头; ?用来确定句柄的内部; ?用来确定句柄的结束。 ;简单优先分析算法要点;简单优先分析实例;规范句型:用最右推导导出的句型(也称右句型)。 规范前缀:若存在规范句型??,且?是终极符串或空串,则称?为规范前缀。 规范活前缀:若规范前缀?不含句柄或含一个句柄并且具有形式?=???(?是句柄),则称规范前缀?为规范活前缀(简称活前缀)。 归约规范活前缀:若活前缀?是含句柄的活前缀,即有?=???,且?是句柄,则称活前缀?为归约规范活前缀(简称归约活前缀)。;活前缀的描述性定义:形成可归前缀之前,包括可归前缀在内所有规范句型的前缀都称为活前缀。 活前缀 为一个或若干规范句型的前缀。 在规范归约过程中的任何时刻已分析过的部分,即在分析栈(符号栈)中的符号串均为规范句型的活前缀,表明输入串的已被分析过的部分是该文法某规范句型的一个正确部分。;派生定理; 例有文法G[S]: S → aAc [1] A → Abb [2] A → b [3] ; LR(0)项目:若A→??是产生式, 则称A→???为LR(0)项目(简称项目),也 写作???[p]形式。 项目集的投影:假设IS是LR(0)项目集,则 称下面IS(X) 为IS关于X的投影集: IS(X) = {A→?X?? |A→??X??IS, X?(VT?VN)}. 项目集的闭包:假设IS是LR(0)项目集,则 称下面CLOSURE(IS)为IS的闭包集: CLOSURE(IS)= IS ? {A→?? | Y→??A??CLOSURE(IS) A→?是产生式 } ;构造LR(0)活前缀状态机LRSM的算法要点 ; 例:构造LR(0)状态机 S ? E $ E ? E + T E ? T T ? id T? ( E );0; LRSM给出了所有的可归活前缀 LRSM中的每个状态将对应一个饱和项目集: (1)其中一部分是由先驱状态分出来 (称为基本项目); (2)一部分则是由基本项目扩展出来的 (称为扩展项目或派生项目)。派生部 分项目的特点是其中的“?”出现在产 生式右部的最左侧。; 形如A→?? [P]的项目称为归约型项目 形如A→??? [P]的项目称为移入型项目 移入-归约冲突 归约-归约冲突 LRSM不能直接用于LR分析 LRSM提供的信息: (1)合法性检查信息[A→??a?] (2)移入/归约信息 [A→??a?] [A→??] (3)移入/归约后的转向状态信息;#;LR分析模型;LR分析表;假设ISk为LR(0)项目集,则 若A???a??ISk,且GO(ISk, a)= ISi,a?VT,则action(ISk, a)=Si,表示把状态ISi和展望符a入栈。 若A????ISk,则对任意a?VT?{#},令action(ISk, a)=Rj,其中产生式A??的编号为j,表示用编号为j的产生式进行归约。 若Z????ISk,且Z为拓广产生式的左部非终极符,则action(ISk, #)=Accept。 若GO(ISk, A)=ISi,A?VN,则goto(ISk, A)=i。

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档