同济大学编译原理第五章语法分析——自下而上分析概要.ppt

同济大学编译原理第五章语法分析——自下而上分析概要.ppt

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

* 项目集就是对于活前缀的有效项目的集合 * SLR(1)分析表的构造 假定一个LR(0)规范族中含有如下的项目集(状态)I: I={ X→ ? · bβ, A → ?· , B → ?· } 该项目集中含有移进-归约冲突和归约-归约冲突。 如何解决这种冲突? LR(0)在归约时不向前看输入符号; 在LR(0)基础上,如果存在移进-归约冲突或归约-归约冲突,则LR(k)方法通过向前看k个输入符号来解决冲突(利用上下文信息来消除当前的歧义) 因为只对有冲突的状态才向前查看一个符号,以确定做哪种动作,因而称这种分析方法为简单的LR(1)分析法,用SLR(1)表示 对于归约项目A? ? · ,B ? ? · 分别求Follow(A)和Follow(B),如果满足如下条件 FOLLOW(A)∩FOLLOW(B)=? FOLLOW(A)∩{b}= ? FOLLOW(B)∩{b}= ? 那么,当在状态I时面临某输入符号为a时,则构造分析表时用以下方法即可解决冲突动作。 (1) 若a=b,则移进。 (2) 若a∈Follow(A),则用A → ? 进行归约。 (3) 若a∈Follow(B),则用B → ? 进行归约。 (4) 此外,报错。 SLR(1)文法 假若一个文法G的拓广文法G?的活前缀识别自动机中对于形如I={ X→ ? · bβ, A → ?· , B → ?· }含有移进-归约冲突和归约-归约冲突的状态(项目集)满足下述情况: FOLLOW(A)∩FOLLOW(B)=? FOLLOW(A)∩{b}= ? FOLLOW(B)∩{b}= ? 则称G是一个SLR(1)文法。 SLR(1)分析表的构造 例如文法: (0) S’ →E ????? (1) E→E+T ????? (2) E→T ????? (3) T→T*F ????? (4) T→F ????? (5) F→(E) ????? (6) F→i 状态描述序列如下: 状态 项目集 后继符号 后继状态 I0 { S’→ · E E→ · E+T E→ · T T→ ·T*F T→ · F F→ ·(E) F→ ·i } E E T T F ( i S1 S1 S2 S2 S3 S4 S5 I1 { S’→E · E→E · +T } #S’→E + S12 S6 I2 {E→T· T→T· *F } #E→T · * S12 S7 I3 {T→F · } #T→F S12 状态 项目集 后继符号 后继状态 I4 {F→(· E) E→· E+T E→ · T T→·T*F T→· F F→·(E) F→·i } E E T T F ( i S8 S8 S2 S2 S3 S4 S5 I5 {F→i· } #F→i S12 I6 {E→E+·T T→ · T*F T→ · F F→·(E) F→·i} T T F ( i S9 S9 S3 S4 S5 I7 {T→T* · F F→ ·(E) F→ ·i } F ( i S10 S4 S5 状态 项目集 后继符号 后继状态 I8 {F→( E · ) E→E · +T } ) + S11 S6 I9 {E→E+T · T→T · *F } #E→E+T * S12 S7 I10 {T→T*F · } #T→T*F S12 I11 {F→( E ) · } #F→(E) S12 I12 { } 由上图可见,I1、I2和I9的项目集均不相容,其有移进项目和归约项目并存,构造LR(0)分析表如下: 状 态 ACTION GOTO i + * ( ) # E T F S0 S5 S4 1 2 3 S1 S6 acc S2 r2 r2 r2 S7 r2 r2 r2 S3 r4 r4 r4 r4 r4 r4 S4 S5 S4 8 2 3 S5 r6 r6 r6 r6 r6 r6 S6 S5 S4 9 3 S7 S5 S4 10 S8 S6 S11 S9 r1 r1 r1 S7 r1 r1 r1 S10 r3 r3 r3 r3 r3 r3 S11 r5 r5 r5 r5 r5 r5 SLR(1)方法 从上表也可见在S1, S2, S9中存在移进-归约冲突 。这个表

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档