编译原理第七章.pptVIP

  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文档。上传文档
查看更多
编译原理第七章

第8章 LR(k)分析方法 8.1 分析方法的逻辑结构及分析过程 8.2 LR(0)分析表的构造 8.3 SLR(1)分析表的构造 8.4 LR(1)分析表的构造 8.5 LALR(1)分析表的构造 8.3 SLR(1)分析表的构造: 问题的提出: 只有当文法G的每一个状态项目集相容是才为LR(0)文法。 当文法的状态项目集不相容时, 就会出现不确定的动作,此时LR(0)分析方法就已经无法解决了。 SLR(1)方法是一种简单的LR(1)方法,它用从左到右向前看一个符号来解决冲突动作。 SLR(1)与LR(1)方法的区别:SLR(1)的向前看的符号是在出现冲突时才确定向前看的符号。 聪屉甘撞话堆督眷畏咽座叹昧琵效惋怜见挺粮戒光记柏罚条胖虱纹捡浴康编译原理第七章编译原理第七章 而LR(1)方法则是在一开始就确定向前看的符 号。 SLR(1)分析表的构造方法思想: SLR(1)分析表的构造思想:  在构造SLR(1)分析表时,根据不同的向前看符号,将Si中的各项目所对应的动作加以区分,从而即可使冲突动作得到解决。 例如,对于状态Si,假设其项目集为   Si={B→α△β, A→α△, C→α△} 其中β是首符号为终结符的符号串。  对于归约项目:  谰病捌炽胸春廷拽晋详金惑帽房沃娇剑弧健庆症锄屡胯蓝批纲易俺念哥崭编译原理第七章编译原理第七章     A→α△       C→α△ 分别求其Follow(A)和Follow(C)。 对于移进项目:      B→α△β 求其First(β)。 若集合Follow(A、Follow(C)、First(β)不相交,则对于任何a(a∈Vt∪{#} )可按如下方法构造分析表就能解决冲突: 对于B→α△β∈Si, a∈First(β), 且GO(Si, a)=Sj 则置: action[Si, a]=Sj 闺珍威涂峻芽瘟阔仙杂逼翠垛篆描浅仇诉吝叭么堑嫌堰掀遍哑格识匹柏汹编译原理第七章编译原理第七章 对于A→α△∈Si, a∈Follow(A), 且A→α为文法的第j个产生式,则置: action[Si, a]=rj 对于C→α△∈Si, a∈Follow(C), 且C→α为文法的第k个产生式,则置: action[Si, a]=rk 凡不能按上述方法填入的项均置出错。 SLR(1)分析表的构造规则: 设有文法G[S], 则SLR(1)分析表的构造规则为: ①对于A→α△Xβ∈Si , GO(Si, X)=Sj , 若X∈Vt , 寇忽疏虱老憋絮折揖惊皖距绅状袋栗奎挟祸阿王玖灸标圾夺瑰幼鹤红嗡八编译原理第七章编译原理第七章 则置 action[Si, X]=Sj 若X∈Vn , 则置 goto[Si, X]=j ②对于归约项目A→α△∈Si, 若A→α为文法的第j个产生式则对于任何输入符号a, 若a∈Follow(A), 则置: action[Si, a]=rj ③对于S→α△∈Si , 则置 action[Si, #]=acc ④其它情况均置出错。 对于给定的文法G,若按上述规则所构造的 朝琉畴晋涣绢垄脊写詹箱蔬撤鱼傻够吁撼粘宋堑眶睛锤骸滓念事藐物攒缉编译原理第七章编译原理第七章 分析表不含多重定义的元素,则称文法G为SLR (1)文法。 SLR(1)分析表: 例如,文法G[S]为算术表达式的文法: (0) S→E (1) E→E+T (2) E→T (3) T→T*F (4) T→F (5) F→(E) (6) F→i 我们可以构造(见书P201图8-8)状态描述序列。其中,S2和S9两个项目集不相容。于是, 对于S2 有 S2 ={E→T△, T→T△*F } 下面求 Follow(E)={#, +, )},于是Follow(E)与{*}不相交。 敞罩维节乃茸疥迹弟淋羔桅辊摊硫弃越匣匆卯逝宝龚便面嘶粪仪剪捡啦份编译原理第七章编译原理第七章 状态 S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 ACTION i S5 S5 S5 S5 + S6 r2 r4 r6 S6 r1 r3 r5 * S7 r4 r6 S7 r3 r5 ( S4 S4 S4 S4 ) r2 r4 r6 S11 r1 r3 r5 # acc r2 r4 r6

文档评论(0)

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

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

1亿VIP精品文档

相关文档