语法分析—自上而下分析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《语法分析—自上而下分析课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语法分析 自上而下 分析 课件
- 资源描述:
-
1、第四章第四章 语法分析语法分析自上而下分析自上而下分析编译原理本章主要内容本章主要内容n本章主要介绍语法分析的处理本章主要介绍语法分析的处理语法分析的任务语法分析的任务自顶向下分析法自顶向下分析法四元式四元式单词符号单词符号语法单位语法单位四元式四元式目标代码目标代码词法分析器词法分析器语法分析器语法分析器语义分析与中间代码语义分析与中间代码生成器生成器优化段优化段源程序源程序表表格格管管理理出出错错处处理理目标代码生成器目标代码生成器语法分析的任务语法分析的任务n语法分析程序以单词串形式的源程序作为语法分析程序以单词串形式的源程序作为输入或分析的对象。输入或分析的对象。n它的基本任务是:它的
2、基本任务是: 根据语言的语法规则根据语言的语法规则 ,分析源程序的语法结,分析源程序的语法结构,即分析如何由这些单词组成各种语法范畴构,即分析如何由这些单词组成各种语法范畴 (如下标变量、各种表达式、各种语句、程序段如下标变量、各种表达式、各种语句、程序段或分程序,乃至整个源程序等等或分程序,乃至整个源程序等等),并在分析过,并在分析过程中,对源程序进行语法检查。程中,对源程序进行语法检查。 n作为语法分析程序的输出,可以有多种不作为语法分析程序的输出,可以有多种不同的形式。在下面的讨论中,为简便起见,同的形式。在下面的讨论中,为简便起见,我们假定语法分析程序的输出,是用某种我们假定语法分析程
3、序的输出,是用某种方法表示的语法树方法表示的语法树 语法分析语法分析l如何精确描述和刻画语言中的基本语如何精确描述和刻画语言中的基本语法成分法成分-如表达式、语句和函数?如表达式、语句和函数?l如何识别语法成分及语法错误并执行如何识别语法成分及语法错误并执行某些相关的处理动作?某些相关的处理动作? 什么是语言什么是语言自然语言自然语言(Natural Language)(Natural Language)n是人与人的通讯工具是人与人的通讯工具n语义语义(Semantics):(Semantics):环境、背景知识、语气、环境、背景知识、语气、二义性二义性难以形式化难以形式化计算机语言计算机语言
4、(Computer Language)(Computer Language)n计算机系统间、人机间通讯工具计算机系统间、人机间通讯工具n严格的语法严格的语法(Grammar)(Grammar)、语义、语义(Semantics) (Semantics) 易于形式化:严格易于形式化:严格语言是用来交换信息的工具语言是用来交换信息的工具功能性描述功能性描述什么是语言什么是语言语言语言单词单词(Token)(Token):满足一定规则字符:满足一定规则字符(Character)(Character)串串句子句子(Sentence)(Sentence):满足一定规则单词序列:满足一定规则单词序列语言语言
5、(Language)(Language):满足一定条件的句子集合:满足一定条件的句子集合语言是字和组合字的规则语言是字和组合字的规则结构性描述结构性描述例:去吃我们中汉堡午例:去吃我们中汉堡午 中午我们去吃汉堡中午我们去吃汉堡如何描述一种语言?如何描述一种语言?1. 1. 如果语言是有穷的(只含有有穷多如果语言是有穷的(只含有有穷多个句子),可以通过个句子),可以通过枚举法枚举法将语言所有将语言所有的句子列出表示。的句子列出表示。n例如,只含两个句子的语言:例如,只含两个句子的语言:“I am “I am a teacher”, “You are students”;a teacher”, “
6、You are students”;如何描述一种语言?如何描述一种语言? 2. 2. 如果语言是无穷的,描述语言有两种途径:如果语言是无穷的,描述语言有两种途径:l制定制定有限条规则有限条规则,用于产生所要描述的语言的,用于产生所要描述的语言的全部句子(可无限多),这些规则构成了该语全部句子(可无限多),这些规则构成了该语言的言的文法文法。l设计一种装置(算法或过程设计一种装置(算法或过程,它以某字母表,它以某字母表上的符号串为输入,判别该符号串是否为所描上的符号串为输入,判别该符号串是否为所描述语言的句子。此装置称为述语言的句子。此装置称为自动机。自动机。语言概述语言概述程序设计语言程序设计
7、语言形式化的内容提取形式化的内容提取程序设计语言程序设计语言(Programming Language)(Programming Language):组:组成程序的所有语句的集合成程序的所有语句的集合程序程序(Program)(Program):满足语法规则的语句序列:满足语法规则的语句序列语句语句(Sentence) (Sentence) :满足语法规则的单词序列:满足语法规则的单词序列单词单词(Token) (Token) :满足词法规则的字符串:满足词法规则的字符串文法和语法分析文法和语法分析正规式的局限性:不能用于描述配正规式的局限性:不能用于描述配对或嵌套的结构对或嵌套的结构l例例1
8、 1:配对括号串的集合:配对括号串的集合l例例2 2:wcwwcw | w | w是是a a和和b b的串的串 仅能表示给定结构的仅能表示给定结构的固定次数的重复或者没有固定次数的重复或者没有指定次数的重复指定次数的重复 适合描述和识别语言适合描述和识别语言的单词符号;的单词符号;文法和语法分析文法和语法分析高级语言的语法结构适合使用高级语言的语法结构适合使用上下文无关文法描述。上下文无关文法描述。文法及语言的形式定义文法及语言的形式定义文法是对语言结构的定义与描述(或文法是对语言结构的定义与描述(或称为称为“语法语法”),即用适当条数的规),即用适当条数的规则把语言的全部句子描述出来。则把语
9、言的全部句子描述出来。文法是以有穷的集合刻划无穷的集合文法是以有穷的集合刻划无穷的集合的工具。的工具。文法文法l文法能清晰地描述程序设计语言的语法构文法能清晰地描述程序设计语言的语法构成易于理解。成易于理解。 l文法能自动地构造有效的语法分析器,检文法能自动地构造有效的语法分析器,检查源程序是否符合语言规定的语法形式。查源程序是否符合语言规定的语法形式。 l文法定义可以了解程序设计语言的结构,文法定义可以了解程序设计语言的结构,有利于将源程序转化为目标代码,以及检有利于将源程序转化为目标代码,以及检查出语法错误。查出语法错误。 l基于文法实现的语言易于扩展。基于文法实现的语言易于扩展。文法及语
10、言的形式定义文法及语言的形式定义例:有一句子:例:有一句子:“He has a pen.”He has a pen.”这这是一个在语法、语义上都正确是一个在语法、语义上都正确的的句子,句子,该句子的结构(称为语法结构)是由该句子的结构(称为语法结构)是由它的语法决定的它的语法决定的 。在本例中它为。在本例中它为“主主谓谓宾宾结构结构”。文法的形式定义文法的形式定义 语法规则:我们通过建立一组语法规则:我们通过建立一组规则,来描述句子的语法结构。规则,来描述句子的语法结构。文法的形式定义文法的形式定义 := := := := := he := he := a := a := pen := pen
11、 := := := has := has := := := pen := pen括起来的括起来的部分是语言部分是语言的一个语法的一个语法实体(称为实体(称为语法单位、语法单位、语法范畴、语法范畴、语法变量等)语法变量等)规定用规定用“:=”:=”表示表示“由由组组成成”l终结符号集终结符号集V VT T = he, has, a, pen= he, has, a, penl非终结符号集非终结符号集V VN N = = 句子句子 , 主语主语 , 谓语谓语 , 冠词冠词 , 形容词形容词 , 名词名词 , 动词动词 , 宾语宾语 , 名词名词 l产生式集合产生式集合P P = = 句子句子 主语
12、主语谓语谓语 , l开始符号开始符号S S = = 句子句子 句子的语法组成句子的语法组成句子的推导句子的推导_根据规则根据规则n由规则推导句子:有了一组规则之由规则推导句子:有了一组规则之后,可以按照一定的方式用它们去后,可以按照一定的方式用它们去推导或产生句子。推导或产生句子。n推导方法:从一个要识别的符号开推导方法:从一个要识别的符号开始推导,即用相应产生式的右部来始推导,即用相应产生式的右部来替代产生式的左部,每次仅用一条替代产生式的左部,每次仅用一条规则去进行推导。规则去进行推导。 = = = he = he has = he has = he has a = he has a pe
13、n := := := he := a := pen := := has := := pen上下文无关文法的形式定义上下文无关文法的形式定义一个上下文无关文法一个上下文无关文法G G是一个四元式是一个四元式 G=(VG=(VT T,V VN N,S S,P)P),其中,其中V VT T:终结符集合:终结符集合( (非空非空) )V VN N:非终结符集合:非终结符集合( (非空非空) ),且,且V VT T V VN N= =S S:文法的开始符号,:文法的开始符号,S S V VN NP P:产生式集合:产生式集合( (有限有限) ),每个产生式形式为,每个产生式形式为P P, P P V V
14、N N, ( (V VT T V VN N) )* *开始符开始符S S至少必须在某个产生式的左部出现一至少必须在某个产生式的左部出现一次。次。n例,定义只含例,定义只含+,*的算术表达式的文法的算术表达式的文法 G=, 其其中,中,P由下列产生式组成:由下列产生式组成:E iE E+EE E*EE (E)4.1 语法分析器的功能语法分析器的功能n语法分析的任务是分析一个文法的句子语法分析的任务是分析一个文法的句子结构。结构。n语法分析器的功能:按照文法的产生式语法分析器的功能:按照文法的产生式( (语言的语法规则语言的语法规则) ),识别输入符号串是,识别输入符号串是否为一个句子否为一个句子
展开阅读全文