形式语言与自动机语言及文法精.ppt

上传人:石*** 文档编号:78751022 上传时间:2023-03-19 格式:PPT 页数:47 大小:2.24MB
返回 下载 相关 举报
形式语言与自动机语言及文法精.ppt_第1页
第1页 / 共47页
形式语言与自动机语言及文法精.ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《形式语言与自动机语言及文法精.ppt》由会员分享,可在线阅读,更多相关《形式语言与自动机语言及文法精.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、形式语言与自动机语言及文法College of Computer Science&Technology,BUPT第1页,本讲稿共47页College of Computer Science&Technology,BUPT引言n复习:复习:n什么是形式语言?什么是文法?什么是自动机?n形式语言的定义方式?n研究形式语言与自动机的意义?n问题的提出?本章关注问题的提出?本章关注 语言与文法语言与文法n如何描述(产生)左右括号匹配的语言?n如何描述(产生)数学表达式?第2页,本讲稿共47页College of Computer Science&Technology,BUPT引言n知识点:知识点:n形

2、式语言所研究的问题:产生语言,根据语言中的基本句子和其它句子的形成“规则”,得到(产生)语言所包含的所有句子。第3页,本讲稿共47页College of Computer Science&Technology,BUPT第一节第一节 语言的定义与运算语言的定义与运算一、一、语言的一些术语:语言的一些术语:n 字母表:字符的有限集合,记为T。n字符串:由字母表T中的字符构成的序列称字母表T上的字符串(句子)。n 常记为u,v,w,x,y,z;n 常用a,b,c,d 标识单个字符。第4页,本讲稿共47页College of Computer Science&Technology,BUPT字字 母母

3、表表 (AlphabetAlphabet)概念概念 形式符号的集合形式符号的集合 记号记号 常用常用 T、表示表示 举例举例-英文字母表英文字母表 a,b,z,A,B,Z -英文标点符号表英文标点符号表 ,;:.?!“”()-汉字表汉字表 ,自自,动动,机机,-化学元素表化学元素表 H,He,Li,-T=a,n,y,任任,意意 第5页,本讲稿共47页College of Computer Science&Technology,BUPT字字 符符 串串 (stringstring)概念概念 字母表字母表 T 上的一个上的一个字符串字符串(简称(简称串串),或称为),或称为 字字(word),为)

4、,为 T 中字符构成的一个有限序列。中字符构成的一个有限序列。空串空串(empty string),用用 表示,不包含任何表示,不包含任何 字符。字符。举例举例 设设 T=a,b ,则,则 ,a,ba,bbaba 等都是串等都是串 字符串字符串 w 的的长度长度,记为,记为 w ,是包含在,是包含在 w 中字符的个数中字符的个数 举例举例 =0,bbaba =5 ai 表示含有表示含有i个个a的字符串的字符串 第6页,本讲稿共47页College of Computer Science&Technology,BUPT 连接(连接(concatenation)设设 x,y为串为串,且且 x a1

5、a2 am,y b1b2 bn,则则 x 与与 y 的连接的连接 x y a1a2 am b1b2 bn 连接运算的性质连接运算的性质 -(x y)z x(y z)-x x x-x y x+y 关关 于于 字字 符符 串串 的的 运运 算算第7页,本讲稿共47页College of Computer Science&Technology,BUPT 其它其它 如如 取头字符取头字符,取尾部取尾部,子串匹配子串匹配 等等n 设设1,2,3是字母表是字母表T上的字符串,称:上的字符串,称:n1是字符串是字符串12的的前缀前缀,n2是字符串是字符串12的的后缀后缀,n2是字符串是字符串123的的子串子

6、串。n 空串是任何字符串的前缀,后缀及子串。空串是任何字符串的前缀,后缀及子串。n 例例:abc的前缀的前缀 a ab abc.后缀后缀 c bc abc.子串子串 a b c ab bc abc ,即一个字符串可以看作是多个字符串的连接。即一个字符串可以看作是多个字符串的连接。关关 于于 字字 符符 串串 的的 运运 算算第8页,本讲稿共47页College of Computer Science&Technology,BUPTn 字符串字符串的逆用的逆用 表示。表示。是字是字符串符串的倒置。的倒置。=b1b2bn =bnbn-1b2b1n 空串空串的逆还是的逆还是第9页,本讲稿共47页Co

7、llege of Computer Science&Technology,BUPT字字 母母 表表 的的 幂幂 运运 算算 幂运算幂运算 Tn 用来表示用来表示 该字母表长度为该字母表长度为n的所有串的集合。设的所有串的集合。设 T 为字母表,为字母表,n 为任意自然数,为任意自然数,定义(定义(1)T0=(2)设)设 x Tn-1,a T,则则a x Tn (3)Tn 中的元素只能由(中的元素只能由(1)和)和(2)生成)生成 闭包闭包 T*=T0 T1 T2 闭包闭包 T+=T1 T2 T3 T*=T+,T+=T*第10页,本讲稿共47页College of Computer Scienc

