编译程序原理与实现:第4章自顶向下的语法分析LL.pptVIP

编译程序原理与实现:第4章自顶向下的语法分析LL.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文档。上传文档
查看更多

编译程序原理与实现张晶2013.02

第四章自顶向下的语法分析4.1自顶向下语法分析概述4.2三个重要的集合4.3递归下降语法分析方法4.4LL(1)语法分析方法???

4.4LL(1)语法分析方法LL(1)语法分析方法的主要思想LL(1)文法LL(1)分析表LL(1)分析驱动程序LL(1)分析程序的自动生成器

LL(1)方法的主要思想LL的含义是从左到右扫描输入串,采用最左推导分析句子。数字1表示分析句子时需向前看一个输入符号。LL(1)方法和递归下降法属于同一级别的自顶向下分析法(分析条件相同)。G=(VT,VN,S,P)对任意A?VN,对A的任意两条产生式,Predict(A??1)?Predict(A??2)=?

LL(1)方法的主要思想采用LL(1)分析表记录每个产生式的预测符采用LL(1)分析驱动程序控制分析过程采用符号栈记录需要推导的句型(A,a)(a,a)(b,a)(,#)

LL(1)分析机制符号栈输入流aLL(1)驱动程序:?栈为空情形的处理?X?VT情形的处理?X?VN情形的处理XLL[1]分析表符号栈:保存LL(1)分析的中间结果,当输入流和符号栈同时为空,则接受否则拒绝输入串LL(1)分析表:T(A,a),指引选择哪条产生式

4.4LL(1)语法分析方法LL(1)语法分析方法的主要思想LL(1)文法LL(1)分析表LL(1)分析驱动程序LL(1)分析程序的自动生成器?

LL(1)文法如果一个CFGG满足下面的条件,则称G是一个LL(1)文法G=(VT,VN,S,P)对任意A?VN,对A的任意两条产生式,Predict(A??1)?Predict(A??2)=?LL(1)文法的特性无二义性无左递归对于一个非终极符来讲,最多只有一个空产生式

4.4LL(1)语法分析方法LL(1)语法分析方法的主要思想LL(1)文法LL(1)分析表LL(1)分析驱动程序LL(1)分析程序的自动生成器??

LL(1)分析表LL分析表的作用是对当前非终极符和输入符号确定应该选择用哪个产生式进行推导如果当前非终极符是X,当前输入符号是a,当且仅当a?predict(X??)时,用产生式X??对X进行替换;

如何建立LL(1)分析表?对于任意的一个LL(1)文法G=(VN,VT,S,P)VT={a1,…,an}VN={A1,…,Am}LL(Ai,aj)=Ai??,如果aj?predict(Ai??)LL(Ai,aj)=error(?),如果aj不属于Ai的任何一条产生式的预测符集a1…an#A1…….….…Am

LL(1)分析表的例子(1)产生式Predict集(1){a}(2){d}(3){c}(4){b}P:(1)Z?aBd(2)B?d(3)B?c(4)B?bBabcd#Z(1)B(4)(3)(2)

(1)E?TE’{i,n,(}(2)E’?+TE’{+}(3)E’??{#,)}(4)T?FT’{i,n,(}(5)T’?*FT’{*}(6)T’??{),+,#}(7)F?(E){(}(8)F?i{i}(9)F?n{n}+*()in#EE’TT’F(1)(1)(1)(2)(3)(3)(4)(4)(4)(5)(6)(6)(6)(7)(8)(9)LL(1)分析表的例子(2)

4.4LL(1)语法分析方法LL(1)语法分析方法的主要思想LL(1)文法LL(1)分析表LL(1)分析驱动程序LL(1)分析程序的自动生成器???

LL(1)分析机制符号栈输入流aLL(1)驱动程序:?栈为空情形的处理?X?VT情形的处理?X?VN情形的处理XLL[1]分析表符号栈:保存LL(1)分析的中间结果,当输入流和符号栈同时为空,则接受否则拒绝输入串LL(1)分析表:T(A,a),指引选择哪条产生式

LL(1)分析驱动程序分析格局:符号栈Stack,输入串inpX=top(Stack),则格局的可能情形有:X=?情形的处理,,#:成功,a:出错X?VT情形的处理:X=a,a,a,匹配X=a,a,b,出错X?VN情形的处理:X,a,如果LL[X,a]=i,则将X替换成第i条产生式的右部(替换时产生式右部符号逆序压栈)X,a,如果LL[X,a]=?,出错

LL(1)分析驱动程序

文档评论(0)

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

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

1亿VIP精品文档

相关文档