- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理第六章课件(精品)
第六章语法分析——LR分析; 第五章我们学过自底向上分析法的关键问题是在分析过程中如何确定句柄。LR分析法与第5章介绍的算符优先分析一样,LR方法也是通过求句柄逐步归约进行语法分析。在运算符优先分析中,句柄是通过运算符的优先关系而求得,LR方法中句柄是通过求可归前缀而求得。
;LR分析概述;LR分析的优缺点;第六章 LR分析法 ;LR分析器模型;逻辑上说,一个LR分析器由3个部分组成:
(1) 总控程序,也可以称为驱动程序。对所有的LR分析器总控程序都是相同的。
(2)?分析表或分析函数,不同的文法分析表将不同,同一个文法采用的LR分析器不同时,分析表也不同,分析表又可分为动作表(ACTION)和状态转换(GOTO)表两个部分,它们都可用二维数组表示。
(3) 分析栈,包括文法符号栈和相应的状态栈,它们均是先进后出栈。
分析器的动作就是由栈顶状态和当前输入符号所决定。; 总控程序根据不同的分析表来决定其下一步的处理动作,分析表是根据具体的文法按某种规则构造出来的。LR方法是根据具体文法的分析表对输入串进行分析处理。
LR分析过程的思想是在总控程序的控制下,从左到右扫描输入符号串,根据分析栈中的状态和文法及当前输入符号,按分析表完成相应的分析工作。;LR分析过程的思想:
记住历史:记住已移进和归约的整个符号串。(即栈中的内容)
立足现实:输入串读头下的符号
展望未来:根据所用的产生式推测未来可能碰到的输入符号。(也通过栈识别);分析表的组成:
(1) 分析动作表Action; 表中action[Si,aj]为二维数组,指出当前栈顶为状态Si,输入符号为aj是所执行的动作。其动作有四种可能,分别为移进(S)、归约(r)、接受(acc)、出错(error)。; 符号
状态;*;*;*;3、LR分析过程:
LR分析步骤:
(a) 将初始状态S0和句子的左界符#分别进分析栈。
(b) 根据栈顶状态和当前输入符号查动作表,进 行如下的工作。
※ 移进:当前输入符号进符号栈,根据状态转换表新的状态进状态栈,继续扫描,从而下一输入符号变成当前输入符号。
※ 归约: (1)按某个产生式进行归约,若产生式的右端长度???n,则符号栈顶和状态顶n个元素同时相应退栈。(2)归约后的文法符号进符号栈,(3)查;状态转换表,新的状态进状态栈。
(c) 接受:分析成功,终止分析。
(d) 出错:报告出错信息。
(2) 具体分析过程:; LR分析算法;LR分析算法; 为了介绍LR分析过程,在这里直接给出该文法的分析表,之后再介绍如何生成该表。;状态; 根据上述分析表,即可对输入串进行分析。如输入串为#a,b,a#具体分析过程如下:;状态栈;;例:文法G[S]为:
S ?aAcBe
A ?b
A ?Ab
B ?d;对它的逆过程最左归约(规范归约)为:
ab[2]b[3]cd[4]e[1]
aAb[3]cd[4]e[1]
aAcd[4]e[1]
aAcBe[1]
S;在规范句型中形成可归前缀之前包括可归前缀的所有前缀称为活前缀。活前缀为一个或若干规范句型的前缀。在规范归约过程中的任何时刻只要已分析过的部分即在符号栈中的符号串均为规范句型的活前缀,则表明输入串的已被分析过的部分是某规范句型的一个正确部分。;G=(Vn,Vt,P,S),若有S’ ? αAω ? αβω, A ? β ( β是句柄 )
γ是αβ的前缀,则称是文法G的活前缀
活前缀是规范句型的前缀,不包含句柄之后的任何符号
αβ是含句柄的活前缀,并且句柄是αβ的后端,则称αβ是可归前缀或可规范前缀。
在LR分析过程中,实际上是把αβ的前缀(即文法G的活前缀)列出放在符号栈中,一旦在栈中出现αβ(形成可归前缀),即句柄已经形成,则用产生式A ? β进行归约。;LR分析法如何分析句子?
移进归约(从左到右扫描(L)自底向上进行规约(R) )
移进归约的关键问题是什么?
判断符号栈顶的符号串是否构成句柄。
LR分析法如何识别句柄?
LR分析法在分析过程中并不是直接分析符号栈中的符号是否形成句柄,而是通过识别可归前缀来识别句柄。
具体地,LR分析法的分析过程可以看作识别活前缀和可归前缀的过程,只要符号栈中的符号串构成活前缀,就表示已分析过的部分是正确的,继续移进;直到符号栈中的符号串构成可归前缀,则表示当前栈顶符号串已形成句柄,则进行归约。;如何识别活前缀和可归前缀?
通过有限自动机来识别。
如何构造识别活前缀和可归前缀的有限自动机?
根据文法规则
状态集合:
您可能关注的文档
最近下载
- 中华兵法大典 《百战奇略》.pdf
- JT-T-971-2015沥青加铺层用聚合物改性沥青抗裂贴.docx VIP
- Sharp夏普数码复合机用户使用手册 BP-C2021X C2021R C2521R(20).pdf
- 宝峰UV5R对讲机说明书(打印版).docx VIP
- 钢柱、钢梁、钢结构制作安装.pdf VIP
- xx售楼中心、样板间、会所物业服务方案.doc VIP
- 2025年贵州贵阳乌当富民村镇银行招聘客户经理笔试历年典型考题及考点剖析附带答案详解.docx
- 2025年初级钳工试题及答案钳工试题(含答案).docx VIP
- 一张奖状的动力(1).doc
- 框架钢结构施工组织设计.pdf VIP
文档评论(0)