8、e&Technology,BUPT闭包的物理意义闭包的物理意义 T的星号闭包的星号闭包T*:字母表T上的所有字符串和空串的集合。T的正闭包的正闭包T+:字母表T上的所有字符串构成的集合。T*=T+举例举例 设设 T=0,1 ,则,则 T0=,T1=0,1 ,T2=00,01,10,11 ,T*=,0,1,00,01,10,11,T+=0,1,00,01,10,11,第11页,本讲稿共47页College of Computer Science&Technology,BUPT 概念概念 设设 T 为字母表,则任何集合为字母表,则任何集合 L T*是是字母表字母表T上的上的一个语言(一个语言(la

9、nguage)。)。隐含的概念:如何表述子集的隐含的概念:如何表述子集的“特性和规则特性和规则”,举例举例-左右括号的匹配。左右括号的匹配。-英文单词集英文单词集 ,English,words,-C 语言程序集语言程序集 字母表?字母表?-汉语成语集汉语成语集 ,马到成功马到成功,-化学分子式集化学分子式集 ,H2O,NaCl,-any,任意任意 语 言(Languages)第12页,本讲稿共47页College of Computer Science&Technology,BUPT语 言(Languages)举例举例:设:设T=a,b 则则 L1 =anbn|n1 L3=bk|k 是质数是质

10、数 L2 =只有一个空句子的语言只有一个空句子的语言 L4=空语言空语言 均为字母表均为字母表T上的语言。上的语言。由语言的定义知语言是集合,对于集合的运算可应用于对于由语言的定义知语言是集合,对于集合的运算可应用于对于语言的计算。如并,交,补,差。语言的计算。如并,交,补,差。第13页,本讲稿共47页College of Computer Science&Technology,BUPT语言的基本运算 语言的积:语言的积:两个语言L1 和L2的积L1 L2是由L1和L2中的字符串连接所构成的字符串的集合。即L1中所有字符串分别与L2中的字符串连接得到的集合。设T=a,b,L1和 L2是T上的语

11、言。L1=ab,ba L2=aa,bb则 L1 L2=abaa,abbb,baaa,babb L2 L1=aaab,aaba,bbab,bbban L1 L2 L2 L1 语言的积不可交换。语言的积不可交换。第14页,本讲稿共47页College of Computer Science&Technology,BUPT语言的基本运算 语言的幂:语言的幂:语言的幂可归纳定义如下语言的幂可归纳定义如下:L0=Ln=L Ln-1=Ln-1 L n 1上例中,上例中,L12=abab,abba,baab,baba L22=aaaa,aabb,bbaa,bbbb 第15页,本讲稿共47页College o

12、f Computer Science&Technology,BUPT语言举例例例1:括号匹配的语言及产生:括号匹配的语言及产生该语言指所有左右括号相匹配的字符串如何“产生”这个语言?规则?递归定义提供了集合的定义方式。构造规律。1.基础:定义该集合的最基本的元素,“()”2.递归:若S是合法串,则:(S)是合法串;SS 是合法串;第16页,本讲稿共47页College of Computer Science&Technology,BUPT语言举例例例2:程序设计语言中算数表达式的语言:程序设计语言中算数表达式的语言运算符运算符A:+、-、*、/利用递归定义方式。重点是构造规律。1.基础:单个变

