前后文无关文法和语言讲稿.ppt
《前后文无关文法和语言讲稿.ppt》由会员分享,可在线阅读,更多相关《前后文无关文法和语言讲稿.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、前后文无关文法和语言第一页,讲稿共五十二页哦2.1 文法及语言的表示文法及语言的表示u首先,我们确定一个概念:什么是语言?首先,我们确定一个概念:什么是语言?u据统计,目前在世界各地,人们所使用的语言达据统计,目前在世界各地,人们所使用的语言达27002700多种。多种。uWebsterWebster的定义:的定义:“为相当大地区的公众所懂得并使用的为相当大地区的公众所懂得并使用的话话,以及组成这些,以及组成这些话话的方法的统一体的方法的统一体”u上述定义对于建立语言的数学理论的目的而言不够精确。上述定义对于建立语言的数学理论的目的而言不够精确。u所以,有人又将语言定义为:所以,有人又将语言定
2、义为:“某一字母表上符号串(句子)某一字母表上符号串(句子)的集合的集合”u此定义仍需精确化。因为:此定义仍需精确化。因为:1 1)还应为所定义的句子)还应为所定义的句子提供一种结构性的描述(提供一种结构性的描述(语法规则语法规则);2 2)最好能再提供一种手段,以便)最好能再提供一种手段,以便能准确地判别什么是该语言中的正能准确地判别什么是该语言中的正确句子(确句子(即识别方法、分析方法等即识别方法、分析方法等)。第二页,讲稿共五十二页哦2.2 文法和语言的定义文法和语言的定义2.2.1 2.2.1 基本概念和术语基本概念和术语1。字母表(符号表、符号集)字母表(符号表、符号集)由若干元素(
3、符号、字母)组成的有限非空集合。由若干元素(符号、字母)组成的有限非空集合。例:=a,b,c2。符号串符号串 用字母表中符号所组成的任何有限序列。用字母表中符号所组成的任何有限序列。例:a,aa,ac,abc,.符号串的长度符号串的长度 =符号串中所含符号的个数符号串中所含符号的个数例:例:aba的长度为的长度为3。记为:。记为:|aba|=3空串空串 不含任何符号的符号串,记为不含任何符号的符号串,记为 。显然,。显然,|=0。本课约定本课约定 用用A、B、C、等表示字母表或符号串集;用等表示字母表或符号串集;用a,b,c,S,T,U 等表示符号;等表示符号;用用s,t,u,x,y,z,等表
4、示符号串。等表示符号串。任何程序语言都有自己的字母表。1.计算机语言:由符号“0”和“1”组成的字母表:=0,1 2.Pascal语言字母表:=AZ,az,09,+,-,*,/,:,”,;,.,,(,),3.C语言字母表:=AZ,az,09,+,-,*,/,_,&,:,”,;,.,?,(,),空格,!,#,%第三页,讲稿共五十二页哦2.2.1 基本概念和术语(续)3.符号串的前(后)缀及子串符号串的前(后)缀及子串 设设,,x是符号串,若是符号串,若x=,则称则称 是是x的的子串子串;特别地,当;特别地,当=(=)时,称)时,称 是是x的的前(后)缀前(后)缀。(符号串s=banana)前 缀
5、:,b,ba,ban,bana,banan,banana后 缀:banana,anana,nana,ana,na,a,子 串:banana,anana,banan,anan,4.符号串相等符号串相等:若x、y是集合上的两个符号串,则xy iff(当且仅当)组成x的每一个符号和组成y的每一个每一个符号依次相等。第四页,讲稿共五十二页哦6.符号串集合的乘积运算符号串集合的乘积运算:令A、B为符号串集合,定义AB xy|xA,yB例:Aa,b,B=c,d,AB=?ac,ad,bc,bd 因为xxx,所以A=A=A5.符号串的联接符号串的联接:若x、y是定义在是上的符号串,且xXY,yYX,则x和y的
6、联接 xyXYYX也是上的符号串。注意:一般xyyx,而xx2.2.1 基本概念和术语(续)第五页,讲稿共五十二页哦8.8.符号串集合的闭包运算符号串集合的闭包运算:设A是符号串集合,定义 A A1 A2 A3 An 称为集合A的正闭包。A*A0 A称为集合A的闭包。例:A=x,y A?A*?7.符号串集合的幂运算符号串集合的幂运算:有符号串集合A,定义A0=,A1=A,A2=AA,A3=AAA,AnAn-1A=AAn-1 ,n0 x,y,xx,xy,yx,yy,xxx,xxy,xyx,xyy,A1 A2 A3,x,y,xx,xy,yx,yy,xxx,xxy,xyx,xyy,A0 A1 A2
7、A32.2.1 基本概念和术语(续)第六页,讲稿共五十二页哦 为什么对符号、符号串、符号串集合以及它们的为什么对符号、符号串、符号串集合以及它们的运算感兴趣?运算感兴趣?若若A为某语言的基本字符集为某语言的基本字符集 Aa,b,z,0,1,9,+,_/,(,),=B为单词集为单词集 B=begin,end,if,then,else,for,则则B A*。语言的句子是定义在语言的句子是定义在B上的符号串。上的符号串。若令若令C为句子集合,则为句子集合,则C B*,程序程序 C形式语言:是一个字母表上按照某种规则构成的所有的串的集合,它用文法和自动机所描述的没有语义的语言。(形式语言是数学范畴)第
8、七页,讲稿共五十二页哦2.2.2 文法和语言的形式定义u我们从我们从“产生语言产生语言”的角度出发的角度出发,讨论文法和语言的形式定义。讨论文法和语言的形式定义。u产生语言产生语言指制定出有限条规指制定出有限条规则,借助它们就能产生出些语言则,借助它们就能产生出些语言的句子。的句子。u我们以几个英语句子构成的语言为例我们以几个英语句子构成的语言为例进行讨论。并设每个句子都是进行讨论。并设每个句子都是“主主-谓谓-宾宾”结构。结构。u语法规则见右。其中,每个用语法规则见右。其中,每个用括起来的部分是所要定义括起来的部分是所要定义语言中的一个语言中的一个语法实体(称为语法实体(称为语法单位、语法结
9、构、语法范畴、语法单位、语法结构、语法范畴、语法变量等语法变量等)。)。“:=”是用于定是用于定义语法结构的符号,其含义(并读义语法结构的符号,其含义(并读作)作)“定义为定义为”.语法规则也称为语法规则也称为产生式产生式(Production):=:=the:=:=:=monkey:=banana:=eat:=has:=the:=a第八页,讲稿共五十二页哦2.2.2 文法和语言的形式定义u现在,我们讨论如何用上述规则现在,我们讨论如何用上述规则推导推导出相应语言的全部出相应语言的全部句子句子。u推导推导 从语言最大的一个从语言最大的一个语法范畴语法范畴(本例中是(本例中是 )开)开始,反复用
10、语法规则中始,反复用语法规则中“:=:=”右侧的符号串取代其左侧符号,右侧的符号串取代其左侧符号,直到所得的符号串中不再含有可被替换直到所得的符号串中不再含有可被替换语法范畴语法范畴。每次替换称为一。每次替换称为一步(直接)步(直接)推导推导,并用符号,并用符号“”表示。例如,表示。例如,u我们首先用规则我们首先用规则进行第一步推导进行第一步推导(derivationderivation),就可得到,就可得到 ,记为记为 u所得的符号串所得的符号串 含有两个含有两个语法范畴语法范畴,可对其中,可对其中任一个(例如对任一个(例如对 )进行新的)进行新的推导推导(替换):(替换):u u重复上述过
11、程,可得到一个推导序列(见下页)。重复上述过程,可得到一个推导序列(见下页)。第九页,讲稿共五十二页哦用语法规则进行推导所得的推导序列推导步骤推导步骤 所用规则所用规则所得的符号串所得的符号串 1 2 3 the 4 the 5 the monkey 6 the monkey eat 7 the monkey eat a 8 the monkey eat a banana第十页,讲稿共五十二页哦2.2.2 文法和语言的形式定义u从前面的推导看,从 出发,经8 8步推导步推导得到了一个英语句子。故前面的推导称为长度为长度为8 8的推导的推导。u若不关心推导的中间过程,可将从一符号串到另一符号串的
12、推导用记号第十一页,讲稿共五十二页哦规则的简化表示规则的简化表示u在前面的语法规则定义中,有些语法范畴(如、)有若干条不同的规则来定义它,为简明起见,我们可以将它们写在同一个左部语法范畴下,将其定义值用符号“|”(读作或或)隔开。如、的定义规则可简记为uu:=monkey|banana:=monkey|bananauu:=eat|has:=eat|hasuu:=the|a:=the|a第十二页,讲稿共五十二页哦语法规则及其产生的语言u前面的语法规则可以产生16个不同的句子,由这16个句子组成的集合,就是该规则所定义(或所产生)的语言。u应指出,所产生的句子中,有些句子的含义是荒谬的(如 the
13、 banana eat a monkey和the banana eat the banana等)。然而,若不考虑语义,则我们就必须承认它们是语法上合法的句子。第十三页,讲稿共五十二页哦 定义1.文法GS=(VN,VT,P,S)VN:非终结符号集 VT:终结符号集 P:产生式或规则的集合 S:开始符号(识别符号)SVNVVN VT称为文法的字汇表规则:U xU VN,xV*非终结符是指在文法的语法范畴,出现在产生式P中,通常用大大写字母或用写字母或用“”括起来的符号串括起来的符号串表示,终结符是指不需要进一步定义的基本符号,通常用小写字母小写字母表示文法的定义文法的定义第十四页,讲稿共五十二页哦
14、P=;0;1;9;E=;例:无符号整数的文法:G=(Vn,Vt,P,E)Vn,Vt =0,1,2,3,9第十五页,讲稿共五十二页哦 我 我我是 我是 我是大学生|你你|我我|他他 王民王民|大学生大学生|工人工人|英语英语 是是|学习学习|推导方法:推导方法:从一个要识别的符号开始推导,即用相应规则的右部来替代规则的左部,每次仅用一条规则去进行推导。第十六页,讲稿共五十二页哦 定义:设文法GS=(VN,VT,P,S),若UuP,x、yV*,则xUyV*若用规则Uu 的右部u替换U,即xuy V*,则称xuy是xUy的直接推导。xUy是xuy的直接规约。记为xUy=xuy(推导)和 xuy xU
15、y(规约)推导的形式定义推导的形式定义=第十七页,讲稿共五十二页哦 1 1 0=当符号串已没有非终结符号时,推导就必须终止。例如:例如:G (1);(2)(3)(4)0;0;(5)1;1;(13)9;9;第十八页,讲稿共五十二页哦 定义3:文法G,U0,U1,U2,,Un V+if v=U0=U1=U2=Unw(n0)则称v推导出w,或w规约到v,或v经+推导出w,或w+规约到v,分别记为:v w 或w v=例:=1 =1 0即 10=定义4:文法G,v,w V+if v w,或v=w,则v w则称v经*推导出w,或w经*规约到v,=*=第十九页,讲稿共五十二页哦 定义6:文法GS (1)句型
16、句型:x是句型 S x,且xV*;(2)句子句子:x是句子 S x,且xVT*;(3)语言语言:L(GS)=x|xVT*,S x;+文法GS所产生的所有句子的集合 形式语言理论可以证明以下两点:(1)G L(G);(2)L(G)G1,G2,Gn;已知文法,求语言,通过推导;已知语言,构造文法,无形式化方法,更多是凭经验。*语言的形式定义语言的形式定义第二十页,讲稿共五十二页哦例:abna|n1,构造其文法 G1S:SaBa,Bb|bB G2S:SaBa,Bb|Bb 定义7.G和G是两个不同的文法,若 L(G)=L(G),则G和G为等价文法。第二十一页,讲稿共五十二页哦1.递归规则递归规则:规则
17、右部有与左部相同的符号 对于 U xUy 若x=,即U Uy,左递归;若y=,即U xU,右递归;2.递归文法递归文法:文法G,存在U Vn if U=U,则G为递归文法;if U=U,则G为左递归文法;if U=U,则G为右递归文法;+2.2.4 文法的递归性文法的递归性第二十二页,讲稿共五十二页哦4.递归文法的优点:可用有穷条规则,定义无穷语言 例:对于前面给出的无符号整数的文法是有递归文法,用13条规则就可以定义出所有的无符号整数。若不用递归文法,那将要用多少条规则呢?!3.左递归文法的缺点:不能用自顶向下的方法来进行语法分析会造成死循环(后面将详细论述)第二十三页,讲稿共五十二页哦2.
18、3 句型的分析句型的分析u句型的分析句型的分析:构造一算法,用以判断所给的符号串是否:构造一算法,用以判断所给的符号串是否为某文法的句型(句子)为某文法的句型(句子)u常见分析方法有常见分析方法有自顶向下分析自顶向下分析和和自底向上分析自底向上分析两类;两类;u自顶向下自顶向下 从开始符出发试图推导出给定的符号串;从开始符出发试图推导出给定的符号串;u自底向上自底向上 推导的逆过程(称归约):从已给的符号串推导的逆过程(称归约):从已给的符号串出发,试图将其归约为开始符。出发,试图将其归约为开始符。第二十四页,讲稿共五十二页哦2.3.1 规范推导和规范归约规范推导和规范归约u对于一文法而言,从
19、开始符到某句型的对于一文法而言,从开始符到某句型的推导过程可能不唯一推导过程可能不唯一。例如,文法。例如,文法GE中从中从 E 到到 i+i*i 的推导有:的推导有:(1)E E+T E+T*F T+T*F T+T*i F+T*i i+T*i i+F*ii+i*i(2)E E+T T+T F+T i+T i+T*F i+F*F i+i*F i+i*F i+i*i(3)E E+T E+T*F E+T*i E+F*i E+i*i T+i*i F+i*i i+i*i(4)第二十五页,讲稿共五十二页哦规范推导u最左(右)推导最左(右)推导:在推导序列的每一步直接推导中,被替换的总是在推导序列的每一步直
20、接推导中,被替换的总是当前句型中最左(右)的非终结符。当前句型中最左(右)的非终结符。u形式上,形式上,从符号串从符号串 到符号串到符号串 的推导序列的推导序列u *xUy xuy*总有总有 x VT*(y VT*)时,时,称为称为最左(右)推导最左(右)推导u定义:最左(右)推导所得句型称为定义:最左(右)推导所得句型称为左(右)句型;左(右)句型;最右推导最右推导称为称为规范推导规范推导;右句型右句型称为称为规范句型规范句型。最左推导:若符号串中有两个以上的非终结符时,先推左边的。最右推导:若符号串中有两个以上的非终结符时,先推右边的。最右推导称为规范推导最右推导称为规范推导第二十六页,讲
21、稿共五十二页哦句子、句型的推导方法u每个每个句子句子都有相应的最左和最右推导,因此,都有相应的最左和最右推导,因此,句子即是句子即是左句型左句型也是也是右句型右句型(规范句型)(规范句型)u并不是每个句型都有最左和最右推导并不是每个句型都有最左和最右推导u例如,例如,E E+E+i*T E+i*T即不是左句型,也不是右句型即不是左句型,也不是右句型u对于给定的符号串对于给定的符号串w,采用,采用自顶向下自顶向下的分析来判断的分析来判断w是否为是否为L(GS)的的句子的常见方法是:句子的常见方法是:试图建立从开始符试图建立从开始符 S到到w最左推导最左推导:S*w u显然,每步推导时,对应于最左
22、非终结符相应的产生式可能会有多个,若无显然,每步推导时,对应于最左非终结符相应的产生式可能会有多个,若无特殊的办法,只能一个一个地试探。因此,推导过程可能是特殊的办法,只能一个一个地试探。因此,推导过程可能是带回溯带回溯的的。u为提高效率,就应尽量避免回溯为提高效率,就应尽量避免回溯第二十七页,讲稿共五十二页哦自底向上的语法分析自底向上的语法分析u就是从已给的符号串就是从已给的符号串w出发,试图以相反的方向为出发,试图以相反的方向为w建立一个规建立一个规范推导,最终得到文法的开始符。范推导,最终得到文法的开始符。u推导的逆过程称作推导的逆过程称作归约归约,它是把当前的符号串,它是把当前的符号串
23、中的构成文法某个中的构成文法某个产生式产生式A右部的子串右部的子串 替换成产生式的左部符号替换成产生式的左部符号A,得到一个新的符,得到一个新的符号串号串 A 。这样的一步动作,称为进行了一步。这样的一步动作,称为进行了一步归约归约。u例如,符号串例如,符号串F+i*i中的中的F可按产生式可按产生式TF归约为归约为T,从而得到新的符,从而得到新的符号串号串T+i*i。u若从给定的符号串若从给定的符号串w出发,一步步地将其归约,最终得到文法的开始符号,出发,一步步地将其归约,最终得到文法的开始符号,则说明则说明w是该文法定义的一个句子。归约成功,否则,归约失败。是该文法定义的一个句子。归约成功,
24、否则,归约失败。u若归约的每一步都归约的是当前符号串中最左边的某产生式的右若归约的每一步都归约的是当前符号串中最左边的某产生式的右部,则称该归约是部,则称该归约是规范归约规范归约(即(即最左归约最左归约)。)。u规范归约是规范推导的逆过程规范归约是规范推导的逆过程。第二十八页,讲稿共五十二页哦符号串i+i*i的归约过程由上表可以看出,归约过程是由上表可以看出,归约过程是最左最左归约,它恰好是归约,它恰好是规范推导规范推导的逆过程的逆过程。这正是把最左归约定义为规范归约的原因。这正是把最左归约定义为规范归约的原因。第二十九页,讲稿共五十二页哦关于归约的一点说明u注意,前面例子中归约的第五步中,当
25、前的符号串为注意,前面例子中归约的第五步中,当前的符号串为 E+T*i,除了可将,除了可将i归归约成约成F外,还可将外,还可将E+T或或T归约成归约成E,分别得到符号串,分别得到符号串E*i和和E+E*i。但。但是,若真按这两个方案进行归约,则当我们把其归约成是,若真按这两个方案进行归约,则当我们把其归约成E*E或或E+E*E时,就再也归约不下去了。这就告诉我们在第五步时,唯一正确的时,就再也归约不下去了。这就告诉我们在第五步时,唯一正确的归约是将归约是将i归约为归约为F,也就是说,也就是说,i是唯一可被归约的最左子串。是唯一可被归约的最左子串。u那么,对于规范归约的每一步,如何确定符号串中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 前后文 无关 文法 语言 讲稿
限制150内