编译原理语法1(文法和语言).ppt
《编译原理语法1(文法和语言).ppt》由会员分享,可在线阅读,更多相关《编译原理语法1(文法和语言).ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 4 4 讲讲西北农林科技大学本科教程西北农林科技大学本科教程 主讲教师:赵建邦主讲教师:赵建邦 第三章第三章 语法分析语法分析l3.1 3.1 文法和语言文法和语言l3.2 3.2 推导与语法树推导与语法树l3.3 3.3 自顶向下的语法分析自顶向下的语法分析l3.4 3.4 自底向上的语法分析自底向上的语法分析l3.5 3.5 规范规约的自底向上语法分析方法规范规约的自底向上语法分析方法u第三章第三章语法分析语法分析l3.1 3.1 文法和语言文法和语言l文法和语言的基本概念文法和语言的基本概念l形式语言分类(形式语言分类(4 4类)类)l正规表达式与上下文无关文法正规表达式与上下文无
2、关文法u重点掌握重点掌握l文法的表示文法的表示本讲目标本讲目标 u定位定位语法分析是编译过程的第二个阶段,也是核心部分语法分析是编译过程的第二个阶段,也是核心部分u任务任务根据语言的根据语言的语法规则语法规则对单词序列进行语法分析,识别合法的对单词序列进行语法分析,识别合法的语法单位(如表达式、语句、程序段等),若不存在语法错语法单位(如表达式、语句、程序段等),若不存在语法错误则给出正确的语法结构(语法树)误则给出正确的语法结构(语法树)理论依据:理论依据:上下文无关文法上下文无关文法u方法方法自顶向下分析(自顶向下分析(推导推导:开始符号:开始符号 句子)句子)自底向上分析(自底向上分析(
3、规约规约:句子:句子 开始符号)开始符号)语法分析:语法分析:英语语法结构英语语法结构3.1 3.1 文法和语言文法和语言u文法文法(Grammar)是是程序语言的生成系统,用文法可以精确定义一程序语言的生成系统,用文法可以精确定义一个语言,并依据该文法构造出识别这个语言的个语言,并依据该文法构造出识别这个语言的自动机自动机u文法文法对程序语言和编译程序的构造具有重要意义,如程序语言的对程序语言和编译程序的构造具有重要意义,如程序语言的词法可用正规文法描述,语法可用上下文无关文法描述,而语义词法可用正规文法描述,语法可用上下文无关文法描述,而语义则要借助于上下文有关文法则要借助于上下文有关文法
4、描述描述3.1 3.1 文法和语言文法和语言u3.1.1 文法和语言的基本文法和语言的基本概念概念1、语言、语言通常我们用通常我们用表示表示字母表字母表,字母表中的每个元素称为字符,字母表中的每个元素称为字符或符号。不同语言的字母表可能是不同的,或符号。不同语言的字母表可能是不同的,程序语言的字程序语言的字母表通常是母表通常是ASCII字符集字符集。由字母表由字母表中的字符所组成的有穷系列称为中的字符所组成的有穷系列称为上的上的字符串字符串或字或字,字母表,字母表上的所有字符串上的所有字符串(包括空串包括空串)组成的集合用组成的集合用*表示。表示。那么,对字母表那么,对字母表来说来说,*上上的
5、任意一个子集都称为的任意一个子集都称为上上的一个的一个语言语言,记为,记为L()L(),该语言的每一个字符串称该语言的每一个字符串称为语言为语言L L的一个的一个语句或句子语句或句子。3.1 3.1 文法和语言文法和语言u3.1.1 文法和语言的基本文法和语言的基本概念概念1、语言、语言例如,设例如,设=a,b,ca,b,c,则,则:L L=,a,aa,ab,aaa,aab,aba,abb,a,aa,ab,aaa,aab,aba,abb,为为上的一个上的一个语言语言。如果如果a a表示字母,表示字母,b b表示数字,表示数字,c c看做其它符号,则看做其它符号,则L L即即是程序语言中的是程序
6、语言中的标识符集标识符集,其中的每个标识符就是标识,其中的每个标识符就是标识符集中的一个符集中的一个句子句子。3.1 3.1 文法和语言文法和语言u3.1.1 文法和语言的基本文法和语言的基本概念概念2、文法、文法(定义)(定义)文法通常表示成文法通常表示成四元组四元组GS=(VT,VN,S,):(1)VT为终结符号集为终结符号集,这是一个非空有限集,它的每个元素,这是一个非空有限集,它的每个元素称为称为终结符号终结符号。(2)VN为非终结符号集为非终结符号集,它也是一个非空有限集,其每个元,它也是一个非空有限集,其每个元素称为素称为非终结符号非终结符号,且有且有VTVN=;(3)S为文法为文
7、法开始符开始符,是一个特殊的非终结符号,即,是一个特殊的非终结符号,即SVN;3.1 3.1 文法和语言文法和语言u3.1.1 文法和语言的基本文法和语言的基本概念概念2、文法、文法(定义)(定义)文法通常表示成文法通常表示成四元组四元组GS=(VT,VN,S,):(4)是产生式的非空有限集是产生式的非空有限集,其中每个产生式,其中每个产生式(或称规则或称规则)是是一序偶一序偶(,),通常写作,通常写作 或或 :=读作读作“产生产生”、“是是”或或“定义为定义为”。在此,。在此,为产为产生式的左部,而生式的左部,而为产生式的右部,为产生式的右部,、是由终结符和非终是由终结符和非终结符组成的符号
8、串,结符组成的符号串,(VTVN)+且至少有一个非终结符,且至少有一个非终结符,而而(VTVN)*。3.1 3.1 文法和语言文法和语言u3.1.1 文法和语言的基本文法和语言的基本概念概念2、文法(文法中的基本概念)、文法(文法中的基本概念)终结符号:终结符号:是指语言是指语言不可再分的基本符号不可再分的基本符号,通常是一个语,通常是一个语言的字母表;终结符代表了语法的最小元素,是一种言的字母表;终结符代表了语法的最小元素,是一种个体个体记号记号。非终结符号:非终结符号:也称语法变量,它代表语法实体或语法范畴;也称语法变量,它代表语法实体或语法范畴;非终结符代表一非终结符代表一个个特定特定的
9、的语法概念,因此,一个非终结符语法概念,因此,一个非终结符是是一个类、一个集合一个类、一个集合。注意:注意:1、字母表可以称为文法中的、字母表可以称为文法中的终结符集终结符集2、非终结符不能是字母表中的字符、非终结符不能是字母表中的字符3.1 3.1 文法和语言文法和语言u3.1.1 文法和语言的基本文法和语言的基本概念概念2、文法(文法中的基本概念)、文法(文法中的基本概念)文法开始符号文法开始符号S:是一个特殊的非终结符,它代表文法所定是一个特殊的非终结符,它代表文法所定义的语言中我们义的语言中我们最终感兴趣的语法实体最终感兴趣的语法实体,即语言的目标,即语言的目标,而其它语法实体只是构造
10、语言目标的中间而其它语法实体只是构造语言目标的中间变量变量产生产生式:式:(也称产生规则或规则也称产生规则或规则)是定义语法实体的一种书是定义语法实体的一种书写规则。一个语法实体的相关规则可能不止一个。写规则。一个语法实体的相关规则可能不止一个。P1P2 Pn如果:如果:P1|2|n其中,每个其中,每个i(i=1,2,n)称为称为P的一个的一个候选式候选式,直竖,直竖“|”读为读为“或或”,它与,它与“”一样是用来描述文法的元语言符一样是用来描述文法的元语言符号号(即不属于即不属于的字符的字符)。3.1 3.1 文法和语言文法和语言可以写成:可以写成:例如,定义一个仅包含加和乘运算的表达式的文
11、法例如,定义一个仅包含加和乘运算的表达式的文法GE:GS=(VT,VN,S,):VT =+*()i VN =E,T,F S =E 为以下产生式的集合:为以下产生式的集合:EE+T|T TT*F|F F(E)|i两种文法都可以识别包含加和乘运算的表达式,它们的区两种文法都可以识别包含加和乘运算的表达式,它们的区别将在后面的课程中讲解别将在后面的课程中讲解VT =+*()iVN =ES =E:E E+E E E*E E(E)E i3.1 3.1 文法和语言文法和语言或者:或者::Ei|E+E|E*E|(E)u3.1.1 文法和语言的基本文法和语言的基本概念概念 关于文法表示的约定:关于文法表示的约
12、定:在在此后的讨论中,用大写字母此后的讨论中,用大写字母A、B、S、E等表示非终结符等表示非终结符,用用小写字母小写字母a、b、i、j等表示终结符等表示终结符,并用,并用希腊字母等表示文希腊字母等表示文法符号串法符号串,即,即、等均属于等均属于(VTVN)*。2.3 2.3 正规表达式与优先自动机简介正规表达式与优先自动机简介例例3.1 试构造产生标识符的文法。试构造产生标识符的文法。解答解答 首先,标识符是以字母开头的首先,标识符是以字母开头的字母数字字母数字串,串,用用L表示表示“字母字母”类类非终结符,非终结符,用用D表表示示“数字数字”类非类非终结符,终结符,TL|D (单个的字母或数
13、字字符)(单个的字母或数字字符)S T|ST(字母或数字串)(字母或数字串)La|b|zD0|1|9 而用而用T表表示示“字母或数字字母或数字”类非类非终结符,则有:终结符,则有:其中,产生式其中,产生式ST|ST是一种左递归形式,由它可以产生一串是一种左递归形式,由它可以产生一串T课本例题课本例题 I L|LS(标识符)(标识符)因此,产生标识符的文法因此,产生标识符的文法GI为:为:GI=(VT,VN,I,):课本例题课本例题VT =a,b,z,0,9 VN=I,S,T,L,D :I L|LS S T|ST T L|D L a|b|z D 0|1|9S=I解答解答 根据题意,将根据题意,将
14、奇数奇数划分为三个部分划分为三个部分:例例3.2 写一文法,使其语言是奇数集合,但不允许出现以写一文法,使其语言是奇数集合,但不允许出现以0打头打头的奇数。的奇数。课本例题课本例题最高位最高位允许出现允许出现19,用非终结符,用非终结符B表示表示;最低位最低位1、3、5、7、9等奇数,用等奇数,用A表示表示;中间位中间位可以是可以是09,每位用,每位用D表示。表示。A1|3|5|7|9B1|2|3|4|5|6|7|8|9D0|B课本例题课本例题针对两位以上的奇数,用针对两位以上的奇数,用M表示表示十位以上的数字位十位以上的数字位:M B|MD奇数,用奇数,用N表示,包括表示,包括一位一位的奇数
15、与的奇数与两位以上两位以上的奇数:的奇数:N A|MA所以,不允许出现以所以,不允许出现以0打头的奇数集合打头的奇数集合文法文法GN为:为:课本例题课本例题 GN=(VT,VN,N,):VT =0,1,9 :N A|MA M B|MD B 1|2|3|4|5|6|7|8|9 A 1|3|5|7|9 D 0|B VN =N,A,M,B,D S=N3.1 3.1 文法和语言文法和语言u3.1.1 文法和语言的基本文法和语言的基本概念概念3、文法产生的语言、文法产生的语言设文法设文法GS=(VT,VN,S,),且,且、(VTVN)*,如果存,如果存在产生式在产生式A(VTVN)*),则称,则称A可直
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 语法 文法 语言
限制150内