第4章语法-自顶向下的语法浅析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译系统原 理;§4.1 自顶向下分析方法 §4.2 FIRST集合和FOLLOW集合 §4.3 递归下降分析 §4.4 LL(1)分析方法;§4.1 自顶向下分析方法;§4.1 自顶向下分析方法;§4.1 自顶向下分析方法;§4.1 自顶向下分析方法;§4.1 自顶向下分析方法;§4.2 FIRST集合和FOLLOW集合;§4.2 FIRST集合和FOLLOW集合;§4.2 FIRST集合和FOLLOW集合;§4.2 FIRST集合和FOLLOW集合;§4.2 FIRST集合和FOLLOW集合;§4.2 FIRST集合和FOLLOW集合;§4.2 FIRST集合和FOLLOW集合;§4.2 FIRST集合和FOLLOW集合;§4.2 FIRST集合和FOLLOW集合;例 设文法G[S]:S::=SbA|aA A::=Bc B::=Sb 求此文法的每一个非终结符号的FOLLOW集。;练习 已知文法G[S]:S::=A A::=BA′ A′::=iBA′| ε B::=CB′ B′::=+CB′| ε C::=)A*|( 求FOLLOW(C)。;§4.3 递归下降分析法;§4.3 递归下降分析法;§4.3 递归下降分析法;§4.3 递归下降分析法;§4.4 LL(1)分析法;§4.4 LL(1)分析法;§4.4 LL(1)分析法;1) 分析开始时,首先将符号#及文法的开始符号S依次置于分析栈的底部,并把各指示器调整至起始位置。然后,反复执行第二步的操作。 ;(1)若Xm∈Vn,则查分析表的Xm所在行和ai所在列,假设M[Xm,ai]为POP,PUSH(WVU),则将Xm出栈,并将WVU入栈,这意味着使用了规则Xm→UVW;M[Xm,ai]为POP,则将Xm出栈,这意味着使用了规则Xm→ε ;若M[Xm,ai]为空或ERROR,则出错。 ;例:算术表达式文法E→TE′,E′→+TE′,E′→ε,T→FT′,T′→*FT′,T′→ε,F→(E)|i,该文法的LL(1)分析表为:;例 根据表4-1,对符号串i+i*i进行分析。; 对文法G中的每个产生式A→α,按下列规则确定LL(1)分析表中的元素M: 1)对FIRST(α)中的每个终结符a,置M[A,a]=“POP,PUSH(α′)” ,其中α′为α的倒置; 2)若ε∈FIRST(α), 则对属于FOLLOW(A)的每个符号b(b为终结符或#),置M[A,b]=“POP” ; 3)把M中的所有M[a,a]置为“POP,NEXTSYM”, a∈Vt ; 4)置M[#,#]=“ ACCEPT”; 5)把M中所有不按上述规则定义的元素均置为空或“ERROR”。 ;例:E→TE′,E′→+TE′,E′→ε,T→FT′,T′→*FT′,T′→ε,F→(E)|i,构造该文法的分析表。 对规则E→TE′ :FIRST(TE’)= {(,i)},那么在分析表的符号E所在的行、符号(和i所在的列对应的位置分别填入“POP,PUSH(E′T)”,见表4-1的E行。 对规则E′→+TE′:FIRST(+TE′)={+},在符号E行符号+列对应的位置填入“POP,PUSH(E′T′+)” ,见表4-1的E′行。 对规则E′→ε:因为ε∈FIRST(α),FOLLOW(E′)={),#},所以在符号E行符号)和#列对应的位置填入“POP”,见表4-1的E′行。 其它规则处理方法相同(略)。;分析表的简化 当压栈的最后一个符号是终结符时,那么下一步的分析动作肯定是这个终结符号出栈。 简化方法 如果压栈的最后一个符号是终结符,那么,这个终结符不入栈,并加入读下一个符号,这样,分析表中所有的终结符行都可以去掉。;对表4-1的分析表简化后的分析表如下表所示: ;练习:已知文法G[S]: S::=(S)S|ε (1)该文法是LL(1)文法吗?为什么? (2)请给出该文法的LL(1)分析表。 (3)若输入符号串是“()”,请给出其LL(1)语法分析过程。;(2) 文法G的LL(1)分析表 ;文法G的LL(1)分析表

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档