《编译原理课程教案》第4章:自下而上语法分析.pptVIP

《编译原理课程教案》第4章:自下而上语法分析.ppt

  1. 1、本文档共71页,可阅读全部内容。
  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文档。上传文档
查看更多
《编译原理课程教案》第4章:自下而上语法分析

自下而上语法分析方法;本章要求;G = ({E}, {i, +, *, (, ) } , P , E) P: E ? E + E E ? E * E E ? ( E ) E ? i ;自下而上的语法分析;最左推导(Left-most Derive) 每次推导都替换当前句型的最左边的非终结符。——与最右归约对应 最右推导(Right-most Derive) 每次推导都替换当前句型的最右边的非终结符。——与最左归约(规范归约)对应,得规范句型;;这种分析过程具有如下特点: 从输入串的开始依次读入单词(移进栈中) 。 一旦发现可归约串(某个产生式的右端)就立即归约。 归约就是将栈顶的一串符号用文法产生式的左部代替,归约可能重复多次,然后继续移进。 若最终能归约成文法的开始符号,则分析成功。 由于总是将句型的最左边的可归约串替换成非终结符,该方法与最右推导对应。 关键是如何判断可归约串?;语法分析树的生成演示;问题的提出: ① 在构造语法树的过程中,何时归约? 当可归约串出现在栈顶时就进行归约。 ② 如何知道在栈顶符号串中已经形成可归约串? 如何进行归约? 通过不同的自底向上的分析算法来解释,不同的算法对可归约串的定义是不同的,但分析过程都有一个共同的特点:边移进边归约。 ;规范归约的概念;例:考虑如下文法:;从语法分析树来识别: 一棵子树是由树的某个结点连同它的所有子孙组成的。 子树的所有端末结点自左至右排列成一个相对子树根的短语。 直接短语:只有父子两代结点形成的短语。 句柄:最左子树的直接短语。;对下述文法,求句型 E+T * F + i的短语、直接短语、句柄;给定右边的文法,用句柄对符号串abbcde进行归约;规范归约的定义:;;练 习;;规范归约分析中栈的使用;例2:有文法: E ? E+T|T T ? T*F|F F ? (E)|i 对输入串 id1+id2*id3 的规范归约过程:; 动作 栈 输入缓冲区 1) 准备 # id1+id2*id3# 2) 移进 #id1 +id2*id3# 3) 归约 F→id #F +id2*id3# 4) 归约 T→F #T +id2*id3# 5) 归约 E→T #E +id2*id3# 6) 移进 #E+ id2*id3# 7) 移进 #E+id2 *id3# 8) 归约 F→id #E+F *id3# 9) 归约 T→F #E+T *id3# 10) 移进 #E+T* id3# 11) 移进 #E+T*id3 # 12) 归约 F→id #E+T*F # 13) 归约 T→T*F #E+T # 14) 归约 E→E+T #E # 15) 接受;练习;3. 过程描述: repeat repeat 将输入串最左边的符号移入栈内 until 在栈里符号串中找到一个可归约串; 归约可归约串 until 文法开始符号出现在栈顶或者发现错误。;;分析器的四种动作;移进归约分析中的问题;语法分析树的表示;优先分析法有两种: ①简单优先分析法(规范归约)——文法按一定原则规定文法符号的优先关系 ②算符优先分析法(不规范归约)——规定算符之间的优先关系;算符优先分析;优先关系的定义:;1.算符文法:如果文法G没有P?...QR...(P,Q,R属于非终结符)的产生式,(主要是看产生式中是否包含两个非终结符相邻的情况) 2.算符优先关系的定义:文法G是一个不含?-产生式的算符文法,定义终结符a、b之间的优先关系 ①a b,G中有P?...ab...或P?...aQb... (在同一产生式中) ②a b,G中有P?...aR...的产生式,且R=b...或R=Qb... (注意ab相邻) ③a b,G中有P?...Rb...的产生式,且R=...a或R=...aQ (注意ab相邻) ;例:E→E+E | E*E | (E) | i 证明不是算符优先文法。 因 为:E→E+E ,E?E*E 则有 + *(由规则2) 又因

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档