收藏 分享(赏)

编译原理(3)语法_2(推导与语法树).ppt

上传人:fmgc7290 文档编号:7878327 上传时间:2019-05-28 格式:PPT 页数:26 大小:701.50KB
下载 相关 举报
编译原理(3)语法_2(推导与语法树).ppt_第1页
第1页 / 共26页
编译原理(3)语法_2(推导与语法树).ppt_第2页
第2页 / 共26页
编译原理(3)语法_2(推导与语法树).ppt_第3页
第3页 / 共26页
编译原理(3)语法_2(推导与语法树).ppt_第4页
第4页 / 共26页
编译原理(3)语法_2(推导与语法树).ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、第 5 讲,编译原理,西北农林科技大学本科教程,主讲教师:赵建邦,第三章 语法分析,3.1 文法和语言 3.2 推导与语法树 3.3 自顶向下的语法分析 3.4 自底向上的语法分析 3.5 规范规约的自底向上语法分析方法,第三章语法分析 3.2 推导与语法树 推导与短语 语法树与二义性重点掌握 短语、句柄的概念 二义性的消除,本讲目标,3.2.1 推导与短语 1、规范推导 在3.1.1节中,所给句子i+i*i推导序列中的每一步推导都是对句型中的最右非终结符用相应产生式的右部进行替换,这样的推导称为最右推导(规范推导),规范推导的逆过程称为规范规约 如果每一步推导都是对句型中的最左非终结符用相应

2、产生式的右部进行替换,则称为最左推导,3.2 推导与语法树,举例:文法GE:E E + E | E * E | (E) | i (3.1)句子i+i*i的最左推导和最右推导?,3.2.1 推导与短语 2、短语 设是文法GS的一个句型,如果有:则称是句型关于非终结符A的一个短语,或称是的一个短语。特别是有A产生式时,为句型的一个直接短语或简单短语短语的两个条件缺一不可。仅有A 未必意味着就是句型的一个短语,还需要有 加以限制;即短语属于句型的组成部分。,3.2 推导与语法树,3.2.1 推导与短语 3、句柄 一个句型的最左直接短语称为该句型的句柄。注意,一个句型的直接短语可能不只一个,但最左直接

3、短语则是惟一的。,3.2 推导与语法树,举例:文法GE:S AB A bB B Sb | a句型“baSb”的短语和句柄?,解答: (1),句型本身是该句型关于开始符号的短语,最左推导,3.2.1 推导与短语,3.2 推导与语法树,解答: (2),句型baSb的子串Sb,是该句型相对于非终结符B的一个短语,而且是该句型的直接短语,(3),最右推导,句型baSb的子串a, 是该句型相对于非终结符B的一个短语,而且是该句型的直接短语、句柄,最左推导,3.2.1 推导与短语,3.2 推导与语法树,解答:(4),最右推导,句型baSb的子串ba, 是该句型相对于非终结符A的一个短语,注意:短语、直接短

4、语、句柄都是针对某一句型来说的,都是指句型中的哪些符号串能够构成短语、直接短语、句柄。脱离句型,谈论三者是无意义的。,例5.2 文法G E T | E +T T F | T * F F i |(E) i1*i2+i3 是文法G的一个句型吗? 如果是,求出其句柄。,3.2.1 推导与短语 4、素短语 含有终结符的短语,如果它不存在也具有同样性质的真子串(不能包含有另一个素短语),则该短语为素短语(1)是短语(2)至少包含一个终结符(3)不再包含其它素短语 例如,在 中,i、E*i和E+E*i是句型E + E*i的三个短语;其中i为素短语;E*i虽为短语且含有终结符,但它的真子串i是素短语,故E*

5、i不是素短语;同样E+E*i也不是素短语。,3.2 推导与语法树,3.2.1 推导与短语 4、素短语(练习),3.2 推导与语法树,先找短语:,T、T*F 、 T+T*F 、 i 、 T+T*F+i,再找素短语:,T*F 、 i,先找短语:,i 、E*i 、 E+E*i,再找素短语:,i,3.2.2 语法树与二义性 对程序语言来说,有两个问题需要解决:(1)判别程序在语法上是否正确; (2)句子的识别或分析。 在编译方法中,为了便于识别或分析句子而引入了语法树这一重要的辅助工具 语法树以图示化的形式把句子分解成各个组成部分来描述或分析句子的语法结构,这种图示化的表示与所定义的文法规则完全一致,

6、但更为直观和完整,3.2 推导与语法树,3.2.2 语法树与二义性 1、语法树(定义) 对文法GS = (VT, VN, S, ),满足下列条件的树称为GS的语法树: (1) 每个结点用GS 的一个终结符或非终结符标记; (2) 根结点用文法开始符S标记;(3) 内部结点(指非树叶结点)一定是非终结符,如果某内部结点A有n个分支,它的所有子结点从左至右依次标记为x1、x2、xn,则A x1x2xn一定是文法GS的一条产生式;(4) 如果某结点标记为,则它必为叶结点且是其父结点的惟一子结点。,3.2 推导与语法树,图3-4 句子i+i*i的语法树,1、开始符S作为根结点,3.2 推导与语法树,2

