编译原理SELECT()集新合的求法.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理SELECT()集新合的求法

编译原理;第5章 自顶向下语法分析方法;自顶向下语法分析方法;自顶向下语法分析要解决的关键问题;自顶向下语法分析方法;第5章 自顶向下语法分析方法;自顶向下语法分析要解决的关键问题; 一、确定的自顶向下分析思想 1、方法:从开始符号出发,不断替换非终结符,根据当前的单词符号就可以唯一选定要替换的产生式。;S;例1:文法G(S):S→pA S→qB A→cAd A→a 该文法的特点: (1)每个产生式的右部都由终结符号开始; (2 )如果两个产生式有相同的左部,则它们的右部由不同的终结符开始。 对于这样的文法,其推导过程可以根据当前的输入符号决定选择哪个产生式往下推导,因此,分析过程是唯一确定的。;例2:文法G(S)为: S →Ap S → Bq A →a∣cA B→b∣dB 该文法的特点: (1)产生式的右部不全是由终结符号开始; (2 )如果两个产生式有相同的左部,则它们的右部由不同的终结符或非终结符开始。 (3)无空产生式。 ccap 如何根据输入串的第1个符号来确定产生式呢? ;例2:文法G(S)为: S →Ap S → Bq A →a∣cA B→b∣dB 当输入W=ccap推导: 自顶向下的推导过程为: ;例2:文法G(S)为: S →Ap S → Bq A →a∣cA B→b∣dB 当输入W=ccap推导: 自顶向下的推导过程为: S ?Ap ?cAp ?ccAp ?ccap 语法树为:;例2:文法G(S)为: S →Ap S → Bq A →a∣cA B→b∣dB 该文法的特点: (1)产生式的右部不全是由终结符号开始; (2 )如果两个产生式有相同的左部,则它们的右部由不同的终结符或非终结符开始。 (3)无空产生式。 ccap 如何根据输入串的第1个符号来确定产生式呢? ;2、开始符号集合的定义:;2、开始符号集合的定义:;;例3:文法G[S] : S ? aA | d A ? bAS|ε 若输入W=abd,则推导过程为: ;S;当某一非终结符的产生式中含有空产生式时,第二步推导的产生式该如何确定呢?根据后跟符号集合确定; Follow(A)是所有句型中出现在紧接A之后的终结符或“#”。;换句话说: Follow(A)是所有句型中出现在紧接A之后的终结符或“#”。;自上而下语法分析要解决的关键问题;4、选择集合的定义 给定上下文无关文法的产生式A??,A?VN, ??V*,若??ε,则Select(A??)=First(?), 若??ε,则Select(A??)=(First(?)-{ε})∪Follow(A) ;5、LL(1)文法的定义: 一个上下文无关文法是LL(1)文法的充分必要条件是对每个非终结符A的两个不同产生式: A??,A?β满足Select(A??)∩Select(A?β)=?,其中?、β不同时推出? 只有对满足LL(1)文法的句子,才能进行确定的自顶向下分析: 给定输入串,就可以根据产生式规则的选择集合确定唯一的产生式进行推导。 ;;例5:上例3文法: S?aA|d A?bAS|ε 证明该文法为LL(1)文法。;例5:上例3文法: S?aA|d A?bAS|ε 证明该文法为LL(1)文法

文档评论(0)

ajiangyoulin1 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档