- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 语法分析—自下而上分析;内容;5.1 自下而上分析基本问题;5.1.1 自下而上分析;5.1.2 自下而上分析法的基本思想;5.1.3 先进后出栈;5.1.4 移进-归约分析;5.1.5 归约的语法树分析法;5.1.6 规范归约简述;5.1.7 规范归约例一;5.1.7.1 归约的分析树;5.1.7.2 短语;5.1.7.3 直接短语与句柄;E;5.1.2 规范归约简述;5.1.2 规范归约简述;5.1.2 规范归约简述;5.1.2 规范归约简述;5.1.3 符号栈的使用与语法树的表示;5.1.3 符号栈的使用与语法树的表示;考察文法G[S]:
S?aABe A?b A?Abc B?d
的输入序列abbcde,移进—归约方法分析的符号栈变化过程如下所示。;5.2 算符优先分析;5.2 算符优先分析;5.2 算符优先分析;5.2.1 算符优先文法及优先表构造;假定G是一个不含?-产生式的算符文法。对于任何一对终结符a、b,我们说:
1. a≒b 当且仅当文法G中含有形如P→…ab…或P→…aQb…的产生式;;5.2.1 算符优先文法及优先表构造;5.2.1 算符优先文法及优先表构造;从算符优先文法G构造优先关系表的算法:
通过检查G的每个产生式的每个候选式,可找出所有满足a≒b的终结符对。
确定满足关系≮和≯的所有终结符对:
首先需要对G的每个非终结符P构造两个集合FIRSTVT(P)和LASTVT(P):;5.2.1 算符优先文法及优先表构造;FIRSTVT(P)的算法;FIRSTVT(P)的算法;FIRSTVT(P)的算法;FIRSTVT(P)的算法;FIRSTVT(P)的算法;5.2.1 算符优先文法及优先表构造;5.2.1 算符优先文法及优先表构造;;G的算符优先关系表:
结论: G是算符优先文法;5.2.2 算符优先分析算法;考虑下面的文法G(E):
(1) E→E+T | T (2) T→T*F | F
(3) F→P ? F | P (4) P→(E) | i
句型:T+F*P+i
短语:T+F*P+i, T, F,
P, F*P, i, T+F*P
直接短语:T, F, P, i
句柄:T
素短语: F*P, i
最左素短语: F*P;5.2.2 算符优先分析算法;5.2.2 算符优先分析算法;5.2.2 算符优先分析算法;5.2.2 算符优先分析算法;5.2.2 算符优先分析算法;5.2.3 优先函数;5.2.3 优先函数;有许多优先关系表不存在优先函数,如:
不存在对应的优先函数f和g
假定存在f和g,则有
f(a)=g(a),f(a)g(b), f(b)=g(a),f(b)=g(b)
导致如下矛盾:
f(a) g(b) = f(b) = g(a) = f(a)
如果优先函数存在,则不唯一(无穷多);如果优先函数存在,则可以??过以下三个步骤从优先表构造优先函数:
1 对于每个终结符a,令其对应两个符号fa和ga,画一以所有符号fa和ga为结点的方向图。如果a≯≒b,则从fa画一条弧至gb,如果a≮≒b,则画一条弧从gb至fa。
2 对每个结点都赋予一个数,此数等于从该结点出发所能到达的结点(包括出发点自身)。赋给fa的数作为f(a),赋给ga的数作为g(a)。
3 检查所构造出来的函数f和g是否与原来的关系矛盾。若没有矛盾,则f和g就是要求的优先函数,若有矛盾,则不存在优先函数。;例:求文法G(E)
(1) E→E+T | T (2) T→T*F | F
(3) F→P ? F | P (4) P→(E) | i
的终结符+,*,↑,i所对应的优先函数。;5.2.3 优先函数;练习;文法: S→a|∧|(T) T→T,S|S
展开为: S→a S→∧ S→(T) T→T,S T→S
(1) FIRSTVT -- LASTVT表 ;(2)算符优先关系表如下: 表中无多重入口所以是算符优先(OPG)文法。 ;(3) 输入串(a,(a,a))# 的算符优先分析过程为:
原创力文档


文档评论(0)