7、、父亲节点是产生式左部,孩子节点对应产生式右部“E E+E”,3、在一棵语法树生长过程中的任何时刻,所有那些没有后代的树叶结点自左至右排列起来就是一个句型。,4、一棵已经完成的语法树无法判断是来自于最左推导还 是最右推导,而使用文法规则的推导过程是有先后之分的。 如果坚持使用最左(或最右)推导,那么一棵语法树就完全 等价于一个最左(或最右)推导,3.2.2 语法树与二义性 2、子树与短语 语法树某个结点连同它的所有后代组成了一棵子树。只含有单层分枝的子树称为简单子树。 子树与短语的关系十分密切,根据子树的概念,句型的短语、直接短语、句柄和素短语的直观解释如下:(1) 短语:子树的末端结点(即树

8、叶)组成的符号串是相对于子树根的短语;(2) 直接短语:简单子树的末端结点组成的符号串是相对于简单子树根的直接短语,3.2 推导与语法树,3.2.2 语法树与二义性 2、子树与短语(3) 句柄:最左简单子树的末端结点组成的符号串为句柄;(4) 素短语:子树的末端结点组成的符号串含终结符,且在该子树中不再有包含终结符的更小子树 显然,从语法树出发寻找短语、直接短语、句柄和素短语要直观得多。注意:子树末端结点组成的符号串是指由该子树根开始向下生长的所有末端结点(即树叶),该子树的部分末端结点并不是该子树的短语。,3.2 推导与语法树,图3-5 E+E*i的语法树,3.2 推导与语法树,图3-6 E

9、+E+E*i的语法树,直接短语、句柄、素短语,不是短语,直接短语,3.2.2 语法树与二义性 3、语法的二义性 对于文法任一句型的推导序列,总能为其构造一棵语法树,那么文法的某个句型是否只对应一棵唯一的语法树呢?也就是它是否只有唯一的一个最左(最右)推导呢? 对于文法(3.1),句子i+i*i存在两种最左(最右)推导,形成两棵不同的语法树:,3.2 推导与语法树,最左推导1,最左推导2,图3-7 句子i+i*i的两棵不同的语法树,3.2 推导与语法树,3.2.2 语法树与二义性 3、语法的二义性,3.2.2 语法树与二义性 3、语法的二义性 再如,条件语句的文法GS为 GS: S if b S

10、 S if b S else S S a定义:文法GS的一个句子如果能找到两种不同的最左推导(或最右推导),或者存在两棵不同的语法树,则称这个句子是二义性的。一个文法如果包含二义性的句子,则这个文法是二义文法,否则是无二义文法。,3.2 推导与语法树,句子 if b if b a else a 的两棵不同语法树, 请画出对应的两棵语法树,3.2.2 语法树与二义性 4、文法二义性的消除 对于一个二义性文法GS,如果能找到一个非二义性文法GS,使得L(G) = L(G),则该二义性文法的二义性是可以消除的。如果找不到这样的GS,则二义性文法描述的语言为先天二义性的。 文法二义性消除方法:(1)不

11、改变文法中原有的语法规则,仅增加一些语法的非形式规定;(2)构造一个等价的无二义性文法,把排除二义性的规则合并到原有文法中,改写原有的文法。(增加新的非终结符),3.2 推导与语法树,3.2.2 语法树与二义性 4、文法二义性的消除 例:将文法(3.1)改写为无二义性的文法GE 如下:GE: E E+T | T T T*F | F F (E) | i 此时,句子 i+i*i 就只有如图 3-9所示的惟一一棵语法树:,3.2 推导与语法树,例3.6 试将如下的二义性文法GS的二义性消除: GS: S if b S | if b S else S | a,解答 消除GS 的二义性可采用如下两种方法

12、: (1) 不改变已有规则,仅加进一项非形式的语法规定:else与离它最近的if匹配(即最近匹配原则),这样,文法GS 的句子if b if b a else a只对应惟一的一棵语法树(见图3-10)。 (2) 改写文法GS 为 GS: S S1 | S2 S1 if b S1 else S1 | a S2 if b S | if b S1 else S2 GS对应的语法树见图3-11,3.2 推导与语法树,3.2 推导与语法树,图3-11 GS的复合if语句的语法树,图3-10 复合if语句的语法树,3.2.2 语法树与二义性 特别说明 应该指出的是文法的二义性和语言二义性是两个不同的概念通常直说文法的二义性,而不说语言的二义性,这是因为可能有两个不同的文法G和G,其中一个是二义性的,另一个是无二义性的,但却有L(G)=L(G),即这两个文法所产生的语言是相同的;讲一个语言称为二义性的,是指对它不存在无二义性的文法,这样的语言称为先天二义性的语言。,3.2 推导与语法树,课后习题: 3.2 3.3,3.2 推导与语法树,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报