13、量是最基本的串,i,2.递归:若S是合法串,则:SAS 是合法串;(S)是合法串;第17页,本讲稿共47页College of Computer Science&Technology,BUPT语言举例例例3:标识符语言及产生:标识符语言及产生该语言指所有字母开头后接字母或数字的字符串如何“产生”这个语言?规则?递归定义提供了集合的定义方式。构造规律。1.基础:单个字母是最基本的元素,2.递归:若S是合法串,则:SL 是合法串;SD 是合法串;L:字母;D:数字。第18页,本讲稿共47页College of Computer Science&Technology,BUPT第二节 文法本节提纲本节

14、提纲1.文法的作用文法的作用2.文法的形式定义文法的形式定义3.推导与句型推导与句型4.文法产生语言文法产生语言第19页,本讲稿共47页College of Computer Science&Technology,BUPT2.1 文法的作用n定义:所谓文法是用来定义语言的一个数学模型:所谓文法是用来定义语言的一个数学模型n表示语言的方法:n若语言L是有限集合,可用列举法n若L是无限集合(集合中的每个元素有限长度),用其他方法。n方法一:文法产生系统,由定义的文法规则产生出语言的每个句子n方法二:机器识别系统:当一个字符串能被一个语言的识别系统接受,则这个字符串是该语言的一个句子,否则不属于该语

15、言。第20页,本讲稿共47页College of Computer Science&Technology,BUPT2.12.1文法的作用文法的作用-元语言元语言n元语言定义元语言定义:描述语言的语言描述语言的语言例如:各种各样的程序设计语言n当当人人们们要要解解释释或或讨讨论论程程序序设设计计语语言言本本身身时时,又又需需要要一一种种语语言言,被被讨讨论论的的语语言言叫叫做做对对象象语语言言,即即某某种种程程序序设设计计语语言言,讨讨论论对对象象语语言言的的语言称为元语言语言称为元语言。第21页,本讲稿共47页College of Computer Science&Technology,BUP

16、TBNFBNF(巴科斯范式)(巴科斯范式)BNF范式通常被作为讨论某种程序设计语言语法的元语言n:=0|1|2|9 :=“定义为”n:=A|B|C|Z|a|b|z :=|.n通过上述定义可知,所有以字母开头的,由字母和数字组成的字符串都是标识符。nBNF定义了一种语言,其中标识符如上定义。nBNF描述它所定义的语言,为元语言。第22页,本讲稿共47页College of Computer Science&Technology,BUPTn例如:汉语语法中定义了句子的结构由主语、谓语、宾语组成。这里主谓宾只是描述了句子的结构,并不是句子。而按照这种结构组成的建立在汉字上的字符串就是句子。如:他是学

17、生。第23页,本讲稿共47页College of Computer Science&Technology,BUPTn文法是一种元语言,一种定义方法。文法是一种元语言,一种定义方法。n根据文法产生出语言的句子。根据文法产生出语言的句子。第24页,本讲稿共47页College of Computer Science&Technology,BUPT2.1文法元语言n例如:BNF:=:=:=:=a|b|z|A|B|Z :=0|1|9将将:=改为改为表示可被代替表示可被代替用用I,L,D分别表示标识符、字母、数字分别表示标识符、字母、数字;第25页,本讲稿共47页College of Computer

18、Science&Technology,BUPT2.1 文法-元语言则上述表达式可以表示为则上述表达式可以表示为 IL IIL IID La|b|.|z D0|1|.9这就是一个文法的生成式集合。这就是一个文法的生成式集合。第26页,本讲稿共47页College of Computer Science&Technology,BUPT2.2 文法的形式定义nChomsky文法体系中,任何一种文法必须包含有两个不同的有限符号的集合,即非终结符集合N和终结符集合T。一个形式规则的有限集合P(生成式集合),一个起始符S。nP中的生成式是用来产生语言句子的规则,而句子则是仅由终结符组成的字符串。这些字符串

