对输入串abbcde#进行分析,检查该符号串是否是G[S]的句子.pptVIP

对输入串abbcde#进行分析,检查该符号串是否是G[S]的句子.ppt

  1. 1、本文档共28页,可阅读全部内容。
  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文档。上传文档
查看更多
对输入串abbcde#进行分析,检查该符号串是否是G[S]的句子

第六章???自底向上的优先分析法 如何确定算符优先关系? 人为确定: (1)i的优先级最高 (1) ?优先级次于i,右结合 (2)*和/优先级次之,左结合 (3)+和-优先级最低,左结合 (4)括号‘(’,‘)’的优先级大于括号外的运算符,小于括号内的运算符,内括号的优先性大于外括号 (5)#的优先性低于与其相邻的算符 算符优先文法的定义 定义:如果不含空产生式的上下文无关文法 G 中没有形如 A?…BC…的产生式,其中B,C∈VN 则称G 为算符文法(OG)。 例6.1 G[E]:E→E+E|E*E|i 是OG文法 性质1:在算符文法中任何句型都不包含两个相邻的非终结符.(证明P108,用归纳法证明) 性质2:如 Ab 或 bA 出现在算符文法的 句型 ? 中,其中 A∈VN,b∈VT, 则 ? 中任何 含 b 的短语必含有A。(注意:含A的短语不一定含b) 算符优先关系的定义: 在OG中 定义 (算符优先关系) 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 规定 若 S a…或 S Ca… 则 # a 若 S …a 或 S …aC 则 a # 在 OG文法 G 中,若任意两个终结符间至多有一种算符优先关系存在,则称G 为算符优先文法(OPG)。 注意:不允许 bc, bc, b=c中任两个 同时存在。 b=c 不一定 c = b。 例:G:(1) E→E+E   (2) E→E*E (3) E→i 对i+i*I可以画两棵语法树如图 E E E+E E*E E*E E+E i i i i i i 结论 : 算符优先文法是无二义的。 算符优先关系表的构造 首先定义如下两个集合: FIRSTVT(B)={b|B b… 或 B Cb…} LASTVT(B)={a|B …a 或 B …aC} 按如下算法计算出给定文法中任何两个终结符对(a,b)之间的优先关系: 1) ‘=‘关系 直接看产生式的右部,若出现了 A →…ab…或 A →…aBb,则a=b 2)’‘关系 求出每个非终结符B的FIRSTVT(B) 若A→…aB…,则?b∈FIRSTVT(B),则ab 即aFIRSTVT(B) 3)’’关系 求出每个非终结符B的LASTVT(B) 若A→…Bb…,则?a∈LASTVT(B),则ab 即 LASTVT(B)b 计算算符优先关系 例文法G’[E’]: (0) E’→#E# (1) E→E+T (2) E→T (3) T→T*F (4) T→F (5) F→P?F|P (6) P→(E) (7) P→i (0)E’→#E# (1) E→E+T (2) E→T (3) T→T*F (4) T→F (5) F→P?F|P (6) P→(E) (7) P→i 表达式文法G’[E’]的算符优先关表 算符优先分析 算符优先分析的可归约 串是句型的最左素短语 定义 G 的句型的素短语是一个短语,它至少包含一个终结符,且除自身外不再包含其他素短语。 算符优先分析算法 前面介绍了如何对已给定的文法按其产生式构造算符优先关系表,有了算符优先关系表并满足算符优先文法时,我们就可以对任意给定的符号串进行归约分析,进而判定输入串是否为该文法的句子。然而用算符优先分析法的归约过程与规范归约是不同的。 例:表达式文法: (0)E’→#E# (1) E→E+T (2) E→T (3) T→T*F (4) T→F (5) F→P?F|P (6) P→(E) (7) P→i 对i+i#的规范规约和算符优先规约见P115表6.7和表6.8 算符优先分析法 简单,直观,有利于表达式分析,易于手工实现 比规范归约快 可能导致把错误的句子得到正确的归约 * * 它的实现思想是对输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移入边分析,一旦栈顶符号串形成某个句型的句柄时,(该句柄对应某产生式的右部),就用该产生式的左部非终结符代替相应右部的文法符

文档评论(0)

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

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

1亿VIP精品文档

相关文档