中国农业大学《编译原理》课件-第5章自顶向下语法分析方法.pptVIP

中国农业大学《编译原理》课件-第5章自顶向下语法分析方法.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文档。上传文档
查看更多
大学,本科,专科,硕士,笔记,课件,期中试卷答案,期末试卷答案,教材答案,知识点,经济法,材料科学基础,材料力学,电路,电子技术基础,高频电子线路,宏观经济学,模拟电路基础,模拟电子技术,数字电路,数字电子技术,数字信号处理,通信原理,信号与系统,化工原理,机械设计基础,机械原理,机械制图,微机原理与接口技术,C++程序设计,JAVA技术与应用,MATLAB基础与应用,计算机网络,计算机组成原理,软件工程数据结构,工程力学,工程热力学,结构力学,力学,流体力学,水力学,工程测量,工程经济学,工程

定义3.12 LL(1)文法:如果对任一非终极符B都有 select(B,βi)∩select(B,βj)=Ф,(i≠j)。 LL(1)的含义: 第1个L表明自顶向下分析是从左到右扫描字符串,第2个L表明分析过程中将用最左推导,1表明只需向右看一个符号便可决定如何推导即选择那个产生式进行推导。 有四种动作: 替换:当X1∈VN时,选相应侯选式β去替换X1。 匹配:当X1∈VT时,与Y1匹配,如成功则去掉X1和Y1,否则报错 接受:当格局为(空,空)时,分析成功 报错:不为(空,空)时。 设有文法:G[A]:A→aBc B→d|bB 判别符号串是否文法的句子。 格局的变化过程如下: (A, abbdc)==(cBa, abbdc) ==(cB, bbdc) == (cBb,bbdc) ==(cB,bdc) ==(cBb,bdc) ==(cB, dc) ==(cd, dc) ==(c, c) 格局的控制过程由以下条件确定: 栈顶元素(符号栈或分析栈或语法栈) 输入流第一个符号(终极符,#) 格局的控制过程由LL矩阵来表示: LL[Xi,Yj]=ACTij 其中:Xi∈(VN∪VT∪{#} Yj∈(VT∪{#}) ACTij表示动作序列 预测分析方法是自顶向下分析的另一种方法,一个预测分析器是由三部分组成: 预测分析程序 先进后出栈 预测分析表 被分析的串ω写成ω#,并首先往分析栈中放进符号#,为了描述ACTij,引入下面三个过程: NEXT:删除输入流的第一个字符 PROCESS:不删除输入流的第一个字符 REPL(β):用β的逆串代替栈顶元素 ~ LL矩阵的构造算法: ? 对每一B→ω,求select(B→ω) ?Ⅰ.对每一个a∈VT,a不现于侯选式的首位,令LL[a,a]=(REPL(ε),NEXT) ?Ⅱ.对每一个B∈VN a.若有B∈aω(a∈VT),则令 LL[B,a]=(REPL(ω),NEXT) b.若有B→Aω(A∈VN),则令 LL[B,ai]=(REPL(Aω),PROCESS) ~ ~ 其中select(B→Aω)={a1,a2,…an} ? Ⅲ.对#令:LL[#,#]=ok ? Ⅳ.对其他情形令:LL[X,a]=ERR(k) 处理P,N,R操作: ① 当遇到小写字母时进行N操作,删除小写字母。 ② 当遇到大写字母时进行P操作,保留源大写字母。 ③ 将符号串进行逆序转换。 例子:G(E): E→E+E E→E*E E→(E)|i 1.构造LL矩阵 2.符号串i+i*i的LL分析过程 解:首先此文法有二义性应该去除。 G(E): E→E+T|T T→T*E|F F→(E)|i 其次此文法有左递归应该去除。 G(E): E→TE’ E’→+TE’|? T→FT’ T’→*FT’|? F→(E)|i 各产生式的SELECT集合为: select(E→TE)=first(T)={i,(} select(E→+TE)={+} select(E→ε)=follow(E)={),#} select(T→FT)=first(F)={),#} select(T→*FT)={*} select(T→ε)=follow(T)={+,),#} select(F→i)={i} select(F→(E))={(} 表达式文法的预测分析表 F→(E) F→i F T’→*FT’ T’→? T’ T→FT’ T E’→? E’→+TE’ E’ E→TE’ E # ) ( * + i E→TE’ E’→? T→FT’ T’→? T’→? OK # ε,P ) )E,N ε,N F ε,P ε,P T’F,N ε,P T’ T’F,P T’F,P T ε,P ε,P E’T,N E’ E’T,P E’T,P E i + * ( ) # 表达式文法的LL矩阵 E # T E’ # T # 分析过程: E→TE’ T→+FT’ F→(E) F T’ # F # E ) # LL[E,#]=(ε,P

文档评论(0)

翰林大当家 + 关注
实名认证
服务提供商

文案个性定制,计划书、方案、策划书专业撰写。

1亿VIP精品文档

相关文档