- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章语法分析-自底向上分析
第5章 语法分析——自底向上分析 ;5.1 规范推导、规范句型和规范归约;5.2自底向上分析方法的一般过程 ;步骤 ;5.2自底向上分析方法的一般过程;5.3 LR分析方法 ;5.3.1 LR分析器逻辑结构 ;5.3.2 LR分析表的构成 ;5.3.2 LR分析表的构成;5.3.2 LR分析表的构成;5.3.3 LR分析过程 ;5.3.3 LR分析过程;5.4 LR(0)分析方法 ;5.4.1活前缀和可归前缀 ;5.4.1活前缀和可归前缀;LR分析过程中,如果输入符号串没有语法错误,则在分析的每一步,若将符号栈中的全部文法符号与剩余的输入符号串连接起来,得到的一定是所给文法的一个规范句型。也就是说,压入符号栈中的符号串一定是某一规范句型的前缀,而且这种前缀不会含有任何句柄右边的符号,所以都是活前缀。当符号栈形成句柄,即符号栈的内容为可归前缀时,就会立即被归约。所以说,LR分析就是逐步在符号栈中产生可归前缀,再进行归约的过程。 ;5.4.2 LR(0)项目 ;5.4.2 LR(0)项目 ;第5章 语法分析——自底向上分析 ;2、项目有效性
项目就是对规则的右部标记了圆点,而且,圆点位置不同代表不同的项目,那么项目有什么含义呢?这就是项目的有效性。
一个项目A→α1·α2对于某个活前缀λ α1是有效的,当且仅当存在某个最右推导。
S =|*= λAt =|= λα1·α2t ,其中t是终结符号串。
在LR分析过程中,活前缀就是符号栈的内容,是已经读入的符号,它不包含句柄右边的任何符号。
活前缀和句柄的关系有三种:活前缀包含句柄、含有句柄的一部分或不含句柄的任何符号。 ;第5章 语法分析——自底向上分析 ;第5章 语法分析——自底向上分析 ;第5章 语法分析——自底向上分析 ;5.4.3 构造识别活前缀的有穷自动机 ; 1、???? 项目集的闭包运算
设I为一项目集,I的闭包运算CLOSURE(I) 定义如下:
I中的每一个项目都属于CLOSURE(I)。
如项目A→α1·Xα2属于CLOSURE(I),且X为非终结符号,则将形式为X→.λ的项目添加到CLOSURE(I)中。
重复(1)和(2),直到CLOSURE(I)封闭为止。 ;5.4.3 构造识别活前缀的有穷自动机;5.4.3 构造识别活前缀的有穷自动机;例5.7,有文法:E ’::=E,E::=E+T,E::=T,T::=T*F,T::=F,F::=(E),F::=i
有项目集I={E’→ E.,E→ E.+T}, 求GO[I,+]
解:在I中挑出点后是+的项目有:E→ E.+T,将点移到+后面得J={E→ E+.T}
对J进行闭包运算得
CLOSURE(J)={E→ E+.T,T→.F,T→.T*F, F→.(E), F→.i}
GO(I,+) ={E→ E+.T,T→.F,T→.T*F, F→.(E), F→.i}
用状态图表示为:
;5.4.3 构造识别活前缀的有穷自动机; 接下来构造C0的后继项目集。观察状态0的项目集C0的每个项目,发现点后的符号即后继符号为A、(、a,说明项目集C0有3个后继项目集C1 (GO[0,A]) 、C2 (GO[0,(]) 、C3 (GO[0,a]) ,即状态0有3条弧线指向状态1、2、3,弧线上分别标记符号A、(、a。下面介绍项目集C1、C2、C3的构造: ;5.4.3 构造识别活前缀的有穷自动机;5.4.3 构造识别活前缀的有穷自动机;状态 ;5.4.3 构造识别活前缀的有穷自动机;1) 生成开始项目集:
① 赋给开始项目集一个下标0,然后将项目S→.δ放入集合C0,对应的状态为0。
② 对该项目集执行闭包运算,即找到在圆点之后的非终结符X,将形式为X→.δ的项目放置到集合中,其中X→δ是文法G的一个产生式。该闭包运算也要对所有导出的新项目进行。
2) 生成LR(0)的所有项目集C:重复第3到第4步,直到再没有新的项目集出现。
3) 对一个项目集Ci求后继项目集Cj,构造项目集的转换:
① 对项目集Ci中的每个后继符号X进行读操作,生成一个新的项目集Cj,且 GO[Ci,X]= Cj。
② 如果该项目集已经存在,则Cj就是已经存在的项目集;否则,得到一个新的基本项目集Cj;
4) 对新的项目集进行闭包运算。 ;5.4.3 构造识别活前缀的有穷自动机; 5.4.4 LR(0)分析表的构造 ; 1) 若项目A→α.aβ∈Ci且GO[Ci,a]= Cj,其中a为终结符,置ACTION[i,a]=“把状态j
您可能关注的文档
最近下载
- “胶黏剂与涂料”实验课教改探讨——以南京林业大学为例-来源:教育教学论坛(第2021024期)-河北教育出版社、花山文艺出版社.pdf VIP
- 高三英语二轮复习读后续写高分句式+强化亮点句式翻译课件.pptx VIP
- 2025年山东发展投资控股集团有限公司人员招聘笔试备考试题及答案详解(易错题).docx VIP
- 弟子规全文带拼音排版好可直接打印.doc VIP
- 聚合氯化铝形成原理与生产方法总结.docx VIP
- 《古陶瓷修复》课件——3.陶瓷文物病害图的绘制.pptx VIP
- 2025年山东发展投资控股集团有限公司人员招聘笔试备考试题有完整答案详解.docx VIP
- 光固化功能树脂的合成与应用.pptx VIP
- 高空作业夜间施工方案.docx VIP
- (人教版2025新教材)七年级英语下册全册单词默写打印(默写版+背诵版).pdf
文档评论(0)