编译原理(5)(精品·公开课件).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文档。上传文档
查看更多
第5章 自顶向下语法分析方法 1) 确定的自顶向下分析思想及 LL(1)文法定义 FIRST集、FOLLOW集和SELECT集的定义 LL(1)文法定义(72页定义5.4) 2) LL(1)文法的判别(根据定义) FIRST集、FOLLOW集和SELECT集的计算 3) 不确定的自顶向下分析及 非LL(1)文法的改造 4) 确定的自顶向下分析方法 递归子程序法 预测分析方法 ( LL(1)分析法 ) 自上而下分析算法 要点: .由根向下构造语法树 .构造最左推导 .推导出的终结符是否与当前输入符匹配 S aaab A B a A S – AB A – aA | ? B – b | bB aaab. S ?AB S – AB ?aAB A – aA ?aaAB A – aA ?aaaAB A – aA ?aaa ? B A – ? ?aaab B – b 5.1 确定的自顶向下分析思想及 LL(1)文法定义 FIRST集的定义 定义5.1 设G=(VT,VN,P,S)是上下文无关文法 FIRST(?)={a|? =* a?,a∈VT, ?, ?∈V* 若? =* ε则规定ε∈FRIST(?) 例: 5.1 确定的自顶向下分析思想及 LL(1)文法定义 FOLLOW集的定义 定义5.2 设G=(VT,VN,P,S)是上下文无关文法 FOLLOW(A)={a?S =* ? A ?且a ∈ FRIST(?), ? ∈V*, ?∈V+ } 若S =* u A ? ,且? =* ε,则#∈FOLLOW(A) 例: 5.1 确定的自顶向下分析思想及 LL(1)文法定义 一个文法G能进行确定的自顶向下分析,当且仅当对于G的每一个非终结符A的任何两个不同产生式A? α?β,下面的条件成立: 1.FIRST(α)∩FIRST(β)=?,也就是α?和β推导不出以同一个终结符a为首的符号串;它们不应该都能推出空字?. 2.假若β =* ?,那么, FIRST(α)∩FOLLOW(A)=?. 也就是, 若β =* ?.则α所能推出的串的首符号不应在FOLLOW(A)中. 5.1 确定的自顶向下分析思想及 LL(1)文法定义 SELECT集的定义 定义5.3 设G=(VT,VN,P,S)是上下文无关文法,对P中的任一 产生式 A? ? , A∈VN , ?∈V* 若? ?*ε, 则SELECT(A? ?)= FRIST(?) 若? =*ε,则SELECT(A? ?)=( FRIST(?)-{ε})? FOLLOW(A) 如果对于G的每一个非终结符A的任何两个不同产生式A? α?β,都有 SELECT(A? ?)? SELECT(A? ?)= ? 其中? 、?不能同时=*ε。 就能对文法G进行确定的自顶向下分析。 如果对于G的每一个非终结符A的任何两个不同产生式A? α?β,都有 SELECT(A? ?)? SELECT(A? ?)= ? 则能对文法G[S]进行确定的自顶向下分析。 S – Aa | bB SELECT(S – Aa)? SELECT(S – bB )= ? A –dB | ? SELECT(A –dB)? SELECT(A –? )= ? B – Ae | f SELECT(B – Ae)? SELECT(B – f )= ? 所以能对文法G[S]进行确定的自顶向下分析。 确定的自顶向下分析思想及 LL(1)文法定义 LL(1)文法定义 定义5.4 一个上下文无关文法是 LL(1)文法的充分必要条件是:对于G的每一个非终结符A的任何两个不同产生式A? α?β,满足 SELECT(A? ?)? SELECT(A? ?)= ? 其中? 、?不能同时=*ε。 例5.4 p72 5.2 LL(1)文法的判别 计算FIRST集(方法1) 1.若X?V?,则FIRST(X)={X} 2.若X?VN,且有产生式X?a…,则把a加入到FIRST(X)中;若X??也是一条产生式,则把?也加到FIRST(X)中. 3.若X?Y…是一个产生式且Y?VN,则把FIRST(Y)中的所有非?元

文档评论(0)

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

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

1亿VIP精品文档

相关文档