形式语言与自动机-第2章-语言与文法_第1页
形式语言与自动机-第2章-语言与文法_第2页
形式语言与自动机-第2章-语言与文法_第3页
形式语言与自动机-第2章-语言与文法_第4页
形式语言与自动机-第2章-语言与文法_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1CollegeofComputerScience&Technology,BUPT第二章语言及文法主要内容:定义形式语言的术语给出文法的定义和文法的分类要求掌握:语言和文法的形式定义CHOMSKY文法体系的分类。CollegeofComputerScience&Technology,BUPT引言复习:什么是形式语言?什么是文法?什么是自动机?形式语言的定义方式?研究形式语言与自动机的意义?问题的提出?本章关注语言与文法如何描述(产生)左右括号匹配的语言?如何描述(产生)算术表达式?知识点:形式语言所研究的问题:产生语言,根据语言中的基本句子和其它句子的形成“规则”,得到(产生)语言所包含的所有句子。3CollegeofComputerScience&Technology,BUPT第一节语言的定义与运算一、语言的一些术语:

字母表:字符的有限集合,记为T。字符串:由字母表T中的字符构成的序列称字母表T上的字符串(句子)。常记为u,v,w,x,y,z;

常用a,b,c,d标识单个字符。4CollegeofComputerScience&Technology,BUPT字母表(Alphabet)

概念

形式符号的集合

记号常用T、表示

举例英文字母表a,b,…,z,A,B,…,Z

英文标点符号表,;:.?!’‘“”()…汉字表…,自,…,动,…,机,…

化学元素表H,He,Li,…,

T=a,n,y,任,意5CollegeofComputerScience&Technology,BUPT字符串(string)

概念字母表T上的一个字符串(简称串),或称为字(word),为T

中字符构成的一个有限序列。

空串(emptystring),用表示,不包含任何字符。

举例设T=a,b,则

,

a,ba,bbaba等都是串

字符串w

的长度,记为w,是包含在w中字符的个数

举例=0,bbaba=5ai

表示含有i个a的字符串6CollegeofComputerScience&Technology,BUPT

连接(concatenation)

设x,y为串,且xa1a2…am,yb1b2…bn,则x与y的连接

xya1a2…amb1b2…bn

连接运算的性质

(xy)z