19、必须从一个起始符S开始,不断使用P中的生成式而推导出来。n可见文法的核心是生成式的集合,它决定了语言中句子的产生。第27页,本讲稿共47页College of Computer Science&Technology,BUPT2.2 文法的形式定义n文法G是一个四元组G=(N,T,P,S),其中N 非终结符的有限集合T 终结符的有限集合 NT=P 形式为的生成式的有限集合。且(NT)*N+(NT)*(NT)*S 起始符 且S N。第28页,本讲稿共47页College of Computer Science&Technology,BUPTn将上例用文法表示G=(N,T,P,S)N=I,L,DT=

20、a,b,c,z,0,1,9P=I,La,D0,D9S=I n文法是语言的产生系统,研究怎样构造文法能产生出符合要求的句子。第29页,本讲稿共47页College of Computer Science&Technology,BUPT2.3推导与句型1、直接推导设G=(N,T,P,S)是文法,若A是P中的生成式,和是(NT)*中的字符串,则有A=称A直接推导出,或说是A的直接推导。第30页,本讲稿共47页College of Computer Science&Technology,BUPTn设设G G=(N,T,P,S)(N,T,P,S)是是文文法法,、0 0、1 1n n、都都是是(NTNT)

21、*中中的的字字符符串串,且且=0 0、=n n,其其中中i i直直接接推推导导出出i+1i+1 (0in0in),则则称称序序列列0 0=1 1=2 2=n n是是长度为长度为n n的推导序列,而的推导序列,而=0 0是长度为是长度为0 0的推导序列。的推导序列。n对对推推导导出出记记为为 ,若若推推导导序序列列长长度度大大于于0 0,则则记为记为 。n推推导导序序列列的的每每一一步步,都都产产生生一一个个字字符符串串,这这些些字字符符串串一一般般称称为句型。为句型。2.3、推导序列第31页,本讲稿共47页College of Computer Science&Technology,BUPT2

22、.3、句型和句子n句型字符串是文法G的句型,当且仅当S ,且(NT)*。n 句子是G的句子,当且仅当S ,且T*。(是由终结符组成的字符串)例:I=L=a I=IL=LL=zL=zbn句型包含句子第32页,本讲稿共47页College of Computer Science&Technology,BUPT2.4文法产生的语言由文法G产生的语言记为L(G)。L(G)=|T*且S 或:L(G)中的一个字符串,必是由终结符组成的,并且是从起始符S推导出来的。第33页,本讲稿共47页College of Computer Science&Technology,BUPT2.4 文法产生语言例例1:括号匹

23、配的语言及产生:括号匹配的语言及产生递归定义提供了集合的定义方式。构造规律。1.基础:定义该集合的最基本的元素,“()”2.递归:若S是合法串,则:(S)是合法串;SS 是合法串;文法产生式集合:S()()S(S)SSS第34页,本讲稿共47页College of Computer Science&Technology,BUPT2.4 文法产生语言举例例例2:程序设计语言中算数表达式的语言:程序设计语言中算数表达式的语言运算符运算符A:+、-、*、/利用递归定义方式。重点是构造规律。1.基础:单个变量是最基本的串,i,2.递归:若S是合法串,则:SAS 是合法串;(S)是合法串产生式集合:Si

24、;SSAS;S(S);A+;A;A*;A/;第35页,本讲稿共47页College of Computer Science&Technology,BUPT第三节 Chomsky文法体系分类n文法文法 G=(N,T,P,S);P:其中其中(NT)*N+(NT)*(NT)*属于属于Chomsky文法体系文法体系n该该体体系系对对生生成成式式的的形形式式做做了了一一些些规规定定,分分为四类,即为四类,即0型、型、1型、型、2型、型、3型文法型文法n0型文法:无限制文法型文法:无限制文法对应的语言:递归可枚举语言,与图灵机等价。第36页,本讲稿共47页College of Computer Scien

