第四章语法分析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第四章语法分析课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 语法分析 课件
- 资源描述:
-
1、章语法分析章语法分析第四章第四章 语法分析语法分析v本章内容本章内容v上下文无关文法上下文无关文法v自上而下分析和自下而上分析自上而下分析和自下而上分析v围绕分析器的自动生成展开围绕分析器的自动生成展开词词 法法分析器分析器记记 号号取下一个取下一个记号记号源程序源程序分析分析树树前端的前端的其余部分其余部分分析器分析器中间中间表示表示符号表符号表上下文无关文法 上下文无关文法上下文无关文法 上下文无关文法的定义上下文无关文法的定义正则式能定义一些简单的语言,能表示给定结正则式能定义一些简单的语言,能表示给定结构的固定次数的重复或者没有指定次数的重构的固定次数的重复或者没有指定次数的重复复例:
2、例: (), ()*正则式不能用于描述配对或嵌套的结构正则式不能用于描述配对或嵌套的结构例:配对括号串的集合例:配对括号串的集合例:例: 是和的串是和的串 上下文无关文法上下文无关文法v上下文无关文法是四元组(上下文无关文法是四元组( , , , )v : 终结符集合终结符集合v : 非终结符集合非终结符集合v : 开始符号,非终结符中的一个开始符号,非终结符中的一个v : 产生式集合,产生式集合, 产生式形式产生式形式 : v例例 ( , , , , (, ), , , , )v ()v v 上下文无关文法上下文无关文法v简化表示简化表示v () () v v简化表示简化表示v ( ) (
3、) v 上下文无关文法上下文无关文法v文法书写上的约定v终结符v字母表中的小写字母,如 ,v黑体串,如 , v数字 , , , v标点符号,如括号,逗号等v运算符号,如, 等v非终结符v字母表中的大写字母,如, , v字母,并且通常代表开始符号v小写字母的名字(斜体),如, 上下文无关文法上下文无关文法v文法书写上的约定v字母表中后面的大写字母,如,可以是终结符或非终结符v字母表中后面的小写字母,如, 可代表终结符号串v小写希腊字母,如,可代表文法的符号串v对于 , ,. 可以写成v 上下文无关文法上下文无关文法 推导(自顶向下) 把产生式看成重写规则,把符号串中的非终结符用其产生式右部的串来
4、代替例 ( ) () ( ) ( ) ( ) 概念 *、 ,于是 * * , 且 , 则 * 上下文无关文法上下文无关文法 推导推导 概念概念上下文无关语言上下文无关语言, 且、是任意符号串,则且、是任意符号串,则 由上下文无关文法生成的语言是上下文无关语由上下文无关文法生成的语言是上下文无关语言言等价的文法等价的文法如果两个文法产生同样的语言,则两个文法等如果两个文法产生同样的语言,则两个文法等价价句型句型文法的开始符为,文法的开始符为, *, 可能含有非终结可能含有非终结符,则符,则叫做文法的句型。叫做文法的句型。 上下文无关文法上下文无关文法v例例 ( ) v最左推导最左推导v () (
5、 )v ( ) ( )v最右推导最右推导v () ( )v ( ) ( ) 上下文无关文法上下文无关文法 分析树分析树例例 ( ) () 上下文无关文法上下文无关文法 二义性 两个不同的最左推导 上下文无关文法上下文无关文法 二义性 两棵不同的语法树EEE*+EEidididEEidE*+EEidid语言和文法语言和文法 v文法的优点文法的优点 v文法给出了精确的,易于理解的语法说明文法给出了精确的,易于理解的语法说明v自动产生高效的分析器自动产生高效的分析器v可以给语言定义出层次结构可以给语言定义出层次结构v以文法为基础的语言的实现便于语言的修改以文法为基础的语言的实现便于语言的修改v文法的
6、问题文法的问题v文法只能描述编程语言的大部分语法,不能文法只能描述编程语言的大部分语法,不能描述语言中上下文有关的语法特征描述语言中上下文有关的语法特征 语言和文法语言和文法 正则式和上下文无关文法的比较正则式和上下文无关文法的比较正则式正则式()*文法文法 12开始开始a0abb 语言和文法语言和文法 分离词法分析器理由分离词法分析器理由为什么要用正则式定义词法为什么要用正则式定义词法 词法规则非常简单,不必用上下文无关文法词法规则非常简单,不必用上下文无关文法对于词法记号,正则式描述简洁且易于理解对于词法记号,正则式描述简洁且易于理解从正则式构造出的词法分析器效率高从正则式构造出的词法分析
展开阅读全文