x(yz

xxx

xyx+y

关于字符串的运算7CollegeofComputerScience&Technology,BUPT

其它如取头字符,取尾部,子串匹配

设ω1,ω2,ω3是字母表T上的字符串,称ω1是字符串ω1ω2的前缀,ω2是字符串ω1ω2的后缀,且ω2是字符串ω1ω2ω3的子串。空串是任何字符串的前缀,后缀及子串。

例: abc的前缀aababcε.后缀cbcabcε.子串abcabbcabcε,

即一个字符串可以看作是多个字符串的连接。

关于字符串的运算8CollegeofComputerScience&Technology,BUPT字符串ω的逆用或ωT表示,是字符串ω的倒置。ω=b1b2……bn=bnbn-1……b2b1

空串ε的逆还是ε9CollegeofComputerScience&Technology,BUPT字母表的幂运算

幂运算设T为字母表,n为任意自然数,定义(1)T0=(2)设x

Tn-1,a

T,则a

x

Tn(3)

Tn中的元素只能由(1)和(2)生成

闭包

T*=

T0T1T2…

闭包

T+=

T1T2T3…

T*=T+,T+=T*

10CollegeofComputerScience&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,…

11CollegeofComputerScience&Technology,BUPT语言(Languages)

概念设T为字母表,则任何集合LT*是字母表T上的一个语言(language)

举例

英文单词集…,English,…,words,…

C

语言程序集…字母表?汉语成语集…,马到成功,…

化学分子式集…,H2O,…,NaCl,…

any,任意

12CollegeofComputerScience&Technology,BUPT语言(Languages)举例:设T={a,b}则L1={anbn|n≥1}L2={bk|k是质数}L3={ε}只有一个空句子的语言L4={}=Φ空语言均为字母表T上的语言。由语言的定义知语言是集合,对于集合的运算可应用于对于语言的计算。如并,交,补,差。13CollegeofComputerScience&Technology,BUPT语言的基本运算语言的积:

两个语言L1和L2的积L1L2是由L1和L2中的字符串连接所构成的字符串的集合。即L1中所有字符串分别与L2中的字符串连接得到的集合。设T={a,b},L1和L2是T上的语言。L1={ab,ba}L2={aa,bb}则L1L2={abaa,abbb,baaa,babb}L2L1={aaab,aaba,bbab,bbba}L1L2≠L2L1

语言的积不可交换。14CollegeofComputerScience&Technology,BUPT语言的基本运算语言的幂: 语言的幂可归纳定义如下: L0={ε}Ln=L·Ln-1=Ln-1·Ln≥1上例中,L12={abab,abba,baab,baba}L22={aaaa,aabb,bbaa,bbbb}

15CollegeofComputerScience&Technology,BUPT第二节文法定义:所谓文法是用来定义语言的一个数学模型表示语言的方法:若语言L是有限集合,可用列举法若L是无限集合(集合中的每个元素有限长度),用其他方法。方法一:文法产生系统,由定义的文法规则产生出语言的每个句子方法二:机器识别系统:当一个字符串能被一个语言的识别系统接受,则这个字符串是该语言的一个句子,否则不属于该语言。16CollegeofComputerScience&Technology,BUPT元语言定义:描述语言的语言 例如:各种各样的程序设计语言当人们要解释或讨论程序设计语言本身时,又需要一种语言,被讨论的语言叫做对象语言,即某种程序设计语言,讨论对象语言的语言称为元语言。17CollegeofComputerScience&Technology,BUPTBNF(巴科斯范式) BNF范式通常被作为讨论某种程序设计语言语法的元语言<数字>::=0|1|2|……9::=“定义为”<字母>::=A|B|C|……Z|a|b|……z<标识符>::=<字母>|<标识符><字母>|<标识符><数字>

….通过上述定义可知,所有以字母开头的,由字母和数字组成的字符串都是标识符。BNF定义了一种语言,其中标识符如上定义。BNF描述它所定义的语言,为元语言。18CollegeofComputerScience&Technology,BUPT例如:汉语语法中定义了句子的结构由主语、谓语、宾语组成。这里主谓宾只是描述了句子的结构,并不是句子。而按照这种结构组成的建立在汉字上的字符串就是句子。如他是学生。文法是一种元语言,一种方法,根据文法产生出语言的句子。19例1—类PASCAL〈语句〉定义20CollegeofComputerScience&Technology,BUPT三、Chomsky文法体系例如:BNF<标识符>::=<字母><标识符>::=<标识符><字母><标识符>::=<标识符><数字><字母>::=a|b|……z|A|B|……|Z<数字>::=0|1|……9将::=改为→表示可被代替用I,L,D分别表示标识符、字母、数字;21CollegeofComputerScience&Technology,BUPT则上述表达式可以表示为 I→LI→ILI→IDL→a|b|….|zD→0|1|….9这就是一个文法的生成式集合。22CollegeofComputerScience&Technology,BUPTChomsky文法体系中,任何一种文法必须包含有两个不同的有限符号的集合,即非终结符集合N和终结符集合T。一个形式规则的有限集合P(生成式集合),一个起始符S。P中的生成式是用来产生语言句子的规则,而句子则是仅由终结符组成的字符串。这些字符串必须从一个起始符S开始,不断使用P中的生成式而导出来。可见文法的核心是生成式的集合,它决定了语言中句子的产生。23CollegeofComputerScience&Technology,BUPT文法的形式定义文法G是一个四元组G=(N,T,P,S),其中

N非终结符的有限集合 T终结符的有限集合N∩T=Φ P形式为α→β的生成式的有限集合。 且α∈(N∪T)*N+(N∪T)*β∈(N∪T)* S起始符且S∈N。24CollegeofComputerScience&Technology,BUPT将上例用文法表示 G=(N,T,P,S)N={I,L,D}T={a,b,c,…z,0,1,…9}P={I,La,…,D0,…,D9}S=I文法是语言的产生系统,研究怎样构造文法能产生出符合要求的句子。25CollegeofComputerScience&Technology,BUPT四.推导与句型1、直接推导 设G=(N,T,P,S)是文法,若A→β是P中的生成式,α和γ是(N∪T)*中的字符串,则有αAγ=>αβγ称αAγ直接推导出αβγ,或说αβγ是αAγ的直接推导。26CollegeofComputerScience&Technology,BUPT设G=(N,T,P,S)是文法,α、α0、α1…αn、α’都是(N∪T)*中的字符串,且α=α0、α’=αn,其中αi直接推导出αi+1(0≤i≤n),则称序列α0=>α1=>α2=>…=>αn是长度为n的推导序列,而α=α0是长度为0的推导序列。对α推导出α’记为αα’,若推导序列长度大于0,则记为αα’。推导序列的每一步,都产生一个字符串,这些字符串一般称为句型。2、推导序列27CollegeofComputerScience&Technology,BUPT3、句型和句子句型 字符串α是文法G的句型,当且仅当Sα,且α∈(N∪T)*。

句子ω是G的句子,当且仅当Sω,且ω∈T*。(ω是由终结符组成的字符串)例:I=>L=>a I=>IL=>LL=>zL=>zb句型包含句子28CollegeofComputerScience&Technology,BUPT4.文法产生的语言由文法G产生的语言记为L(G)。 L(G)={ω|ω∈T*且Sω}或: L(G)中的一个字符串,必是由终结符组成的,并且是从起始符S推导出来的。CollegeofComputerScience&Technology,BUPT例:文法产生语言例1:括号匹配的语言及产生递归定义提供了集合的定义方式。构造规律。基础:定义该集合的最基本的元素,“()”递归:若S是合法串,则:(S)是合法串;

SS是合法串;文法产生式集合:S→()S→(S)S→SSCollegeofComputerScience&Technology,BUPT例文法产生语言例2:程序设计语言中算术表达式的文法 运算符A:+、-、*、/利用递归定义方式。重点是构造规律。基础:单个变量是最基本的串,i,递归:若S是合法串,则:SAS是合法串;

(S)是合法串产生式集合:S→i;S→SAS;S→(S);A→+;A→−;A→*;A→/;31CollegeofComputerScience&Technology,BUPT第三节Chomsky文法体系分类文法G=(N,T,P,S);P:α→β

其中α∈(N∪T)*N+(N∪T)*

β∈(N∪T)*

属于Chomsky文法体系该体系对生成式(产生式)的形式做了一些规定,分为四类,即0型、1型、2型、3型文法0型文法:无限制文法 对应的语言:递归可枚举语言,与图灵机等价。32CollegeofComputerScience&Technology,BUPT1型文法也称上下文有关文法(CSG:Context-sensitiveGrammar) 生成式的形式为α→β, 其中|α|≤|β|,β∈(N∪T)+, α∈(N∪T)*N+(N∪T)*对应的语言:上下文有关语言(CSL:Context-sensitiveLanguage)若不考虑ε,与线性有界自动机(LBA,LinearBoundedAutomaton)等价。CollegeofComputerScience&Technology,BUPT1型文法语言限定约束:左部的长度小于右部不含A->ε实际程序语言中上下文有关的部分:过程调用时形参与实参的一致性检查等。34CollegeofComputerScience&Technology,BUPT2型文法也称上下文无关文法(CFG:Context-freeGrammar) A→β, A∈N,且β∈(N∪T)*对应的语言:上下文无关语言(CFL:Context-freeLanguage)。对应的自动机:下推自动机(PDA:PushdownAutomaton)。CollegeofComputerScience&Technology,BUPT语言限定约束:左部是单个非终结符。CFL对实际语言结构的抽象:表示句子的语法结构,如:表达式,嵌套结构{}。目前的程序设计语言主要采用CFL描述语法结构。36CollegeofComputerScience&Technology,BUPT3型文法也称正则文法右线性文法(Right-linearGrammar)A→ωB或A→ωA、B∈N,ω∈T*。左线性文法(Left-linearGrammar): A→Bω或A→ω A、B∈N,ω∈T*。对应的语言:正则语言对应的自动机:有限自动机(FiniteAutomaton)。37CollegeofComputerScience&Technology,BUPT例1: G=({A,B,C},{a,b,d},P,A) P:A→AB;AB→CAAB;A→d;B→a;C→b是1型文法。A=>dA=>AB=>dB=>daA=>AB=>ABB=>dBB=>daB=>daaA=>AB=>CAAB=>bAAB=>bdAB=>bdCAAB=>bdbAAB=>bdbdAB=>bdbddB=>bdbdda38CollegeofC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论