编译原理张晶版第四章自上而下语法分析.pptVIP

编译原理张晶版第四章自上而下语法分析.ppt

  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、语法分析的方式 1)自上而下语法分析 反复使用不同产生式进行推导以谋求与输入符号串相匹配 2)自下而上语法分析 对输入符号串寻找不同产生式进行归约直到文法开始符号 注:这里所说的输入符号串指词法分析所识别的单词 第二节 自上而下分析法的一般问题 三、不带回溯的自上而下分析算法 4、消除回溯 1)产生回溯的原因 进行推导时,若产生式存在多个候选式,选择哪个候选式进行推导存在不确定性。 2)消除回溯的基本原则 对文法的任何非终结符,若能根据当前读头下的符号,准确的选择一个候选式进行推导,那么回溯可以消除。 注:之所以会产生回溯是因为在推导匹配过程中存在虚假匹配。 第二节 自上而下分析法的一般问题 三、不带回溯的自上而下分析算法 4、消除回溯 3)消除回溯的方法 预测与提左因子 4)预测 根据读头下符号选择候选式,使其第一个符号与读头下符号相同,或该候选式可推导出的第一符号与读头下符号相同,这相当于向前看了一个符号,所以称为预测。 注:使用了预测之后,选择候选式不再是盲目的了,所以也就无需回溯 第二节 自上而下分析法的一般问题 三、不带回溯的自上而下分析算法 7)提取公共左因子 将某产生式 A δb1| δb2|……| δbn| δ 改写为 A δA’ A’ b1|b2|……..|bn|e 注:1)通过反复提取左因子,就能把所有非终结符的所有候选首符集变为两两不相交 2)反复提取左因子也有一定代价,因为在提取过程中会大量引入非终结符和e 产生式,增加语法分析的复杂性。 第三节 预测分析程序与LL(1)文法 二、求串a的终结首符集和非终结符A的随符集 1、求串a的终结首符集First(a) a) 定义 假定a是文法G的一个符号串,a∈V*,则 First(a)={a|a a….,a∈VT} 注:1).若a e,那么e∈ First(a) 2). First(a)集合是a的所有可能推导出的开头终结符或 e所组成的集合 b) 算法 设a=X1X2…..Xn,其中Xi ∈(VN∪VT), 1≤i≤n,为了求a的 首符集, 分两步:首先求Xi的首符集,然后再求a的首符集 第三节 预测分析程序与LL(1)文法 二、求串a的终结首符集和非终结符A的随符集 1、求串a的终结首符集First(a) b).算法 1)求出文法中每个文法符号的首符集 (1) 若x∈VT,则First(x)={x}; (2) 若X∈VN,且有产生式X a……,则将a加到First(X)中,若X e,则e也加入到First(X) 第三节 预测分析程序与LL(1)文法 二、求串a的终结首符集和非终结符A的随符集 1、求串a的终结首符集First(a) b).算法 1)求出文法中每个文法符号的首符集 (3) 若X Y1Y2…Yk,其中Yj∈(VN∪VT), 1≤j≤k,则按如下算法求First(X) j=0;First(X)={};//初始化 REPEAT j=j+1; FIRST(X)=FIRST(X) ∪(FIRST(Yj)-{e}) UNTIL e∈FIRST(Yj)或j=k IF (j=k 且e∈FIRST(Yk)) THEN FIRST(X)=FIRST(X) ∪{e} 第三节 预测分析程序与LL(1)文法 二、求串a的终结首符集和非终结符A的随符集 1、求串a的终结首符集First(a) b).算法 2) 求First(a) 设 a=X1X2….Xn,其中Xi ∈(VN∪VT), 1≤i≤n,则按如下算法求First(a) i=0; First(a)={};//初始化 REPEAT i=i+1; FIRST(a)=FIRST(a) ∪(FIRST(Xi)-{e}) UNTIL e∈FIRST(Xi)或 i=n IF (i=n 且e∈FIRST(Xn)) THEN FIRST(a)=FIRST(a) ∪{e} 第三节 预测分析程序与LL(1)文法 二、求串a的终结首符集和非终结符A的随符集 第三节 预测分析程序与LL(1)文法 二、求串a的终结首符集和非终结符A的随符集 2.求非终结符A的随符集Follow(A) a)定义 假定S

文档评论(0)

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

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

1亿VIP精品文档

相关文档