编译原理第4章6剖析.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 4.5.3 SLR(1)分析法 * 这个条件比较苛刻,对于大多数程序设计语言来说,一般都不能满足LR(0)文法的条件,即使是描述一个算述表达式的简单文法也不是LR(0)文法。 例 考虑算术表达式 的文法 : 每一个LR(0)项目集中都不含有冲突的项目, 由于LR(0)文法要求文法的 E→E+T | T T→T*F | F F→(E) | id 将文法拓广并对规则进行编号 直接构造出识别文法规范句型活前缀的DFA下如图所示。 0. E→E 1. E→E+T 2. E→T 3. T→T * F 4. T→F 5. F→(E) 6. F→id E→E+·T T→·T*F T→·F F→·(E) F→·id I6: id I8:F→ (E·) E→E·+T E + T I9:E→E+T· T→T·*T * F I10:T→T*F· I11:F→(E) · ) 识别表达式文法活前缀的DFA E→·E E→·E+T E→·T T→·T*F T→·F F→·(E) F→·id I0: E I1:E→E· E→E·+T I2: E→T· T→T·*F T I3:T→F· F F→(·E) E→·E+T E→·T T→·T*F T→·F F→·(E) F→·id I4: ( ( F T I5: F→id· id + F ( id I7: T→T*·F F→·(E) F→·id ( id id * E + 不难看出在I1,I2,I9中既含有移进项目,又含有归约项目,因而这个表达式的文法不是LR(0)文法。 根据构造LR(0)分析表的方法,构造出的LR(0)分析表中在2状态和9状态下面临输入符号‘*’时含多重定义元素,见下表。 表达式文法的LR(0)分析表 0 1 2 3 4 5 S5 S4 S6 acc S5 S4 r2 r2 S7r2 r2 r2 r2 r4 r4 r4 r4 r4 r4 1 2 3 8 2 3 r6 r6 r6 r6 r6 r6 GOTO 状态 ACTION id + * ( ) $ E T F 6 7 8 9 10 S5 S4 S5 S4 S6 S11 r1 r1 S7r1 r1 r1 r1 r3 r3 r3 r3 r3 r3 r5 r5 r5 r5 r5 r5 11 9 3 10 为了对语言句子进行确定性的分析,需要解决 移进—归约或归约—归约冲突。 我们采用对含有冲突的项目集向前查看一个输入符号的办法来解决冲突,

文档评论(0)

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

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

1亿VIP精品文档

相关文档