第四章 语法分析.ppt
《第四章 语法分析.ppt》由会员分享,可在线阅读,更多相关《第四章 语法分析.ppt(39页珍藏版)》请在麦多课文档分享上搜索。
1、第四章 语法分析,第四章 语法分析,本章内容 上下文无关文法 自上而下分析和自下而上分析 围绕分析器的自动生成展开,上下文无关文法,4.14.3,4.1 上下文无关文法,4.1.1 上下文无关文法的定义正则式能定义一些简单的语言,能表示给定结构的固定次数的重复或者没有指定次数的重复例:a (ba)5, a (ba)*正则式不能用于描述配对或嵌套的结构例1:配对括号串的集合例2:wcw | w是a和b的串,4.1 上下文无关文法,上下文无关文法是四元组(VT , VN , S, P) VT : 终结符集合 VN : 非终结符集合 S : 开始符号,非终结符中的一个 P : 产生式集合, 产生式形
2、式 : A 例 ( id, +, , , (, ), expr, op, expr, P ) expr expr op expr expr (expr) expr expr expr id op + op ,4.1 上下文无关文法,简化表示 expr expr op expr | (expr) | expr | id op + | 简化表示 E E A E | (E ) | E | id A + | ,4.1 上下文无关文法,文法书写上的约定 终结符 字母表中的小写字母,如 a,b,c 黑体串,如 id, while 数字 0, 1, , 9 标点符号,如括号,逗号等 运算符号,如+, -等
3、非终结符 字母表中的大写字母,如A, B, C 字母S,并且通常代表开始符号 小写字母的名字(斜体),如expr, stmt,4.1 上下文无关文法,文法书写上的约定 字母表中后面的大写字母,如X,Y,Z,可以是终结符或非终结符 字母表中后面的小写字母,如u,v z 可代表终结符号串 小写希腊字母,如a,b,可代表文法的符号串 对于A a1,A a2,. A an可以写成A a1 | a2 | | an,4.1 上下文无关文法,4.1.2 推导(自顶向下) 把产生式看成重写规则,把符号串中的非终结符用其产生式右部的串来代替 例 E E + E | E E | (E ) | E | id E E
4、 (E) (E + E) (id + E) (id + id) 概念 S *、 S + w ,于是 * * b, 且 b , 则 * ,4.1 上下文无关文法,4.1.2 推导 概念 上下文无关语言 A, 且a、b是任意符号串,则aAb ab 由上下文无关文法生成的语言是上下文无关语言 等价的文法 如果两个文法产生同样的语言,则两个文法等价 句型 文法G的开始符为S,S *, 可能含有非终结符,则叫做文法G的句型。,4.1 上下文无关文法,例 E E + E | E E | (E ) | E | id 最左推导E lm E lm (E) lm (E + E) lm (id + E) lm (i
5、d + id) 最右推导E rm E rm (E) rm (E + E) rm (E + id) rm (id + id),4.1 上下文无关文法,4.1.3 分析树 例 E E + E | E E | (E ) | E | id,E,E,(,),E,E,E,+,id,id,4.1 上下文无关文法,4.1.4 二义性 id id + idE E E E E + E id E E E +E id E + E id E + E id id + E id id + E id id + id id id + id两个不同的最左推导,4.1 上下文无关文法,4.1.4 二义性 id id + idE E
6、 E E E + E id E E E +E id E + E id E + E id id + E id id + E id id + id id id + id两棵不同的语法树,4.2语言和文法,文法的优点 文法给出了精确的,易于理解的语法说明 自动产生高效的分析器 可以给语言定义出层次结构 以文法为基础的语言的实现便于语言的修改文法的问题 文法只能描述编程语言的大部分语法,不能描述语言中上下文有关的语法特征,4.2 语言和文法,4.2.1 正则式和上下文无关文法的比较 正则式 (a|b)*ab文法 A0 a A0 | b A0 | a A1 A1 b A2 A2 ,4.2 语言和文法,4
7、.2.2 分离词法分析器理由为什么要用正则式定义词法 词法规则非常简单,不必用上下文无关文法 对于词法记号,正则式描述简洁且易于理解 从正则式构造出的词法分析器效率高,4.2 语言和文法,从软件工程角度看,词法分析和语法分析的分离有如下好处简化设计 编译器的效率会改进 编译器的可移植性加强 便于编译器前端的模块划分,4.2 语言和文法,能否把词法分析并入到语法分析中,直接从字符流进行语法分析若把词法分析和语法分析合在一起,则必须将语言的注解和空白的规则反映在文法中,文法将大大复杂 注解和空白由自己来处理的分析器,比注解和空格已由词法分析器删除的分析器要复杂得多,4.2 语言和文法,4.2.3
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 语法分析 PPT
