有限自动机理论-2章形式语言.ppt
《有限自动机理论-2章形式语言.ppt》由会员分享,可在线阅读,更多相关《有限自动机理论-2章形式语言.ppt(325页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 形式语言简介形式语言简介 形式语言和自动机理论中的形式语言和自动机理论中的语言语言是是一个宽泛的概念。一个宽泛的概念。一个字母表上的一个字母表上的语言语言就是该就是该字母表字母表的某些的某些字符串字符串的的集合集合。语言中的字符串称为该语言的语言中的字符串称为该语言的句子句子l语言的的定义可以从两个方面进行:语言的的定义可以从两个方面进行:)从)从产生产生语言的角度;语言的角度;)从)从接收接收(或或识别识别)语言的角度。语言的角度。l产生语言产生语言 根据语言中的根据语言中的基本句子基本句子和其他句子的和其他句子的形成规则形成规则,得到,得到(产生产生)该语言所包含的该语言所包
2、含的所有句子所有句子。l 形式语言形式语言所研究的问题。所研究的问题。l接收一个语言接收一个语言 使用某种使用某种自动机模型自动机模型来来接收接收字符串,字符串,该模型所接收的所有字符串,也形成一该模型所接收的所有字符串,也形成一个语言。个语言。l 自动机自动机所研究的问题。所研究的问题。统一的理论 形式语言与自动机作为统一的理论形式语言与自动机作为统一的理论,实际上包括实际上包括3个方面的内容个方面的内容:1)形式语言形式语言理论理论(产生语言产生语言)2)自动机自动机理论理论(接收语言接收语言)3)形式语言与自动机的形式语言与自动机的等价性等价性理论理论l本章介绍本章介绍形式语言形式语言的
3、基本内容。的基本内容。语言的形式定义语言的形式定义l设设 是一个是一个字母表字母表,L L *,L L称为称为字母表字母表 上上的一个的一个语言语言,w w L,wL,w称为语言称为语言L L的一个的一个句子句子。2.1 例子语言例子语言l括号匹配串的语言。括号匹配串的语言。该语言是指所有的左括号和右括号相匹该语言是指所有的左括号和右括号相匹配的串的集合;配的串的集合;(),(),()()等等都是该语言的句子等等都是该语言的句子 )(,()等等不是该语言的句子。等等不是该语言的句子。l如何如何产生产生这个语言呢?这个语言呢?即如何即如何产生产生该语言所有句子呢?该语言所有句子呢?l实际上,就是
4、需要给出语言中句子的实际上,就是需要给出语言中句子的构造(形成)规则构造(形成)规则。l递归方法递归方法提供了语言的良好的定义方提供了语言的良好的定义方式:语言中的句子的构造规律较明显式:语言中的句子的构造规律较明显l可以使用多种方法可以使用多种方法描述描述构造规则。构造规则。l自然语言自然语言的描述方式,采用如下的的描述方式,采用如下的 递归规则:递归规则:()是该语言的最基本的句子;是该语言的最基本的句子;若若S是句子是句子,则则(S)是句子;是句子;若若S是句子是句子,则则SS是句子;是句子;l这些规则称为这些规则称为形成规则形成规则,根据这些,根据这些规则,可以规则,可以 产生该语言的
5、任意的句子;产生该语言的任意的句子;判断某个判断某个串串是否是该语言的句子是否是该语言的句子-语法分析语法分析。例如l可以产生句子可以产生句子()()而推断串而推断串 ()()不是句子。不是句子。l规则规则(的个数的个数)是有限的,但可以产生是有限的,但可以产生无无限个句子限个句子、甚至、甚至长度无限的句子长度无限的句子l因为规则是因为规则是递归递归的。的。BNF的描述方式的描述方式l巴巴科科斯斯和和诺诺尔尔采采用用的的巴巴科科斯斯-诺诺尔尔范范式式(BNF-Backus-NaurForm)描述规则描述规则:l:=()l:=()l:=l使使用用尖尖括括号号“”包包括括起起来来的的部部分分,作为
6、一个整体来看待,表示某个语法成分作为一个整体来看待,表示某个语法成分 需要使用字母表中的字母来定义其构成需要使用字母表中的字母来定义其构成l符符号号“:=”是是BNF本本身身的的符符号号(元元符符号号),代表代表“定义为定义为”或或“是是”。l符号符号“(”和和“)”是字母表的元素。是字母表的元素。lChomsky采采用用的的符符号号化化(形形式式化化)的的描描述述方式,运用规则(称为方式,运用规则(称为产生式产生式):):S()S(S)SSS “”代表代表“定义为定义为”或者或者“是是”,它的左边和右边分别称为该产生式的它的左边和右边分别称为该产生式的左边左边和和右边右边根据产生式 可以生成
7、任意句子;可以生成任意句子;可以判断一个串是否为句子可以判断一个串是否为句子产生句子的过程 从从S开始,可以反复利用产生式的右开始,可以反复利用产生式的右边边代替代替产生式的左边(产生式的左边(推导过程推导过程),),最终可以产生括号匹配的的句子。最终可以产生括号匹配的的句子。例例:句子()()()()()()的推导过程的推导过程 S=S SS S=(=(S S)S)S=()=()S S=()(=()(S S)=()(=()(S SS)S)=()()=()()S S)=()()()=()()()产生式的个数是有限的,规则是递归产生式的个数是有限的,规则是递归的,所有的的,所有的小括号匹配的串小
8、括号匹配的串,都可以由,都可以由产生式产生;产生式产生;它们组成的集合就称为一个语言。它们组成的集合就称为一个语言。lS称为称为非终结符非终结符,在推导过程中,可以被,在推导过程中,可以被代替的符号。代替的符号。l(和和)称为称为终结符终结符,在推导过程中,不可以,在推导过程中,不可以被代替的符号。被代替的符号。l 是产生式系统的是产生式系统的元符号元符号,不属于非终,不属于非终结符,也不属于非终结符。结符,也不属于非终结符。例例2-1:由偶数个:由偶数个0组成的串的语言。组成的串的语言。规则的自然语言描述方式:规则的自然语言描述方式:00是该语言的基本的句子;是该语言的基本的句子;若若S是句
9、子是句子,则则00S是句子。是句子。形式化的描述方式:形式化的描述方式:S00 S00S 问题:问题:将产生式将产生式S00S换成换成S0S0或或SS00或或SSS是否还产生相同的语言?是否还产生相同的语言?结论:结论:一个语言,可以使用不同的产生式组一个语言,可以使用不同的产生式组合来产生。合来产生。考虑由奇数个由奇数个1组成串的语言(产生规则)组成串的语言(产生规则)例2-2 高高级级程程序序设设计计语语言言中中的的算算术术表表达达式式(的的语言语言)的产生。的产生。自然语言的描述方式自然语言的描述方式单个变量是最基本的单个变量是最基本的句子句子;若若E是是一一个个句句子子,则则EAE是是
10、一一个个句句子子(其中(其中A代表运算符代表运算符+、-、*、/)若若E是一个是一个句子句子,则,则(E)是是句子句子;形式语言的描述方式形式语言的描述方式 E i (i代表单个变量)代表单个变量)EEAE E(E)A+A-A*A/思考:思考:字母表为?字母表为?若以若以A开始推导,则产生?开始推导,则产生?其中其中:A+,A-,A*,A/四四个个产产生生式式的左边是相同的符号,可以合并为的左边是相同的符号,可以合并为 A+|-|*|/+、-、*、/称为称为A的的侯选式侯选式。E i EEAE E(E)也可以记为:也可以记为:E i|EAE|(E)注意:注意:这组产生式这组产生式没有表示出运算
11、符的没有表示出运算符的优先级优先级。表示出运算符的优先级的产生式:表示出运算符的优先级的产生式:EE+T|E-T|T TT*F|T/F|F F(E)|il其中:其中:E E代表表达式,代表表达式,T T代表项,代表项,F F代表因子代表因子(E)(E)代表的是带小括号的表达式代表的是带小括号的表达式表示:先因子,再表示:先因子,再*、/,最后,最后+、-如如果果使使用用%代代表表模模运运算算(即即取取余余数数运运算算)、使用使用 代表指数运算,则有代表指数运算,则有 EE+T|E-T|TEE+T|E-T|T TT*F|T/F|T%F|A TT*F|T/F|T%F|A AFA|FAFA|F F(
12、E)|i F(E)|i注意需要考虑需要考虑 运算的运算的结合性结合性:是右结合的。是右结合的。例2-3 标识符标识符(以字母开头的字母、数字的以字母开头的字母、数字的串串)的产生的产生(仅考虑小写字母仅考虑小写字母)。从标识符的形成角度考虑从标识符的形成角度考虑ILIILIIDLa|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t u|v|w|x|y|zD0|1|2|3|4|5|6|7|8|9思考:上例是从标识符的上例是从标识符的形成角度形成角度思考问题。思考问题。从标识符的从标识符的定义定义角度考虑,则?角度考虑,则?注意 D0|1|2|3|4|5|6|7|8|9不
13、能简写为不能简写为 D0|9将I的定义加入到表达式中:EE+T|E-T|T TT*F|T/F|F F(E)|I IL|IL|ID L D思考思考:其他类型的表达式(如关系表达式等)其他类型的表达式(如关系表达式等)的定义:的定义:、=、=标识符标识符(以以下划线下划线或字母开头的字母、下或字母开头的字母、下划线和数字的串划线和数字的串)的产生。的产生。例例2-42-4C C语言中简单变量的说明语句的定义。语言中简单变量的说明语句的定义。C C语言中的说明语句形式为:语言中的说明语句形式为:TYPE TYPE 变量名表;变量名表;TYPE TYPE 变量名表;变量名表;TYPE TYPE 变量名
14、表;变量名表;产生式为:产生式为:SSSSSS|P|PPT VPT V;Tint|char|float|double|Tint|char|float|double|VVV,VV,V|I|I 用户定义类型用户定义类型 IL|IL|ID L D思考PASCALPASCAL语言的简单变量的说明语句的形成。语言的简单变量的说明语句的形成。VAR变量名表变量名表:TYPE;变量名表变量名表:TYPE;变量名表变量名表:TYPE;2.2 文法和语言的关系文法和语言的关系语言的定义语言的定义文法的定义文法的定义文法与语言的关系文法与语言的关系 对对于于语语言言,在在字字母母表表上上,按按照照一一定定的的构构
15、成成规规则则,根根据据语语言言句句子子的的结结构构特特点点,可以定义一个产生该语言的可以定义一个产生该语言的文法文法。使使用用文文法法作作为为语语言言的的有有穷穷描描述述,不不仅仅可可以以描描述述出出语语言言的的结结构构特特征征,而而且且可可以以产生产生这个语言的这个语言的所有句子所有句子。定义定义2-1 短语结构文法短语结构文法(文法文法)的定义的定义文法文法G是一个四元式,是一个四元式,G=(,V,S,P)是是有有限限字字符符的的集集合合(字字母母表表),元元素素称为字母或者称为字母或者终结符终结符;V是是有有限限字字符符的的集集合合-非非终终结结符符集集合合,元素称为变量或者元素称为变量
16、或者非终结符非终结符;短语结构文法短语结构文法(文法文法)的定义的定义 S V,称为文法的开始符号;,称为文法的开始符号;P是是有有序序偶偶对对(,)的的集集合合:是是集集合合(V)上上的的字字符符串串,至至少少包包含含一一个个非非终结符终结符;是集合是集合(V)*的元素的元素 一般,将有序偶对一般,将有序偶对(,)记为记为 称为产生式;称为产生式;如果有如果有,称之为,称之为空串产生式空串产生式或者或者产生式。产生式。如果有如果有ABAB,称之为,称之为单产生式单产生式。一个产生式的左边可能不只一个符号;一个产生式的左边可能不只一个符号;第一个产生式的左边只能有一个符号,第一个产生式的左边只
17、能有一个符号,就是就是开始符号开始符号S。文法文法的作用就是产生一个的作用就是产生一个语言语言。约定:如果没有特别说明约定:如果没有特别说明,则则 第一个产生式左边的符号,就是开始符第一个产生式左边的符号,就是开始符号,号,可以不为可以不为S;大写的英文字母代表非终结符;大写的英文字母代表非终结符;小写的英文字母小写的英文字母a,b,c,d,e和数字和数字代表终结符;代表终结符;约定:如果没有特别说明约定:如果没有特别说明,则则 小写的英文字母小写的英文字母u,v,w,x,y,z代代表终结符串;表终结符串;小写的希腊字母小写的希腊字母,、代表非终结符代表非终结符和终结符串;和终结符串;推导(派
18、生)的定义推导(派生)的定义2-2 文法文法G,和和是集合是集合(VV)上的串上的串=pvr,=pur(p和和r可能同时为可能同时为)而而vu是文法是文法G的一个产生式的一个产生式,则称则称直接推导出直接推导出 记为记为=,即,即 pvr=pur 推导的实质推导的实质 产生式的产生式的右边右边替换替换产生式的产生式的左边左边 非终结符非终结符代表在推导的过程中可以被代表在推导的过程中可以被替代的符号,替代的符号,终结符终结符代表在推导的过程中不可以被代表在推导的过程中不可以被替代的符号。替代的符号。推导推导的的逆逆过程称为过程称为归约归约。与与pvr=pur对应,串对应,串pur可以直接可以直
19、接归约成串归约成串pvr 记为记为pvr+z 表示表示y可以经过可以经过多步多步推导出推导出z,即,即 存在串的序列存在串的序列 1,2,3,n;有有y=1,z=n,且且 i=i+1;对所有;对所有ni=1任意步推导任意步推导(包括包括0步步)y=*z 表示表示y可以经过可以经过任意步任意步推导出推导出z,即,即 y=z;或者;或者 y=+z思考:思考:对于任意文法对于任意文法G:S=*S S=+S 一定都成立吗一定都成立吗?句型和句子 对于文法对于文法G,如果,如果S=*,则称,则称是文法的一个是文法的一个句型句型 进一步进一步 ,若,若 *,称为称为句子句子定义定义2-3 语言的定义语言的
20、定义 给定文法给定文法G,有开始符号,有开始符号S 把把S可以推导出的所有句子的集合可以推导出的所有句子的集合 称为由文法产生的语言,记为称为由文法产生的语言,记为L(G)L(G)=|S=*,且且*例l文法文法 G=(,),S,S,S(),S(S),SSS)产生语言产生语言 L(G)=w|w是括号匹配的串是括号匹配的串注意注意:文法文法G产生语言产生语言L,必须满足:,必须满足:G推导产生的所有句子都在推导产生的所有句子都在L中中L的任意句子都可以由的任意句子都可以由G推导产生推导产生对于文法对于文法G=(,V,S,P)约定:约定:第一个产生式左边的符号,就是开第一个产生式左边的符号,就是开始
21、符号(始符号(可以不是可以不是S);大写的英文字母代表非终结符大写的英文字母代表非终结符。对于文法(对于文法(G),只需给出该文法的),只需给出该文法的所有产生式即可。所有产生式即可。产生括号匹配语言的文法可以写成产生括号匹配语言的文法可以写成 S()S(S)SSS 还可以再简写成还可以再简写成 S()|(S)|SS 文法和语言的文法和语言的3类问题类问题已知已知文法文法得到该文法产生的得到该文法产生的语言语言已知已知语言语言构造产生该语言的构造产生该语言的某个某个文法文法判断判断一个语言是否由某一个文法产生一个语言是否由某一个文法产生第一类问题第一类问题文法文法SaSa|bSb|c产生的语言
22、是什么?产生的语言是什么?需需要要考考虑虑所所有有产产生生式式的的所所有有可可能能使用情况使用情况(包括顺序和次数)(包括顺序和次数)第二类问题第二类问题构造产生语言构造产生语言L的文法。的文法。L=wwT|wa,b,c+其中:其中:wT是是w的逆(反序)的逆(反序)思考:思考:产生下列语言的文法:产生下列语言的文法:L1=anbn|n0L2=anbn|n 0第三类问题第三类问题文法文法S0B|1AA0|0S|1AAB1|1S|0BB产生的语言是否为产生的语言是否为L:L=|0,1+,且且中有中有相同多相同多的的0和和1?第三类问题还包括第三类问题还包括l判断一个语言是否由某个文法产生。判断一
23、个语言是否由某个文法产生。l证明一个语言由某一个文法产生。证明一个语言由某一个文法产生。注意:一个语言一个语言可以可以由多个不同的文由多个不同的文法产生。法产生。一个文法一个文法只能只能产生一个语言。产生一个语言。例例2-5 G1:S0|1|00|11 G2:SA|B|AA|BB A0 B1L(G1)=L(G2)=0,1,00,11文法等价文法等价 如果文法如果文法G1和文法和文法G2产生同一产生同一个语言,则称文法个语言,则称文法G1和和G2是是等价等价的文法。的文法。L(G1)=L(G2)注意区别:文法文法G1G1和和G2G2等价等价文法文法G1G1和和G2G2相同相同 文法等价的证明文法
24、等价的证明l如何证明两个文法等价?如何证明两个文法等价?2.3Chomsky对文法、语言分类对文法、语言分类 Chomsky Chomsky对文法进行了分类;对文法进行了分类;语语言言的的分分类类,是是根根据据产产生生该该语语言文法的类别进行分类的言文法的类别进行分类的0型文法 对于一般的短语结构文法对于一般的短语结构文法(PSG)G=(,V,S,P)G称为称为0型文法,对应的型文法,对应的L(G)称为称为0型语言或者短语结构语言型语言或者短语结构语言(PSL)、递归可枚举集递归可枚举集。1型文法 如果对于任意如果对于任意P,均有,均有|成立,则称成立,则称G为为1型文法,型文法,或或上下文相
25、关文法上下文相关文法(CSG)。对应的对应的L(G)称为称为1型语言或者型语言或者上上下文相关语言下文相关语言(CSL)。1型文法产生式的标准形式产生式的标准形式 yAzyz其中:其中:A V;y,z(V)*(V)+1型文法 可以证明:可以证明:任意的任意的1型文法,都可以改造为型文法,都可以改造为1型文法的标准形式。型文法的标准形式。2型文法 如果对于任意如果对于任意P,均有,均有|且且 V成立,则称成立,则称G为为2型型文法,或文法,或上下文无关文法上下文无关文法(CFG)对应的对应的L(G)称为称为2型语言或者型语言或者上下上下文无关语言文无关语言(CFL)。3型文法 如果对于任意如果对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限 自动机 理论 形式语言
限制150内