形式语言概论.pptx
《形式语言概论.pptx》由会员分享,可在线阅读,更多相关《形式语言概论.pptx(42页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第二章 形式语言概论本章主要介绍形式语言理论中的一些最基本的概念和基础知识,它是学习以后各章节的基础。大多数程序设计语言的单词和语句是由正规文法和上下文无关文法来描述的。有穷自动机是词法分析的理论基础。第1页/共42页2.1 语言成分 一个语言的成分包括字母表(Alphabet),文法(Grammar)以及它的语义。本节将主要讨论字母表和符号串的一些基本概念。第2页/共42页字母表与符号:字母表是元素的非空有穷集合。字母表中的元素称为符号。举例说明。符号串及其运算:符号串的概念 符号串的长度。符号串的连接。符号串集合的乘积。符号串的方幂。符号串集合的方幂。符号串集合的正闭包。符号串集合的自反闭
2、包。第3页/共42页形式语言形式语言是字母表上按某种规则构成的所有串的集合,这些串称为句子或字。对于一个具体的语言,都有语法和语义两个方面,形式语言是指不考虑语言的具体意义。形式语言的表示方法 有穷语言:枚举法 无穷语言:文法 第4页/共42页2.2 产生式文法和语言 文法(Grammar)是对语言结构的定义和描述,换句话说,在形式上用来描述语言语法结构的就是文法。通常是由一组规则构成的。一个程序语言的文法的就是用适当条数的规则把该程序语言全部成分描述出来。第5页/共42页产生式文法 定义2.1 产生式文法定义成一个四元组G=(VN,VT,S,P),VT:非空有限的终结符号集(符号表);VN:
3、非空有限的非终结符号集(变量表);S:开始符号(识别符号),是文法G规定的最终目标;P:产生式(规则)的集合。其中VNVT=,SVN。我们令V=VNVT,则P中产生式的一般形式为 A|AVN 且,V 或 A:=|(本书中统一采用“A|”的表示方法)。第6页/共42页上下文无关文法定义2.2 文法G是一个四元组,G=(VN,VT,P,S),其中,VN、VT分别是非空有限的非终结符号集和终结符号集,VNVT=,P是产生式集,SVN称为文法的识别符号或开始符号。开始符号S必须至少在某个产生式的左部出现一次。第7页/共42页程序设计语言表达式的文法G1=(VN,VT,S,P)VN=E VT=(i,+,
4、*,(,)S=E P=Ei,EE+E,EE*E,E(E)第8页/共42页上下文无关文法定义的语言定义2.3 设文法G=(VN,VT,P,S),A是其中的产生式,若有符号串,(VNVT)*,使得 U=A,w=则称w为U应用产生式A所得到的直接推导(Direct Deriavtion),也称w可直接归约到U,记为 Uw ,即 A特别的,当=时,有 A 即每个产生式的右部都是它左部的直接推导,符号“”仅指“推导一步”的意思。举例说明.第9页/共42页上下文无关文法定义的语言定义2.4 如果存在一个直接推导的序列 v=012n=w (n0)则称符号串w为符号串u的一个推导,或称“w可归约到v”记为 推
5、导举例.第10页/共42页2.3 文法的分类文法分类乔姆斯基根据产生式的形式把文法分为4类:0型文法(短语文法、无限制文法)1型文法(上下文有关文法)2型文法(上下文无关文法)3型文法(左、右线性文法和正规文法)第11页/共42页0 0型文法 产生式具有以下形式:其中,(VNVT)+,(VNVT)*第12页/共42页1 1型文法(上下文有关文法)1型文法G的产生式具有以下形式:要求:1其 中=1A2;=12;1,2(VNVT)*;AVN;(VNVT)+。例 1型文法G6=(VN,VT,P,S)其中,VN=S,X,Y,Z VT=(x,y,z)P=SxSYZxYZ,xYxy,yYyy,yZyz Z
6、YYZ,zZzz 第13页/共42页2 2型文法(上下文无关文法)在1型文法的产生式中上下文1和2用空符号串代替,则有以下形式的产生式称为2型文法:A其中,AVN,(VNVT)+。例 2型文法G3=(VN,VT,P,E)其中,VN=E,T,F VT=+,*,(,),i P=EE+TT,TTFF,F(E)i 第14页/共42页3 3型文法(右线性文法和正规文法)如果P中的产生式只含有下面的两种形式:A A B 则称该文法为右线性文法,其中,A,BVN,VT*。例 右线性文法 G4=(VN,VT,P,S)其中,VN=S,A,B VT=0,1 P=S011A0B,A1A0B,B010B 第15页/共
7、42页3 3型文法(右线性文法和正规文法)在正规文法中,P中的每个产生式(S例外,S为文法的开始符号)只有两种形式:Aa,AaB 。其中 A,BVN,aVT。此外,如果S是P中的一个产生式,那么S不能出现在任何产生式的右边。例 正规文法G5(S)(十进制实数)SdB|+A|-A|GAdB|GBdB|H|dGdHHdH|d 其中d代表十进制数字。第16页/共42页文法分类的意义(1)0型文法:0型语言(递归可枚举语言)使用图灵机来识别1型文法:1型语言(上下文有关语言)使用空间线性界限自动机来识别2型文法:2型语言(上下文无关语言)使用下推自动机来识别3型文法:3型语言(正规语言、正则语言)使用
8、有穷自动机来识别第17页/共42页文法分类的意义(2)程序设计语言的词法规则(单词)属于正规文法,使用有穷自动机来识别。程序设计语言的语法和语义描述属于上下文无关文法和上下文有关文法范畴,为降低语法分析的难度,大部分语法规则使用上下文无关文法来描述,使用下推自动机来识别。第18页/共42页2.4 语言和语法句型、句子和语言(1)定义2.6 设S是文法G的识别符号,如果 ,则称符号串u为文法G的句型。举例说明。第19页/共42页句型、句子和语言(2)定义2.7 设S是文法G的识别符号,若 ,uVT*,则称符号串u为文法G的子。定义2.8 设S是文法G的识别符号,文法G的语言L(G)=u|且u V
9、T*,即文法的语言是文法的所有句子构成的集合。第20页/共42页文法和语言综述(1)给定一个文法,就能从结构上唯一地确定其语言,即GL(G)给定一种语言,能确定其文法,但这种文法不是唯一的。例如:标识符文法:G1I IL|IL|ID La|b|c|x|y|z|A|B|C|X|YZ D0|1|2|3|9G2I:右线性文法:I aB|a B aB|dB|a|d G3I:左线性文法:I a|Ia|Id a代表字母、d 代表数字第21页/共42页文法和语言综述(2)给定文法,如何确定该文法的语言?从已知文法确定语言的中心思想是:从文法的开始符号出发,反复连续地使用规则,对非终结符施行替换和展开,找出句
10、子的规律,用式子或自然语言描述出来。举例说明。第22页/共42页文法和语言综述(3)给定语言,如何构造其文法?例:设字母表=a,b,试设计一个文法,使其描述的语言为 L=a2n,b2n|n1 G=(VN,VT,P,S)其中VN=A,B,D,VT=a,bP=Aaa|aaB|bb|bbD Baa|aaB Dbb|bbD S=A第23页/共42页例:设字母表=a,b,试设计一个文法,使其描述的语言L=abna|n0。第24页/共42页语法树(1)在自然语言中,可通过树型表示直观地分析句子结构;在形式语言中,则是通过语法树直观地分析文法的句型结构。句子结构第25页/共42页语法树 设文法G=(VN,V
11、T,P,S),对于文法G的任意一个句型都存在一个相应的语法树:树的根结点标记是文法的识别符号S;每个结点上的标记都是文法字汇表中的符号;若一棵子树的标记为A,且所有直接后结点从左向右排列的顺序为B1,B2,Bn,则(AB1B2Bn)P;如果T1是根结点的唯一子树,且标记为,则一定有S 在P中;若树的所有末端结点上的标记从左向右排列为字符串w,则w是G的句型,若w仅含终结符号,则w是G所产生的句子.(举例)第26页/共42页语法树的生成过程 也称为推导树,是对句子或句型推导过程的图形表示法。从文法的开始符号出发,每推导一步,语法树向下伸展一层。从文法的开始符号出发,每推导一步,语法树向下伸展一层
12、。【例1】设有文法GE:EE+TE-TT TT*FT/FF F(E)i 给出句型(T+i2)*i1-F的语法树第27页/共42页2.5 文法和语言的一些特性 无用非终结符号 如果文法的某个非终结符不出现在文法的任何一个句型中,并且不能从它推导出终结符号串,则称该非终结符为无用非终结符号。(P30-例2.13)不可达文法符号 如果一个非终结符(非识别符号)不出现在文法的任何一条产生式的右部,则称该非终结符为不可达文法符号。文法中的任意非终结符A应满足如下两个条件:(1)A必须在文法的某个句型中出现。(2)必须能从A推导出终结符号串。第28页/共42页可空非终结符2型文法的产生式要求以下形式:A其
13、中,AVN,(VNVT)+。对2型文法可进行扩充,令(VNVT)*,允许有以下形式的产生式:A此产生式称为空产生式,A称为可空非终结符。第29页/共42页最左、最右推导和规范推导(1 1)定义2.9 在xUyxuy直接推导中,若xVT*,UVN 即U是符号串xUy中最左非终结符,则称此直接推导为最左直接推导。若一个推导的每一步直接推导都是最左直接推导,那么此推导称为最左推导。定义2.10 在xUy:=xuy直接推导中,yVT*,UVN,即U是符号串xUy中最右非终结符,则称此直接推导为最右直接推导。若一个推导的每一步直接推导都是最右直接推导,则称此推导为最右推导。最右直接推导又称为规范直接推导
14、,最右推导又称为规范推导。第30页/共42页最左、最右推导和规范推导(2 2)定义 2.11 假定x1x2xn是一个最左推导,我们称序列Xn,Xn-1,X1 是一个最右归约。定义 2.12 假定x1x2xn是一个最右推导,我们称序列Xn,Xn-1,X1 是一个最 左归约。最左推导的逆过程是最右归约,最右推导的逆过程是最左归约。第31页/共42页二义性(1 1)定义2.13 一个文法,如果它的一个句子有两棵或两棵以上的语法树,则称此句子具有二义性。如果一个文法含有二义性的句子,则该文法具有二义性。例如:表达式的文法。二义性的文法将给编译程序的执行带来问题。对于二义性文法的句子,当编译程序对它的结
15、构进行语法分析时,就会产生两种甚至更多种不同的解释。由于语法结构上的不确定性,将必然会导致语义处理上的不确定性。对于二义性的文法我们可以利用文法的等价性来消除文法的二义性,以利于语法分析的进行。第32页/共42页二义性(2 2)例:定义某种程序设计语言语句的文法,证明是否有二义性并消除之。Sif b Sif b S else SA(其他语句)分析 该文法的句子 if b if b A else A 对应两棵不同的语法树。改写文法:(1)不改变现有的规则,加进一项语法规定。else与前面最近的不带 else的 if相对应。(2)改写文法G 为G:SS1S2 S1if b S1 else S2A
16、S2if b Sif b S1 else S2 规定if 和else之间只能是if-else语句或其他语句。第33页/共42页二义性(3 3)文法的二义性和语言的二义性是两个不同的概念。文法的二义性不能用算法来判定。第34页/共42页2.6 分析方法简介一个分析器或分析自动机是这样一种系统,它能够根据给定的文法G,构造语言L(G)的任意推导。分析也可看作是语法树的构造过程。分析的方法很多,可归纳为两类,一类是自上而下分析方法,另一类是自下而上分析方法。第35页/共42页自上而下分析方法 自上而下分析方法的基本思想是从文法的开始符号出发,利用其中的产生式,逐步推导出待分析的符号串。如果能推导出这
17、个符号串,则表明此符号串是该文法的一个句型或句子,否则便不是。第36页/共42页确定的自上而下分析方法(1 1)当文法的某一个非终结符有几条产生式、而且每条产生式右部首符号都是终结符时,应保证它们是互不相同的终结符。例 设文法G18S:SaBcbCd BeBf CdCc试检查符号串aefc是不是该文法的句子。第37页/共42页确定的自上而下分析方法(2 2)上例推导过程:SaBc,SaBc;BeB,SaBcaeBc;Bf,SaBcaeBcaefc;该例属确定的自上而下分析方法。第38页/共42页自下而上分析方法 自下而上分析方法的基本思想是从待检查的符号串出发,看最终是否能归约(推导的逆过程)
18、到文法的识别符号。如果能归约到文法的识别符号,则表明此待检查的符号串是该文法的一个句型或句子,否则便不是。第39页/共42页文法在内存中的表示 用语法图的表格结构表示文法。一个文法的语法图由该文法所有非终结符号的定义图组成。每个非终结符号的定义图是一个结构型数据。在自上而下分析方法中,用这种语法图表示文法有利于消除左递归,也有助于提取左因子。第40页/共42页aI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z
19、-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQeNbK8G5D1A-aI7F4C0z)v&s!pXmUjRfOcK9H6E2B+y(u%rZoWlThQeNbJ8G4D1A-w
20、*t$qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1z-w*t!qYnVjSgOdLaI6F3C0y)v%s#pXlUiRfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#oXlUiQfNcK8H5D2A+x*u$rZnWkShPeMaJ7G4C1z)w&t!pYmVjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8H5D2A-x*u$qZnWkShPdMaJ7F4C1z)w&s!pYmUjRgOcL9H6E3B+y(v%r#oWlTiQ
21、eNbK8G5D1A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVjSgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0
22、y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkSgPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlThQeNbJ8G5D1A-w*t$qYnVkSgPdLaI7F3C0z)v&s#pXmUiRfOcK9H5E2B+x(u%rZoWkThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI6F3C0y)v&s#pXlUiRfNcK9H5E2A+x(u$rZoWkThPeMbJ7G4D1z-w&t!qYmVj
23、SgOdL9I6F3B0y)v%s#pXlUiQfNcK8H5E2A+x*u$rZnWkThPeMaJ7G4C1z-w&t!pYmVjRgOdL9I6E3B0y(v%s#oXlTiQfNbK8H5D2A-x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B+y(v%r#oXlTiQeNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oWlTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D
24、1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6E3B0y(v%r#oXlTiQfNbK8G5D2A-x*t$qZnVkShPdMaI7F4C0z)w&s!pXmUjRfOcL9H6E2B+y(u%r#oW
25、lTiQeNbJ8G5D1A-x*t$qYnVkSgPdMaI7F3C0z)v&s!pXmUiRfOcK9H6E2B+x(u%rZoWlThQeMbJ8G4D1A-w*t!qYnVjSgPdLaI7F3C0y)v&s#pXmUiRfNcK9H5E2B+x(u$rZoWkThQeMbJ7G4D1z-w*t!qYmVjSgOdLaI6F3B0y)v%s#pXlUiQfNcK8H5E2A+x(u$rZnWkThPeMbJ7G4C1z-w&t!qYmVjRgOdL9I6F3B0y(v%s#oXlUiQfNbK8H5D2A+x*u$qZnWkShPeMaJ7F4C1z)w&t!pYmUjRgOcL9I6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言 概论
限制150内