4-第四章_LL补充讲解.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文档。上传文档
查看更多
4-第四章_LL补充讲解

§4.2 LL(1)分析法 §4.5 构造预测分析表 2. 计算FOLLOW集 * LL(1)分析法的含义: LL(1) :自上而下分析是从左向右扫描输入串; LL(1) :分析过程中将采用最左推导; LL(1) :只需查看一个(当前)符号便可决定如何推导 (即选择哪个产生式进行推导)的语法分析法。 LL(1)文法:可采用LL(1)分析法进行分析的文法。 定义:一个上下文无关文法是LL(1)文法的充要条件是: 1)、文法中每个非终结符A的候选式的终结首符集 两两不相交; 即:若:A→α1 |α2 | … |αn 则:FIRST(αi ) ∩ FIRST(αj ) = Φ 1≤i, j≤n, i ≠ j 2)、对于文法中每个非终结符A, A→α1 |α2 | … |αn 若: ε∈FIRST(αi ), 1≤i≤n 则: FIRST(A) ∩ FOLLOW(A) = Φ 4. 判定文法是否为LL(1)的充分必要条件 ⑴. First(a) a∈ VT First(a)={ a } 特别, First(ε)={ε} 1. 计算FIRST集 FIRST(α) = { a|α aβ, a∈VT , α,β∈ V* } 若α ε, 则ε∈FIRST(α) 分三步计算 First(a) a∈VT First(X) X∈VN First(α) α∈(VN∪VT)* 符号串 ⑵. FIRST(X) X ∈VN 若有:X ? a··· ,a?VT ,则:a∈FIRST(X); 若有:X ? ? , 则:?∈FIRST(X); 若有:X ? Y··· , 且Y?VN , 则:FIRST(X)= FIRST(X)∪{ FIRST(Y)-{?} } 若有:X ? Y1Y2··· Yi-1Yi··· YK , Yj ?VN , ?∈FIRST(Yj );1≤j≤i-1 则:FIRST(X)= FIRST(X)∪{ FIRST(Yi)-{?} } 若有:X ? Y1Y2··· YK , Yj ?VN , ?∈FIRST(Yj );1≤j≤k 则:FIRST(X)= FIRST(X)∪{?} 重复以上步骤,直至每个FIRST集不再增大为止。 ⑶. FIRST(α) α∈(VN∪VT)* 只需计算某些α: 1) α是产生式的候选式; 2) α是产生式的候选式中,某一VN 之后的串; 设 α=X1 X2 … XN FIRST(α)= FIRST(X1) - { ? } ; 若 ? ∈FIRST(Xj), 1≤j ≤ i-1 则:FIRST(α)=FIRST(α)∪{FIRST(Xi)-{?}} 若 ? ∈FIRST(Xj ); 1≤j ≤ N 则:FIRST(α)= FIRST(α) ∪{ ?} 例: G1[S]: S→Qc|c Q→Rb|b R→Sa|a 求VN的first集合: 第1遍:first(S)={c} first(Q)={b} first(R)={a} 2:first(S)={c,b} first(Q)={b,a} first(R)={a,c} 3:first(S)={c,b,a} first(Q)={b,a,c} first(R)={a,c,b} 4:first(S)={c,b,a} first(Q)={b,a,c} first(R)={a,c,b} 求α的first集合: first(Qc)={b,a,c} first(c)={c} first(Rb)={a,c,b} first(b)={b} first(Sa)={c,b,a} first(a)={a} 对 S→Qc|c FIRST(Qc )∩FIRST(c) = {c} ≠ Φ ∴ 不是LL(1)文法 定义: G[S],A∈VN FOLLOW(A)={ a |S ···Aa··· ,a∈VT } 求法: ⑴. # ?FOLLOW(S),S为文法的开始符号 ⑵. 若有产生式 A ?αBβ, 则:FOLLOW(B)= FOLLOW(B)∪{ FIRST(β)-{?}} ⑶. 若有产生式 A ?αB, 或 A ?αBβ,且 ? ∈FIRST(β) FOLLOW(B)= FOLLOW(B) ∪ FOLLOW(A)

文档评论(0)

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

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

1亿VIP精品文档

相关文档