语法分析-自上而下分析.doc

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 第四章 语法分析—自上而下分析 共 NUMPAGES 28页第 PAGE 2页 DATE \@ yy-M-d 12-2-19 第四章 语法分析—自上而下分析 知识结构: 带回溯分析法 回溯 自上而下分析 面临的问题 左递归 问题的解决 语法分析- 求FIRST、FOLLOW集合的算法 自上而下分析 LL(1)分析法 证明LL(1)文法 构造LL(1)分析表 递归子程序的构造思想 递归子程序法 递归子程序的特点 递归子程序的设计 第一节 语法分析综述 一、语法分析的任务 按照语言即定的语法规则,对字符串形式的源程序进行语法检查,并识别出相应的语法成分。即语法结构是否符合语法规则。 二、语法分析器在编译程序中的地位(一遍扫描) 语法分析器词法分析器源程序 单词符号 分析树 语法分析器 词法分析器 语义分析中间代码生成 语义分析 中间代码生成 取下一个单词 符号表 符号表 三、语法分析方法 通常把语法分析方法分为两大类,既自上而下分析与自下而上分析。 1、自上而下分析方法 实际上是一种产生的方法,分析过程是一个推导过程。 = 1 \* GB2 ⑴自上而下分析过程 从文法G的开始符号S出发,通过反复使用产生式,逐步推导出与输入的符号串完全相匹配的句子。采用最左推导,以文法开始符号为根结点,逐步为输入串自上而下地构造一棵语法树。 面临的输入符号为a,A所有的产生式: A??1 ??2 ? ? ??n = 1 \* GB3 ①若a?FISRT(?i),则指派去执行匹配任务。 = 2 \* GB3 ②若a不属于任何一个候选首字符集,则: a、若 ? 属于某个FISRT(?i)且a?FOLLOW(A),则让A与?自动匹配; b、否则,a的出现是一种错误。 例:设有文法G和输入符号串W:a*a+a G:S ? aA?a A ? BaA?? B ? +? -?*?/ 推导过程: S?aA?aBaA?a*aA?a*aBaA?a*a+aA?a*a+a=W 构造语法树: S a A B a A * B a A + ? = 2 \* GB2 ⑵自上而下分析法 自上而下分析法又可分为确定和不确定的两种。 = 1 \* GB3 ①不确定的分析法(带回溯) 是一种穷举的试探方法,效率低、代价高,极少使用。 = 2 \* GB3 ②确定的分析法(不带回溯) 实现方法简单、直观,便于手工构造或自动生成语法分析器,是目前常用的方法之一。但是对文法有一定的限制。 2、自下而上分析法 = 1 \* GB2 ⑴自下而上分析过程 分析过程是归约过程。从给定的输入串W开始,不断寻找与文法G中某个产生式P的侯选式(右部)进行匹配,并用P代替也称为归约。 = 2 \* GB2 ⑵自下而上分析法 = 1 \* GB3 ①算符优先分析法 定义算符(广义讲是文法的终结符号)之间的某种优先和结合关系,借助这种关系来寻找并确定可归约字符串,并进行归约。 = 2 \* GB3 ②LR分析法 是一类自左向右对输入串进行扫描的自下而上分析方法,分析过程是规范归约的序列。适用于语法分析器的自动构造。

文档评论(0)

celkhn5460 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档