ch3 文法和语言.ppt
《ch3 文法和语言.ppt》由会员分享,可在线阅读,更多相关《ch3 文法和语言.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1文法和语言的形式定义文法和语言的形式定义文法的类型文法的类型上下文无关文法及其语法树上下文无关文法及其语法树上下文无关文法上下文无关文法的句型分析的句型分析有关文法实用中的一些说明有关文法实用中的一些说明第三章第三章文法和语言文法和语言语言的词法和语法描述工具,用有穷规则语言的词法和语法描述工具,用有穷规则描述语言的无穷句子。描述语言的无穷句子。3.1 文法的直观概念文法的直观概念z采用巴克斯范式BNF,规则的集合来描述z元符号:=,|,|,z例子例子p32p32 :=:=2v高级语言都是由句子(程序)的集合组成v语言是字母表上定义的,按照一定规则构成的字母表上基本符号串(源程序)的集合。v
2、字母表:是某语言基本符号的集合,如if是字母表中的一个元素,保留关键字、标示符、运算符、字母、数字和一些专用符号,如/*,;等。描述单词和语法的字母表不同。v符号串:字母表中符号组成的任何有穷序列。如字母表=0,1上的符号串0011003.2 符号和符号串符号和符号串z符号串的头尾符号串的头尾 z=xy是符号串,x是z的头,y是z的尾。x非空,y是固有尾;y非空,x是固有头固有头 例子z=abc,头,a,ab,abc z符号串的方幂符号串的方幂 x是符号串,将自身链接n次的符号串z=xxx=xn,设x=ab,则x0=,x1=ab,x2=abab,xn=xn-1xz符号串的集合符号串的集合 若集
3、合A中所有元素都是某字母表上字符串。z符号串集合的乘积符号串集合的乘积-笛卡尔乘积笛卡尔乘积4z符号串集合的乘积符号串集合的乘积-笛卡尔乘积笛卡尔乘积 集合集合A和和B的乘积的乘积AB=xy|x A,y B A=a,b,B=c,d,AB=ac,ad,bc,bd,A=A=Az字母表集合的闭包字母表集合的闭包*定义在字母表定义在字母表上的所有有穷长字符串的集合。*=0 1 2 n=0+正闭包+=1 2 n=*例子:例子:=0,1,*=,0,1,00,01,10,11,000,无穷 +=0,1,00,01,10,11,000,563.3文法和语言的形式定义文法和语言的形式定义如何来描述一种语言?如何
4、来描述一种语言?如果语言是有穷的(只含有有穷多个句子),可以如果语言是有穷的(只含有有穷多个句子),可以将句子逐一列出来表示将句子逐一列出来表示.如果语言是无穷的,找出语言的有穷表示。语言的如果语言是无穷的,找出语言的有穷表示。语言的有穷表示有两个途经:有穷表示有两个途经:生成方式生成方式(文法文法):语言中的每个句子可以用严格:语言中的每个句子可以用严格定定义的规则来构造。义的规则来构造。识别方式识别方式(自动机自动机):用一个过程,当输入的一任意:用一个过程,当输入的一任意串属于语言时,该过程经有限次计算后就会停止并串属于语言时,该过程经有限次计算后就会停止并回答回答“是是”,若不属于,要
5、么能停止并回答,若不属于,要么能停止并回答“不是不是”,要么永远继续下去。,要么永远继续下去。(自动机与文法等价自动机与文法等价)7语言中的每个句子可以用严格定义的规则语言中的每个句子可以用严格定义的规则来构造。来构造。z规则:规则:也称重写规则重写规则、产生式产生式或生成式生成式,是形如或=的(,)有序对,其中是字母表V的正闭包V+中的一个符号,是V*中的一个符号。称为规则的左部,称作规则的右部。z文法的定义文法的定义z推导的概念推导的概念z句型、句子和语言的定义句型、句子和语言的定义8文法定义文法定义文法G定义为四元组(VN,VT,P,S)其中VN:非终结符号(或语法实体,或变量)集;VT
6、:终结符号集;P:规则的集合;VN,VT和P是 非空有穷集。S:称作识别符号或开始符号的一个非终结符,它至少要在一条产生式中作为左部出现。VN和VT不含公共的元素,即VN VT=用V表示VN VT,称为文法G的字母表或字汇表9文法的定义文法的定义例例 文法文法G=(VN,VT,P,S)VN=S,VT=0,1 P=S0S1,S01 S为开始符号为开始符号例例 文法文法G=(VN,VT,P,S)VN=标识符,字母,数字标识符,字母,数字VT=a,b,c,x,y,z,0,1,9P=a zz 00 99 S=11 文法的写法文法的写法 元元符号:,=,|,=,|,习惯习惯 大写字母表示非终结符大写字母
7、表示非终结符 小写字母表示终结符小写字母表示终结符(1)(1)GS:GS:SaA SaAb Aab Aab AaA AaAb A A (2)GS:(2)GS:Aab|aA Aab|aAb|SaASaAb描述文法的规则成为巴克斯范式描述文法的规则成为巴克斯范式BNFBNF。也可以用。也可以用语法图来表示。模仿第语法图来表示。模仿第2 2章章p13-15p13-15写出上例的语写出上例的语法图法图.12推导的定义推导的定义直接推导直接推导“”是文法是文法G G的产生式,若有的产生式,若有v,wv,w满足:满足:v=,w=,v=,w=,其中其中VV*,V,V*则称则称v v直接直接推导推导到到w,w
8、,记作记作 v v w w 也称也称w w直接直接归约归约到到v v例:例:G G:S0S1,S01 0S100S1100S11000S111000S11100001111 S 0S113推导推导.(.).()VAR;BEGINREAD()END.VARA;BEGINREAD()END.(A)VARA;BEGINREAD()END.VARA;BEGINREAD(A)END.(A)14推导的定义推导的定义若存在若存在v=w0w1.wn=w,(n0)则记为则记为v=+w,称作,称作v推导出推导出w,或,或w归约归约到到v若有若有v=+w或或v=w,则记为则记为v=*w15例:例:G G:S0S1,
9、S010S100S1100S11000S111000S11100001111 S 0S100S11000S11100001111 S=+00001111 00S11=*00S1116句型、句子的定义句型、句子的定义z句型句型有文法有文法GS,若,若S=*x,则称,则称x是文法是文法G的句型。的句型。z句子句子有文法有文法GS,若,若S=*x,且,且xVVT T*,则称,则称x是文法是文法G的句子。的句子。例:例:GSGS:S0S1,S01S 0S1 00S11 000S111 00001111G的句型S,0S1,00S11,000S111,00001111G的句子00001111,0117句型
10、、句子句型、句子例:例:GE E:EE+T|TEE+T|T TT*F|F TT*F|F F(E)|a F(E)|aE EE+TT+TF+Ta+Ta+T*Fa+F*Fa+a*Fa+a*a句子:用符号句子:用符号a,+,*,(和和)构成的算术表达式构成的算术表达式18(文法生成的文法生成的)语言的定义语言的定义由文法由文法G生成的语言记为生成的语言记为L(G),它是文法它是文法G的的一切句子的集合一切句子的集合:L(G)=x|S=*x,其中,其中S为文法的开始为文法的开始符号,且符号,且x VVT T*例:例:G G:S0S1,S01 L(G)=0n1n|n1例例 文法文法GS:(1)SaSBE(
11、2)SaBE(3)EBBE(4)aBab(5)bBbb(6)bEbe(7)eEeeL(G)=anbnen|n1 G生成的每个串都在生成的每个串都在L(G)中中L(G)中的每个串确实能被中的每个串确实能被G生成生成20文法的等价文法的等价z若若L(G1)=L(G2),则称文法),则称文法G1和和G2是是等价的。等价的。如文法如文法G G1AA:ADB ADB 与与G G2SS:S0S1 S0S1 等价等价 ADE S01 ADE S01 EAB EAB D0 D0 B1 B1213.4文法的类型文法的类型 通过对产生式施加不同的限制通过对产生式施加不同的限制,Chomsky将文法分为将文法分为四
12、种类型四种类型:0型文法:对任一产生式型文法:对任一产生式,都有,都有(V(VN NVVT T)+,(V(VN NVVT T)*1 1型文法:型文法:对任一产生式对任一产生式,都有,都有|,仅仅仅仅 SS除外除外2 2型文法:型文法:对任一产生式对任一产生式,都有,都有VVN N 3 3型文法:型文法:任一产生式任一产生式的形式都为的形式都为AaBAaB或或AaAa,其中,其中AVAVN N ,BVBVN N ,aVaVT T*22文法的类型文法的类型例:例:1 1型(上下文有关)文法型(上下文有关)文法 文法文法GSGS:SCDSCDAbbAAbbA CaCA CaCABaaBBaaB Cb
13、CB CbCBBbbBBbbBADaDADaD Ca CaBDbDBDbD Db DbAabDAabD23文法的类型文法的类型例:例:2 2型(上下文无关)文法型(上下文无关)文法 文法文法GS:SABABABS|0BS|0BSA|1SA|1243 3型文法型文法GS:S0A|1B|00A|1B|0A0A|1B|0S0A|1B|0SB1B|1|01B|1|0GI:I lT lTI l lT lT lTT dT dTT l lT d d25文法的类型文法的类型2型文法型文法1型文法型文法0型文法型文法四类四类文法文法之间之间的的逐级逐级“包含包含”关系关系3型文法型文法26文法和语言文法和语言0
14、型文法产生的语言称为型文法产生的语言称为0型语言型语言1 1型文法或上下文有关文法(型文法或上下文有关文法(CSG )产生的语言产生的语言称为称为1 1型语言型语言或上下文有关或上下文有关语言(语言(CSL)2 2型文法或上下文无关文法(型文法或上下文无关文法(CFG )产生的语言产生的语言称为称为2型语言型语言或上下文无关或上下文无关语言(语言(CF L)3 3型文法或正则(正规)文法(型文法或正则(正规)文法(RG)产生的语言产生的语言称为称为3型语言型语言正则(正规)正则(正规)语言(语言(RL)27文法和语言文法和语言 四种文法之间的关系四种文法之间的关系 是将产生式做进一步是将产生式
15、做进一步限制而定义的。限制而定义的。语言之间的关系依次:有不是上下文有关语言之间的关系依次:有不是上下文有关语言的语言的0型语言,有不是上下文无关语言的型语言,有不是上下文无关语言的1型语言,有不是正则语言的上下文无关语型语言,有不是正则语言的上下文无关语言。言。28根据形式语言理论根据形式语言理论,文法和识别系文法和识别系统间有这样的关系统间有这样的关系 0型文法(短语结构文法)的能力相当于图型文法(短语结构文法)的能力相当于图灵机,可以表征任何递归可枚举集,而且灵机,可以表征任何递归可枚举集,而且任何任何0型语言都是递归可枚举的型语言都是递归可枚举的 1型文法(上下文有关文法):产生式的形
16、型文法(上下文有关文法):产生式的形式为式为1 1AA2 21 12 2,即只有,即只有A A出现在出现在1 1和和2 2的上下文中时,才允许的上下文中时,才允许取代取代A A。其识。其识别系统是线性界限自动机。别系统是线性界限自动机。29 2型文法(上下文无关文法型文法(上下文无关文法CFG):):产生式产生式的形式为的形式为AA,取代取代A A时与时与A A的上下文无关。其的上下文无关。其识别系统是不确定的下推自动机。识别系统是不确定的下推自动机。描述语法的构成。描述语法的构成。3型文法(正规文法型文法(正规文法RG):):文法文法G=(VN,VT,P,S),其中P中的产生式的形式为产生式
17、的形式为AA B B或或者者AA,其中,其中A A和和B B是非终结符号,是非终结符号,V VT T*。产生的语言是有穷自动机(产生的语言是有穷自动机(FA)所接受的集合。)所接受的集合。复习复习z规则、文法、推导、句型、句子、语言规则、文法、推导、句型、句子、语言z文法的等价性文法的等价性z文法分类文法分类z有用文法是上下文无关文法和正规文法有用文法是上下文无关文法和正规文法3031 3型型(正规正规)文法产生的语言是有穷自动机文法产生的语言是有穷自动机(FA)所接受所接受的字符串的字符串(句子句子)集合集合.单词都是用单词都是用3型文法定义。型文法定义。定理定理 设设G=(VN,VT,P,
18、S)是3 3型文法,则存在一个非确定型文法,则存在一个非确定有穷自动机有穷自动机 M=(K,f,A,Z)M=(K,f,A,Z),使得,使得L(M)=L(G)L(M)=L(G)非确定有穷自动机非确定有穷自动机NFA MNFA M五元组构造如下:五元组构造如下:=VT K=K=VN N,NN,N为新状态为新状态,它不在它不在VN中 A=S A=S Z=N Z=N 对对G G中的形如中的形如 DtBDtB的产生式的产生式,t,t为终结符或为终结符或,有有f(D,t)=Bf(D,t)=B;对对G G中形如中形如DtDt的产生式,的产生式,t t为终结符或为终结符或,有有f(D,t)=N;f(D,t)=
19、N;对对VT中的每一个a,有有f(N,a)=f(N,a)=有穷有穷自动机自动机(FA)是描述是描述3型文法的数学工具型文法的数学工具323型文法型文法 和 有穷自动机(有穷自动机(FA)G:SaA|bB AbB|aD|a BaA|bD|b DaD|bD|a|bBASaaabbba,bDZabab333型文法型文法 和 有穷自动机(有穷自动机(FA)定理定理 已知一有穷自动机NFA M=(K,f,A,Z),存在有一个3型文法G=(VN,VT,P,S),使得L(G)=L(M)G 的定义:VT=VN=K S=A 若 f(D,t)=B,则DtB在P中 若 f(D,t)=B,且B在Z中,则Dt在P中34
20、3型文法型文法 和 有穷自动机(有穷自动机(FA)G:SaA|bB AbB|aD|a BaA|bD|b DaD|bD|a|bDBASaaabba,bb正规式(定义见教科书正规式(定义见教科书p52)3536正规文法和正规式(定义见教科书正规式(定义见教科书p52)对上的正规式r,存在一个文法G=(VN,VT,P,S):L(G)=L(r)初始,VT=,S VN,生成正规产生式 Sr (R.1)对形如 Ar1r2的正规产生式:Ar1B Br2 BVN (R.2)对形如Arr1的正规产生式:ArB Ar1 BrB Br1 BVN (R.3)对形如Ar1r2的正规产生式:Ar1 A r2 不断应用(R
21、.x)做变换,直到每个产生式右端至多有一个VN37例 r=a(ad)(1)Sa(ad)(2)SaA A(ad)(3)A(ad)B A B(ad)B B Gs:SaA A VT=a,d AaBVN=S,A,B AdB BaB BdB B38正规文法和正规式正规式 对正规文法G=(VN,VT,P,S),存在一个=VT上的正规式r:L(r)=L(G)AxB,By 形成正规式 A=xy AxAy 形成正规式 A=xy Axy 形成正规式 A=xy39正规文法和正规式Gs:SaA|a AaAadAd A(ad)A(ad)A(ad)(ad)S=a(ad)(ad)a=a(ad)(ad)=a(ad)R=a(a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch3 文法和语言 文法 语言
限制150内