第六章自下而上分析.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章自下而上分析,自下而上分析法,自下而上,自上而下和自下而上,自下而上的投资策略,自下而上选股,谁提出自下而上的美学,自下而上管理,自下而上加工,自下而上的美学

第6章自底向上优先分析 6.1自底向上优先分析概述 6.2简单优先分析法 6.3算符优先分析法 6.4典型例题及解答 6.1自底向上优先分析概述 自下而上的语法分析过程 1、自下而上的语法分析过程思想 自下而上的语法分析过程是一个最左归约的过程,从输入串开始,朝着文法的开始符号进行归约,直到到达文法的开始符号为止的过程。 注意:输入串在这里是指从词法分析器送来的单词符号组成的序列。 6.1自底向上优先分析概述 例如:有文法如下,语句abbcde是不是该文法的合法语句? (1)S ?aAcBe (2)A ?b (3)A ?Ab (4)B ?d 6.1自底向上优先分析概述 1、优先分析器(Precedence Parser) 简单优先分析法 算符优先分析法 2、LR分析器 6.3算符优先分析法 1、算符优先分析法: 所谓算符优先分析法是仿效四则运算的计算过程而构造的一种语法分析方法。 2、算符优先分析法的特点: 简单直观,特别方便于表达式分析,易于手工实现,是自下而上的归约过程。 3、算符优先分析法的关键: 规定算符(终结符)的优先级及结合性质。 例如:例如:若有文法G为:   (1) E→E+E (2) E→E*E (3) E→i 对输入串i1+i2 * i3的归约过程可表示为 6.3.1 直观算符优先分析法 优先关系 a b表示a的优先性低于b。 a b表示a的优先性等于b,即与b相同。 a b表示a的优先性高于b。 但必须注意,这三个关系和数学中的<,=,>是不同的。当有关系a b时,却不一定有关系b a,当有关系a b时,却不一定有b a, 规定优先级和结合性如下: 1、↑优先级最高。遵循右结合,相当↑↑。 例如:2↑3↑2=2↑9=512。(而若为左结合则2↑3↑2=8↑2=64) 也就是同类运算符在归约时为从右向左归约。即 i1↑i2↑i3式先归约i2↑i3。 2、 *,/ 优先级其次。服从左结合,相当 * * 、* / 、/ / 、/* 3、+, - 优先级最低。服从左结合,相当 ++、+- 、-+ 、-- 4、对(,)规定括号的优先性大于括号外的运算符,小于括号内的运算符,内括号的优先性大于外括号。对于句子括号#号规定与它相邻的任何运算符的优先性都比它大。此外,对运算对象的终结符i其优先级最高。 6.3算符优先分析法 算符优先关系表 6.3算符优先分析法 算符优先文法的定义 设有一文法G,如果G中没有形如A→…BC…的 产生式,其中B和C为非终结符,则称G为算符文法(Operater Grammar)也称OG文法。 例如:表达式文法E→E+E|E*E|(E)|i   其中任何一个产生式中都不包含两个非终结符相邻的情况,因此该文法是算符文法。 6.3算符优先分析法 性质1 在算符文法中任何句型都不包含两个相邻的非终结符 。 性质2 如果Ab (或bA)出现在算符文法的句型γ中,其中A∈VN ,b∈VT,则γ中任何含b的短语必含有A。 证明:用反证法。   因为由算符文法的性质1知可有:   S ?* γ=αbAβ   若存在B ?* αb,这时b和A不同时归约,则必有S ?* BAβ,这样在句型BAβ中存在相邻的非终结符B和A,所以与性质1矛盾,证毕。注意:含b的短语必含A,含A的短语不一定含b。 6.3算符优先分析法 设G是一个不含ε产生式的算符文法,a和b是任意两个终结符,A、B、C是非终结符,算符优先关系= 、、定义如下 : ① a = b 当且仅当G中含有形如A→…ab…或A→…aBb…的产生式 ② a b 当且仅当G中含有形如A→…aB …的产生式,且B ?+ b… 或B ?+ Cb… ③ a b当且仅当G中含有形如A→…Bb …的产生式,且B ?+ …a 或B ?+ …aC 6.3算符优先分析法 6.3算符优先分析法 定义 设有一不含ε产生式的算符文法G,如果对任意两个终结符对a,b之间至多只有 =、和三种关系中的一种成立,则称G是一个算符优先文法。(Operator Precedence Grammar)即OPG文法。    结论:算符优先文法是无二义性的。 6.3算符优先分析法 由定义6.2和6.3很容易证明前面我们给的表达式文法   E→E+E|E*E|(E)|i 不是算符优先文法。   因为对算符 +、* 来说,由 E→E+E 和 E ?+ E*E 可有 +* ,这由语法子树图(a)也可看出。又可由E→E*E 和 E ?+ E+E 得 +*,由语法子树表示为图(b)。

文档评论(0)

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

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

1亿VIP精品文档

相关文档