编译原理 第六章.pptVIP

  1. 1、本文档共30页,可阅读全部内容。
  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文档。上传文档
查看更多
第6章 自底向上语法分析 6.1自底向上优先分析概述 优先分析可分为:简单优先分析法和算符优先分析法。 简单优先分析法:对一个文法按一定原则求出该文法所有符号(终结符和非终结符)之间的优先关系,按照这种关系确定归约过程中的句柄,它的归约过程实际上是一种规范归约。 特点:准确、规范;分析效率低,实用价值不大。 算符优先分析法:只规定算符之间的关系,即只考虑终结符之间的优先关系,由于算符优先分析不考虑非终结符之间的优先关系,在归约过程中只要找到可归约串就归约,并不考虑归约到哪个终结符名,因而它不是规范归约。 特点:存在不规范问题,分析速度快,适用于表达式的分析。 6.2 简单优先分析法 简单优先分析法按照文法符号(终结符和非终结符)之间的优先关系确定句柄的,因此首先介绍任意两个文法符号 之间的优先关系是怎样确定的。 6.2.1 优先关系 定义: X Y 表示X和Y的优先关系相等 X Y 表示X的优先性比Y的优先性大 X Y 表示X的优先性比Y的优先性小 ⑴ X Y 当且仅当G中存在产生式规则 A→…XY… ⑵ X Y 当且仅当G中存在产生式规则 A→…XB…,且B Y… ⑶ X Y 当且仅当G中存在产生式规则 A→…BD…,且B X…和 D Y… 例 6.2?若有文法G[S]:   S →bAb   A →(B|a B →Aa) 根据定义求文法符号之间的优先关系。 语法树结构(层次)表示,如图6.2所示。 优先关系矩阵表示,如表6.2所示。 简单优先分析法的操作步骤: ⑴ 将输入符号串a1a2…an#依次存入符号栈S中,直至遇到ai的优先性 下一个符号aj时为止。 ⑵ 栈顶符号为ai句柄尾,由此向左在栈中找句柄头符号aK,即找到ak-1 ak为止。 ⑶ 在文法的产生式中查找右部为ak…ai的产生式,若找到则用相应左部替代句柄,若找部到则出错,可判定输入串不是该文法的句子。 ⑷ 重复上述⑴ ⑵ ⑶步骤直至归约完输入符号串,栈中只剩下文法的开始符号为止。 【本章小结】   语法分析是编译程序的核心部分。语法分析的作用是识别由词法分析给出的单词符号序列是否是给定文法的正确句子(程序),目前语法分析常用的方法有自顶向下(自上而下)分析(见第5章)和自底向上(自下而上)分析两大类。而自底向上分析又可分为算符优先分析和LR分析(见第7章),它们的分析都是移进-归约过程,是自顶向下最右推导的逆过程,但LR分析是规范归约 ,算符优先分析不是规范归约。 算符优先分析的缺点是对文法有一定的限制,在实际应用中往往只用于算术表达式的归约。由于算符优先分析不是规范归约,所以可能把不是文法的句子错误的归约成功。 本章学习的重点:   对一个给定的算符文法能构造算符优先关系分析表,并能判别所给文法是否为算符优先文法。对一个给定的输入串能应用算符优先关系分析表给出分析(归约)步骤,并最终判断所给输入串是否为该文法的句子。分清规范句型的句柄和最左素短语的区别,进而分清算符优先归约和规范归约的区别。 * * 【学习目标】  算符优先分析法是自下而上(自底向上)语法分析的一种,尤其适应于表达式的语法分析,由于它的算法简单直观易于理解,因此,也是学习其它自下而上语法分析的基础。通过本章学习学员应掌握: ◇ 对给定的文法能够判断该文法是否是算符文法 ◇ 对给定的算符文法能够判断该文法是否是算符优先文法 ◇ 对给定的算符文法能构造算符优先关系表,并能利用算符优先关系表判断该文法是否是算符优先文法。 ◇ 能应用算符优先分析算法对给定的输入串进行移进-归约分析,在分析的每一步能确定当前应移进还是归约,并能判断所给的输入串是否是该文法的句子。 ◇ 了解算符优先分析法的优缺点和实际应用中的局限性。 【本章难重点】   ◇ 通过本章学习后,应该能知道算符文法的形式。   ◇ 对一个给定的算符文法能构造算符优先关系分析表,并能判别所给文法是否为 算符优先文法。   ◇ 分清规范句型的句柄和最左素短语的区别,进而分清算符优先归约和规范归约的区别。   ◇ 算符优先分析的可归约串是句型的最左素短语,在分析过程中如何寻找可归约串是算符优先分析的关键问题。对一个给定的输入串能应用算符优先关系分析表给出分析(归约)步骤,并最终判断所给输入串是否为该文法的句子。   ◇ 深入理解算符优先分析法的优缺点和实际应用中的局限性。 自底向上分析法,也称移进-归约分析法,或自下而上分析,,粗略地说它的实现思想是对输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移入边分析,一旦栈顶符号串形成某个句型的句柄时,(该句柄对应某产生式的右部),就用该产生式的左部非终结符代替相应右

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档