25、ce&Technology,BUPT1型文法n也称上下文有关文法(也称上下文有关文法(CSG:Context-sensitive Grammar)生成式的形式为生成式的形式为,其中其中|,(NT)+,(NT)*N+(NT)*n对应的语言:上下文有关语言(对应的语言:上下文有关语言(CSL:Context-sensitive Language)n若不考虑若不考虑,与线性有界自动机(,与线性有界自动机(LBA,Linear Bounded Automaton)等价。)等价。第37页,本讲稿共47页College of Computer Science&Technology,BUPT1型文法语言限定

26、约束:1.左部的长度小于右部2.不含A-n上下文有关语言CSL是对实际程序语言结构的抽象:典型的这类语言结构包括:n过程调用时形参与实参的一致性检查等。第38页,本讲稿共47页College of Computer Science&Technology,BUPT2型文法n也也称称上上下下文文无无关关文文法法(CFG:Context-free Grammar)A,AN,且且(NT)*n对对应应的的语语言言:上上下下文文无无关关语语言言(CFL:Context-free Language)。n对对应应的的自自动动机机:下下推推自自动动机机(PDA:Pushdown Automaton)。第39页,

27、本讲稿共47页College of Computer Science&Technology,BUPTn语言限定约束:语言限定约束:1.左部是1个非终结符。nCFL对实际语言结构的抽象:对实际语言结构的抽象:n表示句子的语法结构,如:表达式,嵌套结构。n目前的程序设计语言主要采用CFL描述语法结构。第40页,本讲稿共47页College of Computer Science&Technology,BUPT3型文法也称正则文法也称正则文法n右线性文法(Right-linear Grammar):AB 或 AA、BN,T*。n左线性文法(Left-linear Grammar):AB或 AA、BN

28、,T*。n对应的语言:正则语言n对应的自动机:有限自动机(Finite Automaton)。第41页,本讲稿共47页College of Computer Science&Technology,BUPT文法举例文法举例例例1:G=(A,B,C,a,b,d,P,A)P:AAB;ABCAAB;Ad;Ba;Cb 是是1型文法。型文法。A=dA=AB=dB=daA=AB=ABB=dBB=daB=daaA=AB=CAAB=bAAB=bdAB=bdCAAB=bdbAAB=bdbdAB=bdbddB=bdbdda第42页,本讲稿共47页College of Computer Science&Technol

29、ogy,BUPT文法举例文法举例例例2:G=(A,B,C,a,b,c,P,A)P:Aabc AaBbc BbbB BcCbcc bCCb aCaaB aCaa 是是1型文法。型文法。其定义的其定义的 L=anbncn|n1n A=abcn A=aBbc=abBc=abCbcc=aCbbcc=aabbcc 第43页,本讲稿共47页College of Computer Science&Technology,BUPT文法举例文法举例例例3:G=(S,B,C,a,b,P,A)P:SaC;SbB;BaS;BbBB Ba;CbS;CaCC;Cb 是是2型文法型文法 n S=aC=ab nS=aC=aaC

30、CnS=aC=abS=abaC=ababS=ababaC=abababnS=bB=bbBB=bbaSB=bbaaCB=bbaabB=bbaaba第44页,本讲稿共47页College of Computer Science&Technology,BUPT文法举例文法举例例例4:G=(A,B,C,a,b,c,P,A)P:ABa;Ac;BCb;Ccn左线性文法n L=c,cba 正则语言n注注意意:已已知知语语言言求求文文法法,文文法法不不是是唯唯一一的的,即可以有不同的表达方法即可以有不同的表达方法。第45页,本讲稿共47页College of Computer Science&Technology,BUPT四类文法之间的关系n只是对生成式形式加以限制只是对生成式形式加以限制n0型型 无限制无限制n1型型 不允许不允许A形式形式n2型型n3型型 属于属于2型型n不不含含A的的2型型、3型型属属于于1型型,1型型、2型、型、3型均属于型均属于0型。型。第46页,本讲稿共47页College of Computer Science&Technology,BUPTn作业:作业:P47 4,6,7 题题第47页,本讲稿共47页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