第12讲-语法分析-VIII-浅色.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
温故知新$…ai…an输入a1LR分析程序输出 栈actiongotoLR分析器的模型smXmsm-1Xm-1…s01。句柄与某个产生式的右部符号串相同2。句柄是句型的一个子串3。把句柄归约成非终结符代表了最右推导逆过程的一步上下文无关文法!最左推导最右推导自上而下自下而上句柄归约移进-归约冲突移进-归约分析递归下降预测分析归约-归约冲突LL(1)文法LR文法非递归的预测分析2个函数活前缀右句型的前缀,该前缀不超过最右句柄的右端简单的LR方法(SLR)规范的LR方法向前看的LR方法(LALR)回顾活前缀活前缀的识别LR(0)项目集构建识别活前缀的DFALR(1)分析练习题目基于LR(1)项目来构造识别G?活前缀的DFA,并基于DFA构建分析表.S ? V = ES ? E V ? * EV ? id E ? V LR(1)分析练习解答过程S ? V = ES ? E V ? * EV ? id E ? V S ’ ? SS ? V = ES ? E V ? * EV ? id E ? V 1.对原文法进行拓广 (添加产生式S’-S )2.拓广文法S ?的LR(0)项目集规范族拓广文法G?的LR(0)项目集规范族I0: S? · S S? · V=E S? · E V? · *E V? · id E? · VI1: S?S · I2: S?V · =E E?V · I3: S?E ·I4: V?* · E E? · V V? · *E V? · idI5: V?id ·I6: S?V= · E E? · V V? · *E V? · idI7: V?*E ·I8: E?V ·I9: S?V=E ·识别产生式文法活前缀的DFAI1SEI6S ? V = ? EE ? ? VV ? ? *EV ? ? idS?? SS ? ? V=ES ? ? EV ? ? *EV ? ? idE ? ? VS? S ?S ? V=E ?I0I9idVI3S ? V ?=EE ? V ?=I2V**V ? *? EE ? ? VV ? ? idV ? ? * EidEI4VE ? V ?I8I5V ? id ?EidV ? *E ?I7*I3S ? E ?本讲纲要SLR(1)SLR(1)分析表的构造SLR(1)文法描述能力有限LR(1)分析LALRLR文法和LR分析方法的特点3.5 LR分析器从文法构造的识别活前缀的DFA的一些特点 概念:有效项目 如果S ??*rm ?Aw ?rm ??1?2w, 那么项目A??1·?2对活前缀??1是有效的。一个项目可能对好几个活前缀都是有效的。 S ??*rm ?AAw ?rm ?A?1?2w ?rm ? ?1?2?1?2w 对任何活前缀??1,从项目A??1·?2有效这个事实可以知道如果?2 ? ?,应该移进如果?2 = ?,应该用产生式A??1归约3.5 LR分析器从文法构造的识别活前缀的DFA的一些特点 概念:有效项目 如果S ??*rm ?Aw ?rm ??1?2w, 那么项目A??1·?2对活前缀??1是有效的。一个项目可能对好几个活前缀都是有效的。 一个活前缀可能有多个有效项目。 一个活前缀?的有效项目集是从这个DFA的初态出发,沿着标记为?的路径到达的那个项目集(状态) 。 3.5 LR分析器例 串E + T *是活前缀,读完它后,DFA处于状态I7 I7: T?T *·F, F? ·(E ), F? ·id E ? ? E E ? ? E E ? ? E ? E+T ? E+T ? E+T ? E+T * F ? E+T * F ? E+T * F ? E+T * id ? E+T * (E ) ? E+T* id ? E+T * F * id概念:有效项目如果S??*rm ?Aw ?rm ??1?2w,那么项目A??1·?2对活前缀??1是有效的。SLR分析表的构建一般性构造过程首先对文法进行拓广添加产生式S’-S构建识别活前缀的DFA基于DFA构建分析表SLR分析表的构建从DFA构造SLR分析表状态i从Ii构造,它的action函数如下确定:如果[A??·a?]在Ii中,并且goto(Ii, a ) = Ij,那么置action[i, a]为sj。如果[A??·]在Ii中,那么对FOLLOW(A)中的所有a,置action[i, a]为rj,j是产生式A??的编号。如果[S ??S·]在Ii中,那么置action[ i, $ ]为接受acc。如果出现动作冲突,那么该文法就不是SLR(1)的。 SLR分析表的构建从DFA构造SLR分析表状态i从Ii构造,它的action函数如下确定: . . .使用下面规则构造状态i的goto函数:对所有的非终结符A,如

文档评论(0)

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

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

1亿VIP精品文档

相关文档