编译原理_第4章_第3节_LR分析法.pptVIP

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理_第4章_第3节_LR分析法.ppt

例:构造G[S]的项目集规范族 S?abdD S?aBc B?b S’?S S’??S, S??abdD , S??aBc I0=Closure({S’??S}): I1=GO(I0, S): S’?S? I2=GO(I0, a): VN={S’,S,B,D} VT={a,b,c,d} S?a?bdD, S?a?Bc, B??b I3=GO(I2, b): S?ab?dD, B?b? I4=GO(I2, B): S?aB?c I5=GO(I3, d): S?abd?D, D??d I6=GO(I4, c): S?aBc? D?d I7=GO(I5, D): S?abdD? I8=GO(I5, d): D?d? S’??S, S??abdD , S??aBc I0=Closure(S’??S): I1=GO(I0, S): S’?S? I2=GO(I0, a): S?a?bdD, S?a?Bc, B??b I3=GO(I2, b): S?ab?dD, B?b? I4=GO(I2, B): S?aB?c I5=GO(I3, d): S?abd?D, D??d I6=GO(I4, c): S?aBc? I7=GO(I5, D): S?abdD? I8=GO(I5, d): D?d? S’??S S??abdD S??aBc I0 S’?S? I1 S?a?bdD S?a?Bc B??b I2 S?ab?dD B?b? I3 S?aB?c I4 S?abd?D D??d I5 S?aBc? I6 S?abdD? I7 D?d? I8 S a b B d c D d S’??S S??abdD S??aBc I0 S’?S? I1 S?a?bdD S?a?Bc B??b I2 S?ab?dD B?b? I3 S?aB?c I4 S?abd?D D??d I5 S?aBc? I6 S?abdD? I7 D?d? I8 S a b B d c D d 考虑I3,有: Action(3, d) = S5 Action(3, x) = r4 (2) S?abdD (3) S?aBc (4) B?b (1) S’?S (5) D?d 因为FOLLOW(B)={c},如果b归约为B,则期望后面出现c,故令: Action(3, d) = S5 Action(3, c) = r4 Action(3, x) = Err (x≠c, x≠d) 4.3.3 SLR(1)分析法 (1) GO(Ii, a)=Ij,若a?VT,则置Action(i, a)=Sj;若a?VN,则置Goto(i, a)=j (2) 对A?α??Ii, A不是开始符号,对任何a?FOLLOW(A),置Action(i, a)=rk (3) 对A?α??Ii, A是开始符号,置Action(i, #)=acc。 (4) 分析表中的空白表示出错。 SLR(1)分析表构造算法: 构造FOLLOW集合 S?abdD S?aBc B?b S’?S D?d First(S’)= First(S)= First(B)= First(D)= First(S’)={a} First(S)={a} First(B)={b} First(D)={d} Follow(S’)={#} Follow(S)={} Follow(B)={} Follow(D)={} Follow(S)={#} (1) 置初值:对任一A?VN,令FOLLOW(A)={},若A是开始符号,则FOLLOW(A)={#}; (2) 若有A?αBβ,B?VN,置FOLLOW(B)=FOLLOW(B) ∪ ( FIRST(β)-{ε} ); (3) 若有A?αB,置FOLLOW(B)=FOLLOW(B) ∪ FOLLOW(A); (4) 若有A?αBβ, β?ε,置FOLLOW(B)=FOLLOW(B)∪FOLLOW(A); * Follow(B)={c} Follow(D)={#} 状态 0 1 2 3 4 5 6 a b c # S B D Action Goto d 7 8 S’??S S??abdD S??aBc I0 S’?S? I1 S?a?bdD S?a?Bc B??b I2 S?ab?dD B?b? I3 S?aB?c I4 S?abd?D D??d I5 S?aBc? I6 S?abdD? I7 D?d? I8 S a b B d c D d (2) S?abdD (3) S?aBc (4) B?b (1) S’?S (5) D?d Follow(S’)={#} Follow(S)={#} Follow(B)={c} Follow(D)={#} S acc 1 1 a S2 S2 b S3 S3 B 4 4 c S6 S6

文档评论(0)

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

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

1亿VIP精品文档

相关文档