第4讲自顶向下语法分析方法(2).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讲 自顶向下语法分析方法 语法分析的作用是识别由词法分析给出的单词序列是否是给定文法的正确句子。 回顾—自上而下的分析方法 定义: 从文法的开始符号出发,反复使用文法的产生式,寻找与输入符号串匹配的推导。 语法树的构造: 将文法的开始符号作为语法树的根,向下逐步建立语法树,使语法树的末端节点符号串正好是输入符号串。 自上而下分析的关键问题: 选定产生式 回顾—自上而下的分析方法 例 文法G:S→cAd A→ab A→a 识别输入串w=cabd是否为该文法的句子。 5.1 确定的自顶向下分析思想 1 确定分析的条件 2 开始符号集FIRST(α)的定义 3 后跟符号集FOLLOW(A)的定义 4 选择集合SELECT(A→α)的定义 5 LL(1)文法的定义 1. 确定分析的条件 从文法的开始符出发,如能根据当前的输入符号(单词符号)唯一地确定选用哪个产生式进行推导,则分析是确定的。 文法G1[S]: S→pA S→qB A→cAd A→a B→dB B→b 2、如果两个产生式有相同的左部,那么它们的右部由不同的终结符开始。 文法G2[S]: S→Ap S→Bq A→a A→cA B→b B→dB 3、文法中无空产生式。 2. 开始符号集FIRST(α)的定义 定义:设 G = (VT ,VN , S , P) 是上下文无关文法, FIRST(α) = { a|α aβ, a∈ VT, α,β ∈ V* } 若α ε,则规定ε∈ FIRST(α) FIRST(Ap)={a,c} FIRST(Bq)={b,d} FIRST(a)={a} FIRST(cA)={c} FIRST(b)={b} FIRST(dB)={d} 文法G3[S]: S→aA S→d A→bAS A→ε 3. 后跟符号集FOLLOW(A)的定义 定义:设 G = (VT ,VN , S , P) 是上下文无关文法,A∈VN , S是开始符号。 FOLLOW(A) = {a|S ?A?且a∈FIRST(?), ?∈V*,?∈V+ } 若S ?A?,且? ε,则规定 #∈FOLLOW(A) 结论:对于 A→α A→β 其中A∈VN , α, β ∈V* 当α和β不同时推导出空时(设 α不推导 出空,β推导出空),则当FIRST(α)∩(FIRST(β)∪FOLLOW(A)) = Φ 时,对于非终结符A的替换仍可唯一地 确定候选。 回顾——开始符号集FIRST( ? )的定义 定义:设G=(VN, VT, P, S)是上下文无关文法, A →β (A∈VN , ??(VN?VT)* ) FIRST(?) = {a | a ?VT 且??* a......} (若? ?*ε, 则规定ε∈FIRST(?)) 直观上说文法符号串? 的开始符号集是由?推导出的所有的终结符开头和可能的ε组成。 回顾——后跟符号集FOLLOW(A)的定义 定义 设G=(VT, VN, P, S)是上下文无关文法, B→xAy (A,B ∈VN x,y ∈(VN?VT)* ) FOLLOW(A)={a|S=*…Aa…,a ∈VT}, 若有S=* …A,则规定 # ∈FOLLOW(A) (注: # 输入串#,‘#’做为输入串的结束符) 直观上说,非终结符A的后跟符号集是由句型中紧跟A后的那些终结符(包括#)组成。 4. 选择集合SELECT(A→β)的定义 定义:给定上下文无关文法的产生式 A→β(A∈VN ,β∈V*) 若β ε,则 SELECT(A→β)=FIRST(β) 若β ε,则SELECT(A→β) =(FIRST(β)-{ε})∪FOLLOW(A) 结论: 同一非终结符的不同产生式A→α与 A→β,若SELECT(A→α)∩SELECT(A→β)= Ф 则一定可以进行确定的自顶向下分析。 5. LL(1)文法的定义 定义:一个上下文无关文法是LL(1)文法的充要条件是: 对每个非终结符A的两个不同产生式A→α和A→β,满足 SELECT(A→α)∩SELECT(A→β)=Φ 其中α,β不能同时 ε LL(1)文法的含义 第一个L表示:自顶向下

文档评论(0)

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

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

1亿VIP精品文档

相关文档