第4章语法分析-自上而下分析.pptVIP

  1. 1、本文档共99页,可阅读全部内容。
  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文档。上传文档
查看更多
Ch4.语法分析---自上而下分析 本章在编译程序中的地位 复习 上下文无关文法的定义: 一个上下文无关文法G是一个四元式 G=(VT,VN,S,P),其中 VT:终结符集合(非空) VN:非终结符集合(非空),且VT ? VN=? S:文法的开始符号,S?VN P:产生式集合(有限),每个产生式形式为 P??, P?VN, ? ? (VT ? VN)* 开始符S至少必须在某个产生式的左部出现一次。 例 定义只含+,*的算术表达式的文法 G=({i,+,*,(,)},{E},E, P), 其中,P由下列产生式组成: E ? i E ? E+E E ? E*E E ? (E) 对句子(i+i)最左推导 E?(E)?(E+E)?(i+E)?(i+i) 通常,用?1 ?n 表示:从?1出发,经过一步或若干步,可以推出?n。 第4章 自上而下语法分析 掌握: 消除文法左递归,消除回溯,计算FIRST集、FOLLOW集,LL(1)分析条件, LL(1)文法的概念,预测分析表的构造。 了解理解: 自上而下分析方法的基本思想, 自上而下分析的过程。 教学内容: 4.1 语法分析器的功能 4.2 自上而下分析面临的问题 4.3 LL(1)分析法 4.4 递归下降分析程序的构造 4.5 预测分析程序 *4.6 LL(1)分析中的错误处理 4.1 语法分析器的功能 语法分析的基本任务: 是在词法分析识别出单词符号串的基础上,分析判断程序的语法结构是否符合语法规则。 语言的语法结构用上下文无关文法来描述,因此,语法分析器的任务本质上是按上下文无关文法的产生式,确定整个单词串是否构成语法上正确的程序。 语法分析的地位: 是编译过程的核心部分。 语法分析方式: 有自上而下和自下而上两类。 两种方法反映了两种语法树的构造过程。 4.1 语法分析器的功能 自上而下方法 基本思想:它从文法的开始符号出发,反复使用各种产生式,寻找匹配的推导。 也就是从文法的开始符号开始,将它做为语法树的根,向下逐步建立语法树,使语法树的结果正好是输入符号串. 自下而上方法 基本思想:从输入串开始,逐步进行“归约”,直到文法的开始符号。即从树末端开始,构造语法树。 也就是从输入符号串开始,以它做为语法树的结果,自底向上地构造语法树. 注:这里所说的输入符号串指词法分析所识别的单词。 4.2 自上而下分析面临的问题 本节主要是通过例子 说明自上而下分析方法的思想和步骤. 认识自上而下分析时所遇到的主要困难. 例4.1 文法:⑴ S→xAy ⑵ A→** ⑶ A→* 输入串 α=x*y,分析α是否该文法的句子? 自上而下分析 自上而下分析方法的思想: 从文法的开始符号出发,向下推导,试图推出句子,匹配输入符号串,寻找输入串的最左推导,并按与最左推导相对应的顺序,自上而下从左到右地建立输入串的语法分析树。 自上而下分析方法的步骤:(带回溯的试探过程) ⑴ 遇非终结符, 就试图用某个候选式展开, 期望此候选能匹配输入串, 若不能匹配, 则要回溯。 ⑵ 遇终结符,就进行匹配,然后移动输入串指针ip指向下一个符号。 回溯是一项复杂而费时的工作,须废弃已做的许多工作,恢复到前面的某一情况,效率很低。 自上而下分析 ※ 推导过程中,试图根据当前的输入符号判断使用非终结符的哪个候选式去替换。 ※ 分析过程中,当一个非终结符用某一个候选匹配成功时,这种匹配可能是暂时的。出错时,不得不“回溯”。 下面讨论自上而下分析法存在的困难和缺点 回溯、虚假匹配、左递归、当报告分析不成功时难于知道输入串中出错的确切位置,等 候选式的确定与回溯问题 自上而下分析是一种反复用可能的候选式去进行试探的过程,不能预知本次试探是否会成功,若不成功则需要回溯。 例如文法: S→xAy A→**|* 判定句子x*y是否该文法定义的语言的句子。 希望:当要进行关于某个非终结符的推导时,能够根据当前输入符号确定候选式,避免回溯。 左递归 文法的左递归性 文法存在产生式P + Pα 直接左递归:P → Pα 间接左递归:存在推导P → Aα, A + Pβ 文法具有左递归性,采用自上而下方法分析,可能会陷入无限循环,分析不下去。 4.2 自上而

文档评论(0)

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

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

1亿VIP精品文档

相关文档