第6章1LR.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文档。上传文档
查看更多
I2: S – L? = R R – L? 考虑分析表达式 id = id时,在工作到 I2 处已经把第一个 id 归约到 L了, 看到下一个输入 = 要作决策,第一个项目设置 Action[2,=] 为S6, 即把赋值的其它部分找到. 但 =也是属于 Follow(R) 的. 第二个项目要用 R–L归约.出现 shift-reduce 冲突. SLR 分析程序没有记住足够的左文以决定当见到一个能归约到 L的串而在输入中碰上 = 时会发生什么.虽然在栈顶的符号序列可以归约到 R,但我们不能要这个选择,因为不可能有规范句型以 R = …开头 (有以 *R = ... 开头的规范句型). SLR(1)的局限 follow 集包含了在任何句型中跟在 R 后的符号但没有严格地指出在一个特定的推导里哪些符号跟在 R后.所以需要扩充状态以包含更多的信息:follow 集的哪些部分 才是进到该状态最恰当的归约依据. 处在状态 2时,试图构建句子有两条路: 1.S ?L = R 或 2.S ? R ? L. 如下一符号是 =, 那就不能用第二个选择,必须用第一个,即移进. 只有下一个符号是#时才能归约. 尽管 = 属于 Follow(R) ,那是因为一个 R 可以出现在别的上下文中,在现在这个特定的情况,它不合适,因为在用S ? R ? L推导句子时, = 不能跟在R后. . 讨论例6.6后有以下结果: 不是LR(0)文法 ∵ I2 S→L.=R R→ L.中存在移进/归约冲突 SLR能否解决I2中的冲突 ∴FOLLOW(R)={#,=}与{=}交不为空 不是SLR(1)文法 想早知信息. 若用 R→L 归约 则形成 R=… 而 R=不是活前缀 LR(1)方法 若 A ?? .B ? ? I 则 B ? . ? ( B ? ? 是一产生式) ? I 把FIRST( ? )中的符号作为用B ? ? 归约的搜索符,向前搜索符 LR(1)项目( 配置)的一般形式 [ A ?? . ?, a ] 意味着处在栈顶是?的相应状态,期望相应?在栈顶的状态,然后只有当跟在?后的token是终结符a时进行归约 。 a 称作该项目( 配置) 的向前搜索符( lookahead ) 向前搜索符( lookahead )只对圆点在最后的项目起作用 A – ? ? ?, a .意味着处在栈中是? ?的相应状态,但只有当下一个输入符是a时才能进行归约. a 要么是一个终结符,要么是输入结束标记# 有多个向前搜索符,比如a,b,c时,可写作 A – u?, a/b/c 构造LR(1)项目集规范族和G0函数 closure(I)按如下方式构造 (1) I的任何项目属closure(I); (2)若[A→β1.Bβ2,a]∈closure(I),B→δ是一产生式,那么对于FIRST(β2a)中的每个终结符b,如果[B→.δ,b]不在closure(I)中,则把它加进去; (3)重复(1)(2),直至closure(I)不再增大。 GO函数: 若I是一个项目集,X是一个文法符号 GO(I, X)= closure(J) 其中 J={ 任何形如[A→αX.β,a]的项目∣[A→α.Xβ,a]∈I} LR(I)项目规范族C的构造算法类同LR(0)的,只是初始时: C={ closure({[S`→.S,#]})}; 例6.5的LR(1)项目集规范族 I0: S`→.S, # I5: S →ae.c,# S →.aAd, # A →e.,d S →.bAc, # I6: S →bA.c, # S →.aec, # I7: S →be.d, # S →. bed, # A →e.,c I1: S` →S.,# I8: S →aAd., # I2: S` →a.Ad, # I9: S →aec., # S →a.ec, # I10: S →bAc., # A →.e, d I11: S →bed., # I3: S →b.Ac, # S →b.ed, #

文档评论(0)

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

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

1亿VIP精品文档

相关文档