第六章自低而上的优先分析法.ppt

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章学习的重点 对一个给定的算符文法能构造算符优先关系分析表,并能判别所给文法是否为算符优先文法。对一个给定的输入串能应用算符优先关系分析表给出分析(归约)步骤,并最终判断所给输入串是否为该文法的句子。分清规范句型的句柄和最左素短语的区别,进而分清算符优先归约和规范归约的区别。 练习:构造下面文法的算符优先表,并按算符优先分析的算法分析语句if b then i else i# (1)S→if Eb then E else E (2)E→E+T|T (3)T→T*F|F (4)F→i (5)Eb→b * * 步骤 栈 关系 输入串 动作 0 # if b then i else i# 1 #if b then i else i# 移进 2 #if b then i else i# 移进 3 #if N = then i else i# 对b归约 4 #if N then i else i# 移进 5 #if N then i else i# 移进 6 #if N then N = else i# 对i归约 7 #if N then N else i# 移进 8 #if N then N else i # 移进 9 #if N then N else N # 对i归约 10 #N # 归约 11 成功 练习:已知文法G[S]为: S→a|∧|(T) T→T,S|S (1) 计算G[S]的FIRSTVT和LASTVT。 (2) 构造G[S]的算符优先关系表并说明G[S]是否为算符优先文法。 (3) 给出输入串(a,a)#和(a,(a,a))#的算符优先分析过程。 对上题的G[S] (1) 给出(a,(a,a))和(a,a)的最右推导,和规范归约过程。 (2) 将(1)和题1中的(3)进行比较给出算符优先归约和规范归约的区别。 * * * * * * * 文法G[E]:E→E+E|E-E|E*E|E/E|E?E|(E)|i 步骤 符号栈 输入符号串 动作 1) # i+i*i# #i,移进 2) #i +i*i# #i+,归约 3) #E +i*i# #+,移进 4) #E+ i*i# +i,移进 5) #E+i *i# +i*,归约 6) #E+E *i# +*,移进 7) #E+E* i# *i,移进 8) #E+E*i # *i#,归约 9) #E+E*E # +*#,归约 10) #E+E # #+#,归约 11) #E # 接受 对输入串i+i*i的算符优先分析过程 算符优先关系表 归约成功标志:栈中只剩#E,输入符号串剩# * * 6.3.2 算符优先文法的定义 定义6.1 如果不含空产生式的上下文无关文法 G 中没有形如 A?…BC…的产生式,其中B, C∈VN,则称G 为算符文法(OG)。 例如:表达式文法E→E+E|E*E|(E)|i 性质1:在算符文法中任何句型都不包含两个相邻的非终结符。(数学归纳法) 性质2:如 Ab 或 bA 出现在算符文法的句型? 中,其中A∈VN, b∈VT, 则?中任何含b的短语必含有A。(反证法) 注意:含b的短语必含A,含A的短语不一定含b。 * * 算符优先关系的定义6.2 在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 Ba… 则 # a S …a 或 S …aB 则 a # 由语法树结构决定优先性 * * 算符优先文法的定义6.3 在一不含?产生式的OG文法G中,若任意两个终结符间至多有一种算符优先关系存在,

文档评论(0)

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

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

1亿VIP精品文档

相关文档