【教学课件】第五章语法分析-自下而上分析.ppt
《【教学课件】第五章语法分析-自下而上分析.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第五章语法分析-自下而上分析.ppt(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章第五章语法分析语法分析自下而上自下而上分析分析所谓自下而上分析法就是从输入串开始,逐步进行所谓自下而上分析法就是从输入串开始,逐步进行“归约归约”,直至归约到文法的开始符号;或者说从语法树的末端开始,步步,直至归约到文法的开始符号;或者说从语法树的末端开始,步步向上向上“归约归约”,直到根结。,直到根结。5.1 自下而上分析基本问题自下而上分析基本问题 我们先讨论自下而上分析的一些基本思想和我们先讨论自下而上分析的一些基本思想和 基本概念:基本概念:归约归约自下而上分析的关键问题是寻找自下而上分析的关键问题是寻找可归约串可归约串。对。对“可归约串可归约串”概念的不同定义,就形成了不同的自
2、下而上的分析方法。在算符优概念的不同定义,就形成了不同的自下而上的分析方法。在算符优先分析法中我们用先分析法中我们用“最左素短语最左素短语”来刻画来刻画“可归约串可归约串”,在,在“规范规范归约归约”中,则用中,则用“句柄句柄”来刻画来刻画“可归约串可归约串”5.1.2 规范归约简述规范归约简述 在这一部分应掌握在这一部分应掌握短语短语和和直接短语直接短语和和句柄句柄三个重要概念三个重要概念 令令G是一个文法,是一个文法,S是文法的开始符,假定是文法的开始符,假定是文法是文法G的一个句型,如果有:的一个句型,如果有:S*A 且且 A+则称则称 是句型是句型相对于非相对于非终结符终结符A的的短语
3、短语。特别是,如果有。特别是,如果有 A 则称则称 是句型是句型相对于规则相对于规则A 的的直接短语直接短语,一个句型的最左直接短语成为该句型的,一个句型的最左直接短语成为该句型的句句柄柄。注意:短语的。注意:短语的两两个条件是:个条件是:S*A 且且 A+例例5.1考虑文法:考虑文法:E T|E+T T F|T*F F i|(E)(5.2)对于句型对于句型i*i+i 推导推导解:解:EE+TT+TT*F+TF*F+Ti*F+Ti*i+F i*i+i 尽管有尽管有E +i+i 但是但是,i+i 并不是该句型的一并不是该句型的一个短语,因为不存在从个短语,因为不存在从E(文法开始符)到文法开始符
4、)到i*E的推的推导。但是,导。但是,i,i*i,和和i*i+i 自身都是句型自身都是句型i*i+i 的短的短语。而且为为直接短语。语。而且为为直接短语。例例5。2 上题文法(上题文法(5。2)的另一个句型)的另一个句型E+T*F+i 的短语有的短语有 E+T*F+i ,E+T*F,T*F,和和i.其其中中T*F和和i为直接短语,为直接短语,T*F为句柄。为句柄。解:解:EE+TE+T+TE+T*F+TE+T*F+F E+T*F+i 关于关于规范归约规范归约精确的说,假定精确的说,假定 是文法是文法G G的一个句子,的一个句子,我们称序列我们称序列 n n n-1n-1 n-2n-2,。,0
5、0 是是 的一个规范规约,如果此序列满足:的一个规范规约,如果此序列满足:(1 1)n n=;(2(2)0 0 为文法的开始符为文法的开始符,即即 0 0=S;=S;(3 3)对于任何的)对于任何的i i,0i=n,0i=n,i-1i-1 是从是从 i i 经把句柄替经把句柄替换为相应产生式的左部符号而得到的。换为相应产生式的左部符号而得到的。容易看到,规范归约是关于容易看到,规范归约是关于的一个最右推导的的一个最右推导的逆过程。因此规范归约也成最左归约。逆过程。因此规范归约也成最左归约。在形式语言中,最右推导常被称为规范推导。由规在形式语言中,最右推导常被称为规范推导。由规范推导所得的句型称
6、为规范举行。如果文法范推导所得的句型称为规范举行。如果文法G G是无二义是无二义的,那么规范推导的逆过程必是规范归约。的,那么规范推导的逆过程必是规范归约。5.1.3 5.1.3 符号栈的使用与语法树的表示符号栈的使用与语法树的表示 本节重点掌握符号栈的使用请阅读本节重点掌握符号栈的使用请阅读P87P87相应段落。相应段落。现在举个例子以加深对这一节的理解。现在举个例子以加深对这一节的理解。例例5.3:对于文法(:对于文法(5.2)输入串)输入串i1*i2+i3 的分析(规范归约)步骤的分析(规范归约)步骤可表示如下:可表示如下:步骤步骤 符号栈符号栈 输入串输入串 动作动作0#i1*i2+i
7、3#预备预备1#i1 *i2+i3#读入读入i12#F *i2+i3#归约,归约,Fi 3#T *i2+i3#归约,归约,T F4#T*i2+i3#读入读入5#T*i2 +i3#读入读入6#T*F +i3#归约,归约,F i7#T +i3#归约,归约,T T*F8#E +i3#归约,归约,E T9#E+i3#读入读入10#E+i3#读入读入11#E+F#归约归约,F i12#E+T#归约归约,T F13#E#归约归约,E E+T14#E#接受接受5.2 算符优先分析算符优先分析 5.2.1 算符优先文法及优先表的构造算符优先文法及优先表的构造 一个文法,如果它的任何产生式的右部都不含量个相继一
8、个文法,如果它的任何产生式的右部都不含量个相继(并列)的非终结符,即不含如下形式的产生式右部:(并列)的非终结符,即不含如下形式的产生式右部:QR 则我们称该文法为则我们称该文法为算符文法算符文法。在后面的定义中,在后面的定义中,a、b代表任意终结符;代表任意终结符;P、Q、R代表任代表任意非终结符;意非终结符;代表有终结符和非终结符组成的任意序列,代表有终结符和非终结符组成的任意序列,包括空字。包括空字。假定假定G是一个不含是一个不含-产生式的算符文法。对于任何一对终产生式的算符文法。对于任何一对终结符结符a、b,我们说:,我们说:(1)a b 当且仅当文法当且仅当文法G中含有形如中含有形如
9、P ab或或P aQb的产生式的产生式;(2)ab当且仅当当且仅当G中含有形如中含有形如P Rb的产生式,的产生式,R而而R+a或或R+aQ;如果一个文法如果一个文法G中的任何终结符对(中的任何终结符对(a,b)至多只满足下述三关)至多只满足下述三关系之一:系之一:a=b,ab 则称则称G是一个是一个算符优先文法算符优先文法。应掌握应掌握算符优先表算符优先表的构造方法。的构造方法。通过检查通过检查G的每个产生式的每个候选式,可以找出满足的每个产生式的每个候选式,可以找出满足a=b的终结符对。为了找出所有满足关系的终结符对。为了找出所有满足关系的终结符对,我们需的终结符对,我们需要对要对G的每个
10、非终结符的每个非终结符P 构造两个集合构造两个集合FIRSTVT(P)和和LASTVT(P):FIRSTVT(P)=a|P+a或或P+Qa,a VT而而 Q VN LASTVT(P)=a|P+a或或P+aQ,a VT而而 Q VN 有了这两个集合后,就可以通过检查每个产生式的候选式确定有了这两个集合后,就可以通过检查每个产生式的候选式确定满足关系满足关系的所有终结符对。例如:假定有个产生式的一个的所有终结符对。例如:假定有个产生式的一个候选式为候选式为 aP 那末,对任何那末,对任何b FISTVT(P),我们有我们有ab.我们首先讨论构造集合我们首先讨论构造集合FIRSTVT(P)的算法。按
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第五 语法分析 自下而上 分析
限制150内