- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
04第4章语法分析0204第4章语法分析0204第4章语法分析02
第4章 语法分析
自底向上()的语法分析是从输入符号串出发,试图逐步将它们归约为文法的开始符号。
分析采用的是最左(规范)归约。
本节中介绍两种分析方法,即优先分析法和LR分析法。
分析也需要一个分析栈用于存放分析过程中所得的文法符号,开始时,先将#入栈,然后逐步地将输入符号移进栈,当句柄在栈顶形成时,则进行归约,否则移进下一符号。在分析的每一步,分析动作都是由当前栈里的内容和扫描到的符号确定的.
分析动作有:移进,归约,报错,接受。
分析的关键,是如何寻找或确定当前句型的句柄,以及确定将句柄规约为什么非终结符号。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
4.2 自底向上的语法分析
从符号串开始,向上归约,如果最终能够规约到文法的开始符号S,则同样可以说明该输入符号串是这个文法的句子。其归约过程如图5.1所示。
例 4.6,有文法G[S]:
S::=aAcBe
A::=b
A::=Ab
B::=d
试分析符号串abbcde是否为该文法的句子。
解:首先,我们从文法的开始符号进行规范推导,依次使用1、4、3、2规则,就可得到符号串abbcde。规范推导过程如下:
S =aAcBe =aAcde =aAbcde =abbcde
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
4.2 自底向上的语法分析
分析也可称为移进归约法,它的一般过程是:设置一个寄存符号的先进后出栈,称为符号栈。在分析进行时,把输入符号一个个地按扫描顺序移进栈里,当栈顶符号串形成一个句柄(即为某条规则的右部)时,就进行一次归约,即把栈顶构成句柄的那个符号串用相应规则左部的非终结符号来代替。接着再检查栈顶是否又出现了新的句柄,若出现新的句柄,就再进行归约;若没有形成新的句柄,则再从输入符号串移进新的符号,如此继续直到整个输入符号串处理完毕。最终如果栈里只有识别符号,则所分析的输入符号串为合法的句子,报告成功;否则,输入串是不合法的符号串,报告错误。表4.6列出输入串abbcde的分析过程。
步骤
符号栈
输入符号串
动作
1
2
3
4
5
6
7
8
9
10
11
#
#a
#ab
#aA
#aAb
#aA
#aAc
#aAcd
#aAcB
#aAcBe
#S
abbcde#
bbcde#
bcde#
bcde#
cde#
cde#
de#
e#
e#
#
#
进栈
进栈
用A→b归约
进栈
用A→Ab归约
进栈
进栈
用B→d归约
进栈
用S→aAcBe归约
接受
表4.6输入串abbcde的分析过程
通过上述分析可看出,每次归约的句柄都出现在符号栈的栈顶,不会出现在栈的中间,因为我们的算法是自左向右扫描输入符号串,进行的是最左归约。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
4.2 自底向上的语法分析
存在着句柄识别问题 :例如表4.6中的第5步,栈内符号串为aAb,由于文法中同时有规则A::=Ab和A::=b,那么,符号串Ab和b都是某规则的右部,都可以作为句柄归约。如果我们选择b作为句柄归约成A,那么,最终就达不到归约到开始符号S的目的。事实上,我们不能因为规则A::=b就断定b是句柄,因为aAAcde并不是一个句型,即不存在推导过程S=*aAAcde。对句型aAbcde来说,其简单短语是Ab和d,其中Ab是最左简单短语,所以是句柄。
从分析的一般过程可看出,如何寻找或确定一个句型的句柄,是构造一个自左向右扫描、自底向上分析方法必须要解决的一个关键问题。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
4.2.1 简单优先分析法
定义4.1 显然,如果一个文法G满足如下条件:
(1)每一对文法符号U和R之间,至多只有一种优先关系;
(2)任意两个不同的产生式均无相同的右部。
则语法分析过程可按一种确定的方式
您可能关注的文档
最近下载
- 2025年高分子物理(第五版)课后习题答案.pdf VIP
- 《认知发展与学习机制》课件.ppt VIP
- 图软公司产品介绍的.ppt VIP
- 中考数学考点练习题22 相似三角形【原卷版】.pdf VIP
- 第一单元第3课《旅程的灵感》教学设计 2025湘美版美术八年级上册.docx
- 7.大华综合监控管理平台一体机dh-dss7016-d新.pdf VIP
- 第15课《中国工农红军长征与遵义会议》课件 统编版历史八年级上册.pptx VIP
- 微信小程序开发项目教程PPT完整全套教学课件.pptx VIP
- (高清版)B/T 12230-2023 通用阀门 不锈钢铸件技术条件.pdf VIP
- 屠宰企业宰前、屠宰过程及宰后检验流程要点和检验制度汇编-生猪.doc VIP
原创力文档


文档评论(0)