第6章自底向上语法分析方法.pptVIP

  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文档。上传文档
查看更多
第6章自底向上语法分析方法,自底向上语法分析,新编英语语法章振邦,章振邦英语语法电子书,章振邦语法,汉语篇章语法,章振邦语法考试试题,篇章语法,通用英语语法章振邦,英文文章语法解析

教学内容 自底向上语法分析的基本思想; 短语、直接短语和句柄的定义,以及如何利用语法树寻找短语、直接短语和句柄。 自底向上语法分析方法: 优先分析法 LR分析法 一、自底向上的语法分析思想 【自底向上(down - top)分析法的基本思想】自底向上语法分析的基本思想是从左向右扫描输入串,一边将输入符移进分析栈内,一边检查位于栈顶的一串符号是否与某个产生式的右部相同,若发现相同,就把栈顶的这串符号替换为相应产生式的左部的非终结符(这种替换就称为“归约”);若不相同,则继续移进输入符。并继续判断。重复这一过程直到输入串已到达串尾,而栈内恰好为给定文法的开始符号(假定未发现错误)时为止。此时表明分析成功,也就确认输入串是文法的句子。 这种分析方法也称为移进-归约分析法。 可归约串 可归约串:即每次归约的那串符号(是各个产生式的右部),称为“句柄”。 自底向上语法分析的关键: 在自底向上语法分析的过程中,最关键的问题就是如何识别句柄。 示例 【例1】设有以下文法G1[S]: S→aAcBe A→Ab|b B→d 分析输入串abbcde是否为文法的句子。 下面从建立语法树来看句子的推导过程。为了自底向上地构造输入串abbcde的语法树,首先从输入串出发,根据产生式规则自底向上地生长出这棵语法树,最后长出树根节点S。语法树的建立过程如图所示。 语法树 采用最右推导 在自底向上语法分析的过程中,考虑的是最右推导的逆过程。 例如,上述输入串abbcde的语法分析过程其实就是最右推导的逆过程。 最右推导: S ? aAcBe ? aAcde ? aAbcde ? abbcde 规范归约 规范推导:即最右推导。 规范归约:规范推导的逆过程。 规范句型:由最右推导推导出的句型。 结论 规范句型=分析栈内的内容+剩余的输入串 分析过程的不确定性 两种动作: 移进 归约 若在自底向上的分析过程中,语法分析程序每次只面临一种动作选择,要么移进,要么归约,则这个分析过程就是确定的,不会产生错误归约。 若在某一步的分析中,既可移进又可归约或者同时可选择两种归约动作,则语法分析程序的动作就是不确定的。 例如在前面的分析过程中,在第5步时栈中的符号串是#aAb,栈顶符号串b和Ab分别是产生式 A→Ab , A→b的右部,这时到底用A→Ab归约还是用A→b归约是自底向上分析要解决的关键问题。 存在的问题 在自底向上的分析过程中,存在两个问题: 移进_归约冲突 归约_归约冲突 二、句柄的定义 短语、直接短语、句柄的定义 【短语】若S?αAδ且A?β,则称β是相对于非终结符A的句型αβδ的短语。 【直接短语】若S?αAδ且A→β,则称β是相对于非终结符A的句型αβδ的直接短语(也称为简单短语)。 直接短语是某个产生式右部的符号串。 【句柄】位于句型最左边的直接短语称为该句型的句柄。 示例 【例2】文法G2[S]: S→AB A→bB A→Aa B→a B→Sb 求句型baSb的全部短语、直接短语、句柄。 讨论 句型baSb的子串b,a,ba,baS,S,aSb,……等都是句型的短语吗? 根据短语的定义,可由句型的推导过程中找出其全部短语和直接短语,以及句柄。 推导1. S ? AB ? bBB ? baB ? baSb 因为S ? baB 且 B→Sb 所以子串Sb是句型baSb的直接短语。 讨论 推导2. S ? AB ? ASb ? bBSb ? baSb 因为S ? bBSb 且 B→a 所以子串a是句型baSb的直接短语。 在推导2中,又因为S ? ASb 且 A ? ba 所以子串ba是句型baSb的短语。 结论 对于该句型,再没有其它能产生新的短语的推导,所以有结论: 句型baSb总共有三个异于自身的短语: Sb,a,ba 其中Sb,a为直接短语 其中a为句柄 利用语法树求短语、直接短语、句柄 根据定义寻找句型的所有短语、直接短语和句柄这种方法不直观,而且很难知道是否已穷尽所有情况。另一种方法是利用语法树。 子树:由语法树中的某一个结点连同其所有下层的后代结点组成的部分。 简单子树:只有单层分支(即父子两代)的子树。 语法树是四代的。 方法 短语:每棵子树的各端末节点从左向右排列形成一个短语。 直接短语:每棵父子两代的子树(即简单子树)的各端末节点从左向右排列形成一个直接短语。 句柄:位于语法树最左边的父子两代的子树的各端末节点从左向右排列形成句柄。 示例 【例2】文法G2[S]: S→AB A→bB A→Aa B→a B→Sb 求句型baSb的全部短语、直

文档评论(0)

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

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档