编译原理自下而上的语法分析.ppt

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

自下而上语法分析;自下而上的语法分析;最左推导(Left-most Derive) 每次推导都替换当前句型的最左边的非终结符。 ——与最右归约对应 最右推导(Right-most Derive) 每次推导都替换当前句型的最右边的非终结符。 ——与最左归约(规范归约)对应,得规范句型;;语法分析树的生成演示;这种分析过程具有如下特点: 从输入串的开始依次读入单词(移进栈中) 。 一旦发现可归约串(某个产生式的右端)就立即归约。 归约就是将栈顶的一串符号用文法产生式的左部代替,归约可能重复多次,然后继续移进。 若最终能归约成文法的开始符号,则分析成功。 关键是如何判断可归约串?;问题的提出: ① 在构造语法树的过程中,何时归约? 当可归约串出现在栈顶时就进行归约。 ② 如何知道在栈顶符号串中已经形成可归约串? 如何进行归约? 通过不同的自底向上的分析算法来解释,不同的算法对可归约串的定义是不同的,但分析过程都有一个共同的特点:边移进边归约。 ;规范归约概念; 例子;句型的短语和句柄举例;短语与语法树的关系;短语与语法树关系的例子;用句柄对句子abbcde进行归约;规范归约的定义;使用修剪语法树的方法来进行归约:;分析器的四种动作;分析成功的条件:栈顶为文法符号,输入串为空。注意,该过程并未涉及如何在栈里找可归约串。实际上,不同的找可归约串的方法,构成了不同的分析算法。 “移进-归约”分析法用栈实现的特点: 可归约串必定位于栈顶,即可归约串之后就是剩余的输入串。 栈内符号串与剩余输入串正好构成一个句型。 ;例:有文法: E-E+T|T T-T*F|F F-(E)|i 对输入串 i1+i2*i3 的规范归约过程:; 动作 栈 输入缓冲区 1) 准备 # i1+i2*i3# 2) 移进 #i1 +i2*i3# 3) 归约 F→i #F +i2*i3# 4) 归约 T→F #T +i2*i3# 5) 归约 E→T #E +i2*i3# 6) 移进 #E+ i2*i3# 7) 移进 #E+i2 *i3# 8) 归约 F→i #E+F *i3# 9) 归约 T→F #E+T *i3# 10) 移进 #E+T* i3# 11) 移进 #E+T*i3 # 12) 归约 F→i #E+T*F # 13) 归约 T???T*F #E+T # 14) 归约 E→E+T #E # 15) 接受;算符优先分析;算符文法:一个上下无关文法G,如果没有P-?,且没有P-...QR...(P,Q,R属于非终结符),则G是一个算符文法。 算符优先关系的定义: a b,G中有P-...ab...或P-...aQb... (在同一产生式中) a b,G中有P-...aR...的产生式,且R=b...或R=Qb... a b,G中有P-...Rb...的产生式,且R=...a或R=...aQ ;例:E→E+E | E*E | (E) | i 证明不是OPG文法。 因为:E→E+E , E?E*E 则有 + * 又因为:E→E*E, E?E+E 则有 + * 所以不是算符优先文法。;算符优先关系表的构造 ;LASTVT集 定义:对每个非终结符P, LASTVT(P)={a|P = ...a或P =...aQ, a为终结符,P,Q为非终结符};构造优先关系表 如果每个非终结符的FIRSTVT和LASTVT集均已知,则可构造优先关系表。 若产生式右部有...aP...的形式,则对于每个b∈FIRSTVT(P)都有a b 若产生式右部有...Pb的形式,则对于每个a∈LASTVT(P)集,都有a b 若产生是形如:A→…ab… 或 A→…aBb…形式,则有a b 构造优先关系表的算法如下:;For 每条形如P?X1X2…Xn的产生式 do for i =1 to n-1 do { if Xi和Xi+1都是终结符 then Xi = Xi+1 if i= n-2 且 xi和Xi+2都是终结符, Xi+1为非终结符 th

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档