自顶向下语法.pptxVIP

  1. 1、本文档共37页,可阅读全部内容。
  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文档。上传文档
查看更多
第六章 自底向上分析;1.自底向上分析方法的概述 ;一、规范归约 -归约 G=(VT,VN,S,P),α, β ∈(VT∪VN)*,A→β∈P, αAw ?αβw 。 归约的过程是: 已知αβw和产生式A→β,用产生式A→β左部A替换αβw中的β,得到符号串αAw。 规范推导(最右推导) 右句型(最右推导可得的句型,规范句型)。;-规范归约 规范归约是最右推导的逆过程。 如果文法G是无二义的,那么,规范推导(最右推导)的逆过程必是规范归约(最左归约)。 规范句型的特点: 句柄后不会出现非终结符号。;;;二、自底向上分析方法;-自底向上分析方法——移进—归约? “移进一归约”分析器使用一个栈和一个存放输入符号串w的缓冲器。 -分析器的初始状态为: 栈???????? 剩余输入符号串 ???????? #??????? w# ;-工作过程: 自左至右把???w 的符号一一移进栈里,边移进边归约。一旦栈顶形成句柄时,就进行归约。这种归约可能持续多次,直至栈顶不再呈现句柄为止。然后,继续向栈里移进符号,重复这个过程,直至分析器的终止状态为: ??栈????????剩余输入符号串 ????????????#S???????? # ;;?工作模型:堆栈的初始状态与终止状态;移进/ 归约/接受/出错,一共四种动作 (暂不理会什么是可归约串) 直观理解:栈中符号串加上未扫描的输入串即是 一个(右)句型; 可归约串:最左素短语(算符优先分析法) 句柄(LR分析法) 模型要点:可归约串总是在栈顶出现,绝不会出 现在栈内部(一旦形成可归约串则必须 立即归约) 实现目标:自左向右扫描一次输入串且在每一时 刻仅需要看到一个单词。;二.算符优先分析法;一、简单算符优先分析方法 按照文法符号(终结符或非终结符)的优先关系确定句柄的。 1.优先关系 1) X ≡ Y 表示X和Y的优先关系相等; 1) X ≡ Y 当且仅当文法中存在产生式 A?…XY... ?P;例 若文法G[S]: S?bAb A?(B|a B?Aa);例 若文法G[S]: S?bAb A?(B|a B?Aa);例 若文法G[S]: S?bAb A?(B|a B?Aa);这三种关系也可以有语法树来得到;这三种关系也可以有语法树来得到;这三种关系也可以有语法树来得到;;从矩阵表可以看出: (1).矩阵元素要么只有一种关系,要么为 空,元素为空时表示该文法的任何句 型中不会出现该符号对的相邻关系, 在分析中若遇到这种相邻关系出现, 则为错,也可以肯定输入符号串不是 该文法的句子。 (2).#的优先级?所有符号, 所有符号?#(符号与#相邻时);简单优先文法的定义 若一个文法是简单优先文法必须满足以下条件: (1).在文法符号集V中,任意两个符号之间最多 只有一种优先关系成立。 (2).在文法中任意的两个产生式没有相同的右部。;简单优先分析法算法: 首先构造相应优先关系矩阵 (1).将输入符号串a1a2…an#依次逐个存入符号栈S中, 直到遇到栈顶符号ai的优先性?下一个待输入符号 aj为止。 (2).栈顶当前符号ai为句柄尾,由此向左在栈中找句 柄的头符号ak, 即找到ak-1?ak为止。 (3).由句柄ak…ai在文法的产生式中查找右部为ak…ai 的产生式,若找到则用相应左部代替句柄,若找 不到则出错,这时可以断定输入符号不是的句子。 (4).重复上述(1)、(2)、(3)步骤直到归约完输入符号 串,栈中只剩文法开始符号为止。 ;自底向上分析方法是一种移进一归约过程, 当分析的栈顶符号串形成句柄时就采取归约 动作,因而自底向上分析法的关键问题是在 分析过程中如何确定句柄。 ;LR分析法正是给出一种能根据当前分析栈 中的符号串(通常以状态表示)和向右顺 序查看输入串的K个(K>0)符号就可唯 一地确定分析器的动作是移进还是归约和 用哪个产生式归约,因而也就能唯一地确 定句柄。LR分析法的归约过程是规范推导 的逆过程,所以LR分析过程是规范归约过 程。 ;1.L

文档评论(0)

131****9843 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档