第5章 自底向上优先分析技术.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文档。上传文档
查看更多
第5章 自底向上优先分析技术.ppt

第5章 自底向上优先分析技术 本章学习目标 自顶向下分析法是从文法的识别符开始,试图推导出输入符号串;自底向上分析方法与自顶向下的分析方法完全相反,它从输入符号串出发,试图归约到文法的识别符。本章要点: 自底向上分析法的基本原理 简单优先分析技术 算符优先分析法 优先函数 自底向上分析方法 从语法分析的角度考虑,自底向上的语法分析过程就是以输入符号串为语法树的末端结点符号串,试图向着根结点方向向上构造语法树,使识别符号正是语法树的根结点。 基本思想:从输入串开始,朝着文法的开始符号进行最左归约,直到到达文法的开始符号为止。主要是进行移进或归约操作,采用最左归约。 注意:输入串在这里是指从词法分析器送来的单词符号组成的二元式的有限序列。 自下而上分析的PDA 自下而上分析的PDA 自下而上分析的PDA 工作方式:移进-归约方法 自左至右把输入 串的符号一个一个移进栈,在移进过程中不断查看栈顶符号串,一旦形成某个句型的句柄时,就将此句柄用相应的产生式左部替换(归约),若再形成句柄,就继续替换,直到栈顶不再形成句柄为止。然后继续移进符号,重复上面的过程直到栈顶只剩下文法的开始符号,输入串读完为止,这样就认为识别了一个句子。 自下而上分析的PDA(续) 注:1)初态时栈内仅有栈底符“#”,读头指在最左单词符号上。 2)语法分析程序执行的动作: a)移进 读入一个单词并压入栈内,读头后移; b)归约 检查栈顶若干个符号能否进行归约,若能,就以产生式左部替代该符号串,同时输出产生式编号; 注:c)识别成功 移进-归约的结局是栈内只剩下栈底符号和文法开始符号,读头也指向语句的结束符; d)识别失败 例: 给出文法 A?aBb B?Bb|b 给定某个符号串“abbb”,判定该输入串是否合法。 在上例中的移进—归约过程中的第7步中,栈顶中出现的符号可以认为是Bb或aBb,在归约时是用Bb还是aBb,就要作出选择,如果选择Bb,则归约的结果是aA,aA就不能再归约,必须退回重新选择,选择aBb作为可归约串。 由此可见,在“移进-归约”过程中,选择哪一个符号串进行归约是至关重要的。对于这个可归约串,在不同的语法分析过程中有不同的称呼,在简单优先分析中称为“句柄”,在算符优先分析中称为“素短语”。 常用的自下而上分析方法 优先分析 简单优先分析 算符优先分析 LR分析 简单优先分析方法 基本思想 对句型中相邻的文法符号规定优先关系,以寻找句型中的句柄。 规定句柄内各相邻符号之间具有相同的优先 规定句柄两端符号优先级要比位于句柄之外而又和句柄相邻的符号的优先级高,以先归约句柄 对于文法中所有符号,只要它们可能在某个句型中相邻,就要为它们规定相应的优先关系,若某两个符号永远不可能相邻,则它们之间就无关系 优先关系 在讲简单优先分析之前,先介绍一种关系,称之为优先关系。 设X和Y为文法G中的符号,可以是终结符或非终结符。在简单优先分析方法中,可以定义三种简单优先关系。 (1)优先性等于X=Y,表示X和Y 的优先关系相等。满足优先关系等于的定义为:当且仅当G存在产生式规则即A??XY?。 (2)优先性低于XY表示X的优先性比Y的优先性低当且仅当在G中存在产生式规则:A??XB?,且B=+Y?。Y是一个非终结符 (3)优先性高于XY表示X的优先性比Y的优先性高。当且仅当在G中存在产生式规则即A??BD?,且B=+?X和D=*Y?。B是一个非终结符。 ‘#’用来表示句子括号‘#’的优先性所有的符号,所有的符号 ’#’ 简单优先文法定义 一个文法G,若它不含?产生式,也不含任何右部相同的不同产生式,并且它的任何符号对(X,Y),或者没有关系,或者存在下述三种关系:=、、之一,则称该文法是一个简单优先文法。 简单优先分析准确、规范,但分析效率较低,实际价值不大,而算符优先分析则相反,它不是规范归约,但分析速度快,适应于表达式的分析。 简单优先分析法是按照文法符号的优先关系确定句柄,包括任意两个文法符号之间的优先关系、如何构造优先关系表,如何进行语法判断和编写语法分析程序。 例:若有文法 S?bAb A?(B|a B?Aa) 设计出该文法的简单优先关系矩阵。 根据上面提到的,和=的定义,由文法的产生式可以求得文法符号之间的优先关系如下: 1)=关系:由S?bAb,A?(B,B?Aa)可以得到: b=A, A=b,(=B, A=a, a=) 2) 关系:由S?bAb,且A=+(B,A=+a,可以得到: b(,ba 由A?(B且B=+(B…;B=+a…;B=+A…;可得: ((,(a,(=A。 3)

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档