编译原理第四章.ppt

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

第四章自顶向下语法分析

自顶向下:自底向上:例4.2:G[E]:E?T|EATT?F|TMFF?(E)|i分析符号串i+i*iA?+|-M?*|/例4.3:G[S]:S?b|Sa分析baaSSSSSbSaSaSaSabSaSab分析时可能出现:(1)回溯原因:推导过程中有多个侯选式可供选择,并根据所面临的输入符号不能准确的确定所要选择时,就可能出现回溯。例4.1(2)死循环。例4.2:在没有对当前输入符号匹配就进入处理S的过程,无法确定什么时候才用S?b替换,造成死循环.原因:左递归已知文法G[E]:E→ETE|(E)|iT→*|+是否存在左递归,若有消除4.1.2回溯问题在分析中,A?x1|x2|…|xn,难以确定采用哪个规则,若从x1到xn逐个来试,则效率太低。在自顶向下分析过程中,对候选式的选择可根据当前输入符号来决定.例教材4.2:S?aBCB?bC|dBC?c|a分析句子adbcaS=aBC4.2三种终结符集(重点)1.First集(首符号集)定义:对于文法G的所有非终结符的每个候选式β,其终结首符号集称为First集First(β)={a|βay,a∈VT,y∈V*}特别,若β=ε,则First(β)=Φ例:G[E]:E?E+T|TT?T*F|FF?(E)|i则:First(E+T)={(,i}First(T)={(,i}First(T*F)={(,i}Follow(U)={a|S…Ua…,a∈VTU{#}}3.Select集(可选集)定义:文法G[S],有规则A?β,则该规则的可选集为:First(β),当β≠εSelect(A?β)=Follow(A),当β=ε例:G[S]:S?aBc|bBB?bB|d|ε例:G[S]:S?aA|bA?cAS|ε4.LL(1)文法思想4.判定LL(1)文法(重点)文法是非左递归的满足条件无回溯性分析表的构造:思路:(1)产生式子填到何处?例2:已知文法G[S]:S→(L)|aL→L,S|S构造LL(1)分析表,并分析串(a,a,a)消除左递归:S?(L)|aL?SL’L’?,SL’|ε(2)求Select(S?(L))={(}Select(S?a)={a}Select(L?SL’)={(,a}Select(L’?,SL’)={,}Select(L’?ε)=follow(L’)={#,)}(3)LL(1)分析表(4)分析符号串总结重要概念:FirstfollowselectLL(1)文法的判断:如果不满足,会修改给定一个文法,给定一个句子,用LL(1)分析Follow(U)={a|S…Ua…,a∈VTU{#}}自顶向下:(重点)3.LL(1)文法逻辑分析:(重点)1.试消除下面文法G[

文档评论(0)

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

科技工作者

1亿VIP精品文档

相关文档