- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理 6章课件
第6章 自下而上分析和优先分析方法 ;自下而上分析是最右推导的逆过程,从构造语法树的观点来讲,是指从树的末端结点开始,逐步向上归约,直至树的根结点,也就是说,从输入串本身开始,朝着开始符号进行归约。直至到达开始符号为止。
确定的自下而上分析器通常分为两大类:优先分析器(Precedence Parser)和 LR(k)分析器。
本章将主要讨论优先分析器方面的内容。在具体讨论优先分析方法之前,我们先介绍句柄和归约的概念。因为它们在自下而上分析过程中占有重要地位。;6.1 短语与句柄 ;例6.1 设文法G37[数]:
数→数字串
数字串→数字串数字|数字
数字→0|1|2|3|4|5|6|7|8|9
w=数字串1是它的一个句型。
我们不能因为有数?数字串就断定数字串就是w的简单短语。因为“数1”不是一个句型。事实上 ,w含有两个短语:“数字串1”和“1”,“1”是简单短语而且是句柄,因为有
a) 数 数字串 且数字串 数字串1
b) 数 数字串数字 且数字?1;语法树与短语的关系密切。语法树的子树是由该树的某个结点(称为子树的根)及其所有分枝构成的部分树称为原树的一颗子树。
语法树的简单子树是只有单层分枝的子树——这颗子树只有且必须有父子两代,没有第三代,由此,引出下述结论:
每个句型(句子)都对应一颗语法树;
每颗语法树的端末结点自左至右排列构成一个句型(句子);
每颗子树的端末结自左至右排列构成一短语;
每颗子树的端末结自左至右排列构成一简单短语;
最左简单子树的端末结自左至右排列构成一句柄。; 例6.3 句型? = (a,(T),(T,S))的语法树如右图所示。它有7个分枝结点,分别以这7个分枝结点为根结点,得7棵子树。再分别由这7棵子树的叶子结点(从左到右)组成7个符号串,它们是句型?的7个短语。这7个短语是:
① (a,(T),(T,S))
② a,(T),(T,S)
③ a,(T)
④ (T,S)
⑤ a
⑥ (T)
⑦ T,S
句型?的语法树有3棵简单子树。由这3棵简单子树的叶子结点组成的符号串,则是句型?的3个简单短语:
① a ② (T) ③ T,S
句型?的语法树的最左简单子树的叶子结点a便是句型?的句柄。;6.2 移进-归约方法 ;6.3 非确定的自下而上分析器; 下面给出这种分析器的形式定义:
一个自下而上PDA P是一个七元组:(Q,∑,H,δ,q0,$,F)
其中:
Q 是状态的有穷集,它的每个元素称为一个状态;
∑是一个有穷输入字母表,它的每个元素是一个输入符号;
H 是一个有穷栈符号字母表,它的每个元素称为一个栈符号;
δ是从Q×H* ×(∑∪{ε})到Q ×H*有穷子集的一个有穷映射;
q0∈Q 是该PDA的初态;
$∈H 是下推栈的初始符号;
F 是一个终态集(或接收状态集);它的每个元素称为终态;(可空)。;这种PDA的一个构形记为(状态,栈,输入串)(注意,栈顶在右端)。类似的,一个移动定义为从一个构形到另一个构形的转换:
(p,zx,bw)├(q,zy,w)
其中b∈∑∪{ε},x,y,z属于H*,w∈∑*,而且
δ(p,x,b) 包含(q,y)
这样的PDA称为非确定的,如果某个δ(p,x,b)包含一个以上的对偶,或者其中的x或b为空。
由p所定义的语言L(P)记为
{w|(q0,Z0,w)├*(q,x,ε), q∈Fx∈H* } ; 给定CFG G=(N,∑,P,S),用下述方法可以为它构造一个拓广的PDA R使得L(R)=L(G):
1. R有两个状态q和r;
2. R的输入字母表是∑;
3. 栈字母表H由N∪(∑∪{$})组成;
4. 栈的初始符号是$;
5. 初态为q,终态集F={r};
6. 映射函数δ定义如下:
① 移进规则 对每个终结符b∈∑,δ(q,ε,b)包含{(q,b)}。这些移动的作用是:将输入串的符号移进栈。
② 归约规则 对P中的每个产生式A→w,δ(q,w,ε) 包含(q,A),这些移动的作用是把位于栈顶的句柄w归约到相应的非终结符A。
③ 停止规则 δ(q,$S,ε)包含(r,ε),其中S是文法G的开始符号。这个规则表示分析成功,停止任何动作。注意,它要求栈只含有$S。; 例6.5 考虑算术表达式文法G3[E]:
E→E+T
E→T
T→T?F
T→F
F→(E)
F→a ;尽管上面这些映射函数都不包含一个以上的对偶,但这个PDA仍是非确定的。其中,前五个转换函数用于把输入符号移进栈。接下来的六个用于完成归约工作,该PDA恰好识别L(G).;现在,我们考
您可能关注的文档
- Module.10 A holiday journeyUnit 2This morning we took a walk(共45张PPT)课件.ppt
- new神经网络课4-45教案2课件.ppt
- niersen饼干市场研究1课件.ppt
- n09第4章 半导体存储器1课件.ppt
- new第5章系统分析课件.ppt
- Module 7 My past lifeUnit 2 I was born in Quincy (共41张PPT)课件.ppt
- Ode to a Nightingale详细赏析课件.ppt
- ok高二英语语法复习1课件.ppt
- nr-第10章10.1-10.2(2010.10.26)课件.ppt
- OO对象关联(12-2)课件.ppt
原创力文档


文档评论(0)