第8讲-语法分析-III.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讲-语法分析-III

中国科大 编译原理和技术 本讲纲要 FIRST集和FOLLOW集 LL(1)文法 自上而下分析实现 递归方法 非递归的预测分析 句型与句子 文法S-ACD A-a|B B-b C-c D-d S=ACD=BCD=bCD=bcD=bcd 句子:完全由终结符组成的串 bcd 句型:有终结符和非终结符组成的串 ACD, BCD, bCD, bcD 已识别串 A=abCDEF 已识别串 出现在句型最左端的终结符串 ab属于已识别部分 下一步推导(最左推导),从C开始 FIRST集的作用 FIRST集,进行下一步分析判断的依据 S-A | C A-aH|bJ C-cK | dN H-h J-j K-k N-Hb | m FIRST(A)=? FIRST(aH)=? FIRST(Hb)=? FIRST集的作用 FIRST集,进行下一步分析判断的依据 S-A | C A-aH|bJ C-cK | dN H-h J-j K-k N-n 给定句子ah FIRST集的作用 FIRST集,进行下一步分析判断的依据 S-A | C A-aH|bJ C-cK | dN H-h J-j K-k N-n 给定句子ah FIRST集的作用 FIRST集,进行下一步分析判断的依据 S-A | C A-aH|bJ C-cK | dN H-h J-j K-k N-n 给定句子ah 符号串 文法S-ACD A-a|B B-b C-c D-d 句子bcd S=ACD=BCD=bCD=bcD=bcd 终结符消耗过程 文法S-ACD A-a|B B-b C-c D-d 句子bcd S =ACD =BCD 终结符消耗过程 文法S-ACD A-a|B B-b C-c D-d 句子bcd S =ACD =BCD =bCD 终结符消耗过程 文法S-ACD A-a|B B-b C-c D-d 句子bcd S =ACD =BCD =bCD =bcD 终结符消耗过程 文法S-ACD A-a|B B-b C-c D-d 句子bcd S =ACD =BCD =bCD =bcD =bcd 引入一种特殊情况 文法S-ACD A-a| ? C-c D-d 文法中的A- ?表示句型中的A可以不消耗任何一个终结符 S=ACD=CD=cD=cd 文法S-ACD A-a| ? C-c D-d 句子cd S=ACD =CD FIRST集和FOLLOW集 FIRST (? )={a | ? ?* a…, a ? VT} 计算满足?的句子的所有可能开头字符 特殊情况:当? ?* ?时,规定? ? FIRST (? ) FOLLOW (A) = {a | S ?* …Aa…,a?VT} 计算语言的句型中所有可能跟在A后面的字符 特殊情况:如果A是某个句型的最右符号,那么$属于FOLLOW(A) 3.3 自上而下分析 FIRST集合计算方法 若X?a.., 则将终结符a加入FIRST(X)中 若X??,则将?加入FIRST(X)中 若X?Y…,且Y属于非终结符,则将FIRST(Y)\{?}加入到FIRST(X)中 若X?Y1Y2..YK,且Y1,Y2,..Yi-1都是非终结符,且Y1,Y2,..Yi-1的FIRST集合中均包含?,则将FIRST(Yj)的所有非?元素加入到FIRST(X)中,(j=1,2,..i).特别地,若Y1~YK均有?产生式,则将?加到FIRST(X)中。 3.3 自上而下分析 FIRST集合计算方法 若X?a.., 则将终结符a加入FIRST(X)中 若X??,则将?加入FIRST(X)中 若X?Y…,且Y属于非终结符,则将FIRST(Y)\{?}加入到FIRST(X)中 若X?Y1Y2..YK,且Y1,Y2,..Yi-1都是非终结符,且Y1,Y2,..Yi-1的FIRST集合中均包含?,则将FIRST(Yj)的所有非?元素加入到FIRST(X)中,(j=1,2,..i).特别地,若Y1~YK均有?产生式,则将?加到FIRST(X)中。 3.3 自上而下分析 FOLLOW集合计算方法 对文法开始符号S,置$于FOLLOW(S)中。 若有A??B?,则将FIRST(?)\{?} 加入FOLLOW(B)中。 (此处? 可以为空) 若A?? B 或A?? B ?,且 ? ?* ?(即? 属于FIRST(?)),则将 FOLLOW(A)加入FOLLOW(B)中(此处? 可以为空)。 3.3 自上而下分析 例

文档评论(0)

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

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

1亿VIP精品文档

相关文档