形式语言与自动机的关系
- 格式:doc
- 大小:261.00 KB
- 文档页数:7
自然语言、形式语法与自动机形式语法与自动机理论是自然语言的计算机处理的基础理论。
一、形式语法与自动机理论1.形式语法从数学的观点看,自然语言的表达式是一个个有穷长的符号串(其中的符号可以是子、词、音节等)。
但并非每个串都是自然语言允许的合法的表达式。
语法(grammar)的作用就是以某种方式在所有有穷串的集合中“选”出一个子集,该子集中的串是“合法”的。
有两类数学“装置”——自动机(automaton)和串重写系统(string rewriting system),可以用于从数学和计算机的角度考察语法。
一个形式语法(formal grammar),简称“语法”,实质上可以看作是一个基于公理和推演规则的推演系统。
定义1 形式语法一个形式语法是一个四元组<V T, V N, S, R>,其中:V T称终结符字母表(the terminal alphabet),直观上是语言中全部表层符号的有穷集合。
V N称非终结符字母表(the non-terminal alphabet),直观上是表示语法范畴的符号的有穷集合。
V T与V N相交为空。
S称初始符号(initial symbol),S∈V N。
R称规则集(the set of rules),直观上是一系列形如“ϕ→ψ”的规则的集合,其中ϕ和ψ是符号串。
设∑=V T∪V N,∑*={s| s是有穷∑串},∑*V N∑*={a︵b︵c| a, c∈∑*,b∈V N},有穷集R⊆∑*V N∑*×∑*。
定义2 派生(derivation)设G=<V T, V N, S, R>是一个语法。
一个G的派生是一个符号串的序列x0, ..., x n,其中x0=S,x i是由x i-1应用某条R中的规则得出的(2≤i≤n)。
定义3 生成(generate)语法G生成串s(s∈V T*),当且仅当,存在一个G的派生x0, ..., x n,x n=s。
信息与计算科学中的形式语言与自动机理论研究在信息与计算科学领域,形式语言与自动机理论是一门重要的研究领域。
形式语言是一种抽象的语言模型,用于描述和分析各种计算机科学问题。
自动机理论则是研究自动机的性质和行为的数学理论。
这两个领域相辅相成,为计算机科学的发展提供了重要的理论基础。
形式语言是一种由符号组成的抽象语言模型。
它是为了解决自然语言的复杂性而产生的。
自然语言的语法和语义常常难以准确描述和分析,因此形式语言的出现填补了这一空缺。
形式语言可以通过定义产生规则来描述其语法结构,从而使得对其进行分析和推导成为可能。
常见的形式语言包括正则语言、上下文无关语言和上下文相关语言等。
形式语言的研究不仅为计算机编程语言的设计和分析提供了理论基础,还在编译原理、自然语言处理等领域有着广泛的应用。
自动机理论是研究自动机的性质和行为的数学理论。
自动机是一种抽象的计算模型,它能够根据一定的规则对输入进行处理和转换。
自动机可以分为有限自动机和无限自动机两种类型。
有限自动机是一种状态有限的自动机,它能够处理有限长度的输入。
无限自动机则是一种状态无限的自动机,它能够处理无限长度的输入。
自动机理论的研究内容包括自动机的等价性、最小化、正则化、语言接受能力等方面。
自动机理论的研究成果为计算机科学中的模型检测、软件验证等问题提供了重要的理论支持。
形式语言与自动机理论的研究相辅相成,它们之间存在着密切的联系。
形式语言可以通过自动机来识别和生成,而自动机可以通过形式语言来描述和分析。
形式语言与自动机理论的研究结果也相互借鉴和影响。
例如,形式语言的产生规则可以通过自动机的状态转换来描述,而自动机的状态转换图可以通过形式语言的产生规则来生成。
形式语言与自动机理论的研究成果为计算机科学中的编译原理、自然语言处理、模型检测等领域提供了重要的理论基础。
形式语言与自动机理论的研究在信息与计算科学领域具有广泛的应用前景。
随着计算机科学技术的不断发展,对于形式语言与自动机理论的需求也越来越高。
自然语言、形式语法与自动机形式语法与自动机理论是自然语言的计算机处理的基础理论。
一、形式语法与自动机理论1.形式语法从数学的观点看,自然语言的表达式是一个个有穷长的符号串(其中的符号可以是子、词、音节等)。
但并非每个串都是自然语言允许的合法的表达式。
语法(grammar)的作用就是以某种方式在所有有穷串的集合中“选”出一个子集,该子集中的串是“合法”的。
有两类数学“装置”——自动机(automaton)和串重写系统(string rewriting system),可以用于从数学和计算机的角度考察语法。
一个形式语法(formal grammar),简称“语法”,实质上可以看作是一个基于公理和推演规则的推演系统。
定义1 形式语法一个形式语法是一个四元组<V T, V N, S, R>,其中:V T称终结符字母表(the terminal alphabet),直观上是语言中全部表层符号的有穷集合。
V N称非终结符字母表(the non-terminal alphabet),直观上是表示语法范畴的符号的有穷集合。
V T与V N相交为空。
S称初始符号(initial symbol),S∈V N。
R称规则集(the set of rules),直观上是一系列形如“ϕ→ψ”的规则的集合,其中ϕ和ψ是符号串。
设∑=V T∪V N,∑*={s| s是有穷∑串},∑*V N∑*={a︵b︵c| a, c∈∑*,b∈V N},有穷集R⊆∑*V N∑*×∑*。
定义2 派生(derivation)设G=<V T, V N, S, R>是一个语法。
一个G的派生是一个符号串的序列x0, ..., x n,其中x0=S,x i是由x i-1应用某条R中的规则得出的(2≤i≤n)。
定义3 生成(generate)语法G生成串s(s∈V T*),当且仅当,存在一个G的派生x0, ..., x n,x n=s。
1.4.2 形式语言与自动机理论的产生与作用毕业于宾夕法尼亚大学的我语言学家乔姆斯基(Avram Noam Chomsky)最初从产生语言的角度研究语言。
1956年,通过抽象,他将语言形式地定义为由一个字母表中的字母组成的一些串的集合:对任何语言L,有一个字母表∑,使得L⊆∑。
可以在字母表上按照一定的规则定义一个文法(grammar),该文法产生的所有句子组成的集合就是该文法产生的语言。
判断一个句子是否是某语言的合法句子,需要判断该句子是否能由该语言对应的文法产生出来的,如果能,它是合法的;否则,它就是非法的。
1959年,乔姆斯基根据产生语言的文法的特征,又将语言划分成三大类。
注意,这里所说的文法就是通常人们所说的语法。
根据习惯,本书中主要用“文法”一词来表达这种对象,只是在个别情况下用“语法”一词。
1951-1956年间,克林(Kleene)在研究神经细胞中建立了自动机,想、从识别的角度研究语言,从而给出了语言的另一种描述模型:对于按照一定的规则构造的任一个自动机,该自动机就定义了一个语言,这个语言由该自动机所能识别的所有句子组成。
语言的文法与自动机这两种不同表示方法进一步引起人们的研究兴趣。
按照通常的考虑,由于这两种方法描述的是同一种东西,所以,它们应该是等价的。
但是,它们真的是等价的吗?如果它们确实是等价的,是否存在一种方法,咳哟实现这两种表示方法的相互转换?当然,我们要求这种转换方法应是正确的,也就是得到了证明的。
如果这种转换方法是有效的,可以自动的进行,将给我们带来更多的方便和新的结果。
1959年,乔姆斯基通过深入的研究,将他本人的研究成果与克林的研究成果结合起来,不仅确定了文法和自动机分别从生成和识别的角度去表达语言,而且证明了文法与自动机的等价性。
此时形式语言才真正诞生,并被置于数学的光芒之下。
形式语言出现之后很快就在计算机科学与技术领域中找到了应用。
20世纪50年代,人们用巴克斯范式(Backus Nour Form 或Backus Normal Form,BNF)成功地实现了对高级语言ALGOL-60的描述。
形式语言与自动机蒋宗礼答案形式语言与自动机蒋宗礼答案【篇一:形式语言第四章参考答案(蒋宗礼)】p> 解:所求正则表达式为:(0+1)*。
+⑵ {0, 1}。
解:所求正则表达式为:(0+1)+。
⑶ { x│x∈{0,1}且x中不含形如00的子串 }。
解:根据第三章构造的fa,可得所求正则表达式为:1*(01+)*(01+0+1)。
⑷ { x│x∈{0,1}*且x中不含形如00的子串 }。
++ +q1为终态时的正则表达式:0*1(1*(0(10)*111*1)*(0(10)*00*1)*)* q2为终态时的正则表达式:0*11*0((10)*(111*11*0)*(00*11*0)*)*q3为终态时的正则表达式:0*11*0(10)*1(11*11*0((10)*(00*11*0)*)*1)* q4为终态时的正则表达式:0*11*0(10)*11(1*(11*0((00*11*0)*(10)*)*11)*)* 将以上5个正则表达式用“+”号相连,就得到所要求的正则表达式。
⑺ { x│x∈{0,1}且当把x看成二进制数时,x模5与3同余和x为0时,│x│=1且x≠0时,x的首字符为1}。
解:先画出状态转移图,设置5个状态q0、q1、q2、q3、q4,分别表示除5的余数是0、1、2、3、4的情形。
另外,设置一个开始状态q.由于要求x模5和3同余,而3模5余3,故只有q3可以作为终态。
由题设,x=0时,│x│=1,模5是1,不符合条件,所以不必增加关于它的状态。
下面对每一个状态考虑输入0和1时的状态转移。
q: 输入1,模5是1,进入q1。
+q0: 设x=5n。
输入0,x=5n*2=10n,模5是0,故进入q0输入1,x=5n*2+1=10n+1,模5是1,故进入q1q1:设x=5n+1。
输入0,x=(5n+1)*2=10n+2,模5是2,故进入q2输入1,x=(5n+1)*2+1=10n+3,模5是3,故进入q3 q2:设x=5n+2。
形式语言与自动机答案蒋宗礼【篇一:形式语言第四章参考答案(蒋宗礼)】p> 解:所求正则表达式为:(0+1)*。
+⑵ {0, 1}。
解:所求正则表达式为:(0+1)+。
⑶ { x│x∈{0,1}且x中不含形如00的子串 }。
解:根据第三章构造的fa,可得所求正则表达式为:1*(01+)*(01+0+1)。
⑷ { x│x∈{0,1}*且x中不含形如00的子串 }。
++ +q1为终态时的正则表达式:0*1(1*(0(10)*111*1)*(0(10)*00*1)*)* q2为终态时的正则表达式:0*11*0((10)*(111*11*0)*(00*11*0)*)*q3为终态时的正则表达式:0*11*0(10)*1(11*11*0((10)*(00*11*0)*)*1)* q4为终态时的正则表达式:0*11*0(10)*11(1*(11*0((00*11*0)*(10)*)*11)*)*将以上5个正则表达式用“+”号相连,就得到所要求的正则表达式。
⑺ { x│x∈{0,1}且当把x看成二进制数时,x模5与3同余和x为0时,│x│=1且x≠0时,x的首字符为1}。
解:先画出状态转移图,设置5个状态q0、q1、q2、q3、q4,分别表示除5的余数是0、1、2、3、4的情形。
另外,设置一个开始状态q.由于要求x模5和3同余,而3模5余3,故只有q3可以作为终态。
由题设,x=0时,│x│=1,模5是1,不符合条件,所以不必增加关于它的状态。
下面对每一个状态考虑输入0和1时的状态转移。
q: 输入1,模5是1,进入q1。
+q0: 设x=5n。
输入0,x=5n*2=10n,模5是0,故进入q0输入1,x=5n*2+1=10n+1,模5是1,故进入q1q1:设x=5n+1。
输入0,x=(5n+1)*2=10n+2,模5是2,故进入q2输入1,x=(5n+1)*2+1=10n+3,模5是3,故进入q3 q2:设x=5n+2。
形式语言与自动机的发展和在计算理论中的作用2015060104020王桢形式语言是语言学衍生过来的,开始形式语言并没有用于研究计算机编程语言,而只是研究自然语言的结构。
在电子计算机出现以后,人们就马上想到用计算机来作自然语言的机械翻译。
可是这项工作并没有所成果,对自然语言的结构理解太片面化,翻译质量不理想也很难提高。
1956年,乔姆斯基发表了用形式语言方法研究自然语言的第一篇文章。
他对语言进行定义:给定一组符号,称为字母表,用∑表示。
又用∑*表示∑中字母组成的所有符号串的集合。
∑*的每个子集都是∑上的一个语言。
乔姆斯基的语言定义方法为人们所公认,一直沿用下来,乔姆斯基根据文法将语言分成3大类。
同时克林在研究神经细跑中,建立了识别语言的系统有穷状态自动机。
乔姆斯基发现自动机和文法分别从生成和识别去表达语言,并建立了形式文法和自动机之间的联系,证明语言的形式文法与自动机之间存在着如下的对应关系:①若某一语言能用图灵机来识别,则它就能用O 型文法生成,反之亦然;②若某一语言能用线性有界自动机来识别,则它就能用上下文敏感文法生成,反之亦然;③若某一语言能用后进先出自动机来识别,则它就能用上下文自由文法生成,反之亦然;④若某一语言能用有限自动机来识别,则它就能用有限状态文法生成,反之亦然。
这一成果将形式语言引入数学,使得形式语言真正诞生。
1960年,算法语言ALGOL60报告发表。
1961年,又发表了ALGOL60修改报告。
在这两个报告中,第一次使用一种称为BNF范式的形式方法来描述程序设计语言ALGOL60的语法。
不久,人们即发现BNF范式极其类似于形式语言理论中的上下文无关文法,从而打开了形式语言广泛应用于程序设计语言的局面,并给形式语言理论本身的研究以极大的推动,使它发展成为理论计算机科学的一个重要分支。
形式语言理论是从语言学衍生而来,作为一种理解自然语言的句法规律。
在发展过程中人们发现其在计算机语言中的作用,计算机语言在计算机科学中,形式语言通常作为定义编程语言和语法的基础。
形式语言与自动机的关系形式语言和自动机是计算机科学中的两个重要概念。
形式语言是人工定义的语言,用于描述计算机程序、编程语言等。
而自动机则是一种模型,用于描述计算机或类似的抽象计算设备的行为。
形式语言和自动机之间存在紧密的关系,它们相互影响并且相互依赖。
形式语言是自动机所处理的输入,而自动机则是对形式语言的识别和处理工具。
形式语言可以分为两类:自然语言和形式化语言。
自然语言是人类用于交流的语言,如中文、英语等。
形式化语言则是为了解决特定问题而设计的语言,如编程语言和数学符号。
自动机是一种描述计算过程的数学模型。
根据其行为特征,自动机可以分为有限状态自动机和无限状态自动机。
有限状态自动机通过有限个状态和转移函数来模拟计算过程,例如正则表达式和有限状态机。
无限状态自动机则用于描述无限计算过程,例如图灵机。
形式语言可以通过自动机来识别和生成。
通过使用自动机理论中的形式化方法,可以定义形式语言的语法规则,用于检查和验证形式语言的正确性。
例如,正则表达式利用有限状态自动机来验证字符串是否符合给定的模式。
自动机理论非常重要,它为形式语言的理解、识别和翻译提供了基础。
自动机可以用于解决许多计算机科学中的问题,如编译器设计、自然语言处理和人工智能等。
在实际应用中,形式语言和自动机的关系非常密切。
形式语言和自动机的结合使得计算机能够处理和理解各种复杂的语言和问题。
形式语言可以通过自动机的识别和转换来进行规约和优化,从而实现更高效的计算和通信。
总之,形式语言和自动机是计算机科学中不可分割的一对概念。
它们之间的关系互为因果,相互促进,为计算机科学的发展和应用提供了基础和支撑。
形式语言通过自动机的识别与转换表达计算过程,而自动机通过形式语言的使用来解决语言处理和编程问题。
在不断发展的计算机科学领域,形式语言和自动机的关系必将发挥更为重要的作用。
形式语言与自动机的关系形式语言与自动机的关系形式语言与自动机的关系研究新疆师范大学数理信息学院数学03-6班形式语言的直观意义,自动机的直观意义,形式语言的定义,形式语言的特征,语法的分类,自动机的定义,自动机的分类,各种自动机的定义,形式语言和自动的的关系,自动机的对语言的例子形式语言的定义;自动机的定义;形式语言和自动机的关系1,形式语言的直观意义直观地讲,形式语言是用来精确描述语言和它结构的手段。
它一重写规则α→β的α, β均为字符串。
形式来表示,其中,重写规则就是在包含α的字符穿中遇见规则左边的α时,α部分重新写为右边的β。
这样一个初设的字符串通过不断地运用重写规则,就可以到另一个字符串。
通过选择不同的规则并且以各种不同的顺序来运用最这些规定一个初始符,某规则以其为左部,一组规则就可以构成一个语法。
2,形式语言的定义形式语法是一个四元组G=(N, V, P, S), 其中N 是非终结符的有限集合,有时也称变量,它们相当于各种句法范畴。
V 是终结符的有限集合,若语法生成的是自然语言,这些终端语符就相当于这种语言中具体的词,终端语符集这种语言的词库,P 是以重写规则的有限集合,基本形式P {α→β},即" α改写为β" ,其中箭头表示指令,一条规则就是一个机械性的操作程序,用来演算它联系着的两侧语符集或语符序列之间的关系,而S 是一个特定的初始符;3,语法的分类乔姆斯在他的著名【文章】中根据重写规则将语法分成四类:正则语法,上下文有关语法,上下文无关语法;有这些语法生成的语言是正则语言,,上下文有关语言,上下文无关语言,递归数集合。
a 如果P 中的规则,满足如下的形式:A →Bx 或,A →x ,其中,A,B 是非终结符,x 是终结符,则G 称为正则语法(简称为FSG )。
b 如果P 中的规则,满足如下的形式:A →α, 其中,A 是非终结符, α是由N 和V 中字符所组成的字符串(或可表示为α∈(N V )*, *意味着它右边的字符可以重复0到任何多次),则G 称为上下文无关语法(简称为CFG )。
形式语言与自动机小结一个较好的理论,不仅继承着前人的知识,更要有自身的创新,要么提出新的定义,给出新的模型,以此为基础,经过严格的推理,论证,实验,得到一系列的结论。
学习和理解一个理论,便是要从根本的上去理解这个理论的思想,这就离不开定义与模型的学习。
形式的定义:形式的定义,便是基于对内容和规则的严格逻辑论证。
形式语言,就是探究语言的内容和规则。
形式语言与自动机理论,包含了形式语言(使用文法)和自动机的定义,包含了诸多语言的模型,前者比如正则语言,CFG,DFA,PDA等,后者比如even-even,回文,equal。
这些定义,随便找本书来,都能看到,也仅是看到,真正要去理解也不是一朝一夕便能做到。
需要在平时的学习中去仔细体会。
比如对于语言来说,所有自然语言,虽然有不同的字母,不同的语义,但都以一个基本的字母表,文字为原子,经过一定的语法,包括词法,句法,章法等形成语言的表达。
这此字母,文字,词,句等便是形式语言的内容,这些语法便是形式探究的规则。
形式的模型和作用:从形式和规则从发,采用文法,去讨论形式语言能够产生哪些词,不能够产生哪些词。
采用自动机去讨论一个语言,包含(接受)哪些词,不包含(不接受)哪些词;自动机能够做为一种有效语言的接收器模型,但自动机不仅仅只这种功能。
比如moole,mealy机产生的二进制取反,进位,求补等模型。
通过语言与自动机间的等价讨论与转化,再到不同语方间的比较,从dfa,到pda,pda采用了堆栈的思想,已经初具现在计算机的模型,但由于其有限的存储局限,进而发展到图灵机等更高级的计算模型,从上个世纪40年代至今,虽然计算机理论得到了不断的充实和发展,但根本的体系结构并没有离开图灵机的这个基本模型形式的局限:同时也要看到形式语言的局限,形式语言即然研究的是语言的内容与规则,便不需要对语言的语义了解,不做语层面的研究。
形式的依据:从形式的定义上可以知道,形式需要严格的逻辑论证,而不是主观上的,带有歧义的表达。
形式语言与自动机在自然语言处理与机器翻译中的应用自然语言处理(Natural Language Processing, NLP)和机器翻译(Machine Translation, MT)是近年来计算机科学领域中备受瞩目的研究方向。
在NLP和MT的背后,形式语言和自动机是关键的理论和工具。
本文将探讨形式语言与自动机在自然语言处理与机器翻译中的应用,并提供相关实例进行说明。
一、形式语言与自动机简介形式语言是一种用于描述、表示和处理语言结构的形式化工具。
形式语言包括正则语言、上下文无关语言、上下文有关语言和递归可枚举语言等。
形式语言理论的基础是自动机理论。
自动机是形式语言理论的核心概念,它是一种用于模拟描述、产生和识别形式语言的计算模型。
常见的自动机包括有限状态自动机(Finite State Automaton, FSA)、下推自动机(Pushdown Automaton, PDA)和图灵机(Turing Machine, TM)等。
二、形式语言与自动机在自然语言处理中的应用形式语言与自动机在自然语言处理中发挥着重要作用,以下将介绍其中几个具体应用场景。
1. 语法分析语法分析是自然语言处理中的重要任务,它用于解析句子的结构和语法关系。
上下文无关语法(Context-Free Grammar, CFG)是描述自然语言结构的常用形式语言模型。
语法分析器利用上下文无关语法和相应的自动机算法来分析句子的句法结构,从而实现语义标注、句法树生成等功能。
2. 词法分析词法分析是将自然语言文本中的单词序列转换为词汇单元的过程。
正则语言是描述有限状态自动机的形式语言,词法分析器通常使用正则表达式来识别和提取不同类型的词汇。
通过形式语言和自动机模型,可以构建高效的词法分析器,实现对文本进行分词、词干提取、词性标注等操作。
3. 语言模型语言模型用于计算句子的概率或可能性。
N-gram模型是自然语言处理中常用的语言模型。
形式语言与自动机理论
正:形式语言和自动机理论两者息息相关,是计算机科学的基础学科,在研究计算机知识及其在计算过程中的表示和处理过程中起着至关重要的
作用。
形式语言又称形式手段语言,指的是以符号代表内容的一种语言,它
可以通过这些符号表达一定的概念,完成一定的表示。
形式语言是计算机
科学家们研究计算机知识表示和处理的基础,采用的算法也是建立在形式
语言基础之上的。
形式语言的重要性在于它使研究计算机知识表示和处理
的基本问题更加清晰,它使研究者可以更好地理解计算机系统的表示和处
理过程,并可以用形式语言描述它们。
自动机理论是一门关于计算机程序及其行为的理论,它利用数学形式
描述一类行为,以此来抽象表示计算机程序的行为。
自动机理论主要用来
描述可以描述和处理其中一种形式语言的计算机程序。
它可以帮助研究者
了解计算机系统的行为,以及计算机程序如何处理和解释所提供的输入。
总而言之,自动机理论可以将形式语言表示的概念和逻辑运算建模成一种
数学模型,从而实现与形式语言产生互动的能力。
言和自动机理论相互结合,使计算机系统具有了更强大的计算能力。
形式语言与自动机的关系研究新疆师范大学数理信息学院数学03-6班摘要:形式语言的直观意义,自动机的直观意义,形式语言的定义,形式语言的特征,语法的分类,自动机的定义,自动机的分类,各种自动机的定义,形式语言和自动的的关系,自动机的对语言的例子基本关键词:形式语言的定义;自动机的定义;形式语言和自动机的关系1,形式语言的直观意义α→的直观地讲,形式语言是用来精确描述语言和它结构的手段。
它一重写规则βα,均为字符串。
重写规则就是在包含α的字符穿中遇见规则左边的形式来表示,其中,βα时,α部分重新写为右边的β。
这样一个初设的字符串通过不断地运用重写规则,就可以到另一个字符串。
通过选择不同的规则并且以各种不同的顺序来运用最这些规则,如果指定一个初始符,某规则以其为左部,一组规则就可以构成一个语法。
2,形式语言的定义形式语法是一个四元组G=(N, V , P, S ),其中N 是非终结符的有限集合,有时也称变量,它们相当于各种句法范畴。
V 是终结符的有限集合,若语法生成的是自然语言,这些终端语符就相当于这种语言中具体的词,终端 语符集 这种语言的词库,P 是以重写规则的有限集合,基本形式P }{βα→,即""βα改写为,其中箭头表示指令,一条规则就是一个机械性的操作程序,用来演算它联系着的两侧语符集或语符序列之间的关系,而S 是一个特定的初始符;3,语法的分类乔姆斯在他的著名【文章】中根据重写规则将语法分成四类:正则语法,上下文有关语法,上下文无关语法;有这些语法生成的语言是正则语言,,上下文有关语言,上下文无关语言,递归数集合。
a 如果P 中的规则,满足如下的形式:x A Bx A →→或,,其中,A,B 是非终结符,x 是终结符,则G 称为正则语法(简称为FSG )。
b 如果P 中的规则,满足如下的形式:α→A ,其中,A 是非终结符, α是由N 和V 中字符所组成的字符串(或可表示为()*∈V N α,*意味着它右边的字符可以重复0到任何 多次),则G 称为上下文无关语法(简称为CFG )。
d 如果P 中的规则,满足如下的形式:αγββα→A ,其中,A 是非终结符,γβα,,,是字符串,且γ至少包含一个字符,则G 称为上下有无关语法(简称为CSG )。
d 如果P 中的规则,满足如下的形式:其中,α,β是字符串,则G 称为无限制重写系统。
对于以上任何一种语法,两个字符串之间一次派生关系⇒可定义为:如果y x →是P 中的规则,βαβαy x ⇒。
字符串α,β有多次派生关系*⇒则是说,通过多次应用一次派生关系,从α可派生出β,并记为α*⇒β: n αβαα==,0,而对n i i n i +⇒-=αα,1,....0。
给定以语法,其语言定义为所有合法终结字符串的集合。
合法终结字符串是指由初始符S 出发,运用重写规则而派生得终结字符串,即,(){}ααα**;⇒∈=S V G L例子:假设G=(N, V , P, S), N={S, A} , V={0, 1}, P={0,0,1→→→A A A A S } 则 ,{}110)(≥=m G L m是正则语法,在V={0, 1}上它所对应的正则表达式是100*。
形式语言的特征:⑴ 高度抽象化(采用形式化的手段,专用符号,数学公式来描述语言的,结构关系,这种关系是抽象的)。
⑵是一套演绎系统(形式语言本身的目的就是要用有限的规则来推导语言中无限的句子)。
⑶具有算法的特点4,自动机的直观意义,如果说语法时用来精确描述语言的和它的结构,那么自动机便是用来机械地刻画对输入字符串的处理过程。
最初,自动机(automation )得得提出时用来解决一个数学上的难题,后来又被试图模仿人的感觉和思维。
自动机有非常简的部件和操作组成:输入/输出带时用来存放输入字符串以及输出字符(它们可以时同一带,也可以是不同一条带),读/写头用来阅读输入/输出带上目前所处理的字符及位置,在带上写下一个字符,并可以在带上向左或向右移动一个位置,让读/读写头做出相应的操作,改变自己的状态,并最终决定是否接受输入字符串为合法。
当给定以字符串时,自动机通过自己的读/写头扫描,修改这一字符串,并改变自己的状态。
如果自动机顺利地进入终止状态,且输入/输出带 满足一定的条件,我们称自动机接受这一字符串。
这个过程称为识别。
5,自动机的定义5.1定义:确定有限自动机是以个 七元组()F U I Q M ,q ,,,,,σδ=,其中{}是自动机内部状态s s Q =,且Q 是有限集合 }{是输入字符αα=I ,且I 是有限集合{}是输出字符u u U =,且U 是有限集合δ是 定义域为 I Q ⨯,值域为Q 的状态转移函数 σ是 定义域为 I Q ⨯,值域为U的有限集合q 为初始状态 Q F ⊆为终止状态给定一字符串 n a a a a ...10=初始时,有限自动机M 处于状态0q ,从0a 开始,根据状态转移函数δ转移到另一状态),(001a q q δ=,根据输出函数σ在一输出带上印出字符()00,a q σ,并 将读/写头在输入/输出带上各向右移动一格。
此时,M 便处于状态1q ,读字符1a 。
重复以上步骤,一直到M 读完n a ,如果,M 处于某中移终止状态,即F 的一个元素,那么,我们就称M 接受字符串a ;否则,M 读完n a 但不处于任一终止状态,或者,在其过程中δ没有定义,我们称M 不接受字符串a 。
由M 定义的语言()M T 就是被M 接受的字符串全集5.2定义:下推自动机是一个()∑Γ=F Z q Q M ,,,,,0,0δ,其中 }{是一个内部状态s s Q =,且Q 是有限集合 }{∑=是输入带上字符u u ,且∑是有限集合{u u =Γ是栈上字符},且 Γ是有限集合Q q ∈0为初始状态Γ∈0Z 为栈中一个特殊符号,表明栈底Q F ∈为终止状态集}{()Γ⨯⨯∑εδ Q 是定义域为,值域为∑⨯*Q 的有穷子集的状态转移映照。
5.3定义:图灵机是一个七元组 ()∑-Γ=F q Q M ,0,,,,,δ,其中}{是一个内部状态s s Q =,且Q 是有限集合 }{∑=是输入带上字符u u ,且∑是有限集合 }{∑=ΓB ,B 表示空白字符;δ是定义域为∑⨯Q ,值域为}{∑⨯⨯S L R Q ,,转移函数,R, L 和 S 分别指右移一格,左移一格以及停止不动;— 属于Q-I 的空格元素0q 为初始状态;Q F ∈为终止状态集给定字符串a ,存放域 它的输入/输出带上,开始时,M 处于状态0q ,它的读/写头扫描着a 的最左字符。
根据转移函数δ的定义,即对于目前状态及正扫描着的字符,M 改变当前状态,读/写头扫描的字符,以及读/写头的位置。
重复这个步骤直至M 进入某一终止状态;或者,在其过程中δ没有定义,即M 停止工作。
前者称之为M 接受字符串a ,后者称之为M 不接受字符串a 。
严格地讲,我们对于M 的每个情况,定义格局为(q ,a ,i ),这里,Q q ∈,a 是字符串,i 是整个数,表示读/写头相对于a 左端的距离。
图灵机M 通过如下转移动作引起格局变化;假设()11,,....,21+≤≤n i i A A A q n 是当前M 的格局,如()(),1,,,,n i A q R A p i ≤≤=δ则()()1,........,,....,112121++-i A AA A A A q M i A A A q n i i n即M 的读/写头在i 位置上原来的i A 就消失了,并且读/写头向右移动一格,从i 变化为1+i 。
如果()(),2,,,,n i A q L A p i ≤≤=δ则 ,()()1,......,,...,112121---+i A AA A A A q M i A A A q n i i n即M 的读/写头在i 位置上原来的i A 就消失了 ,并且读/写头向左移动一格(从i 变化为i-1);当i=n+1,即M 的读/写头超出原字符串的右端,注释空白符时,如果()()B q R A P ,,,δ=,则,()()2,...,1,...,2121++n A A A A q M n A A A q n n 如果()()B q l A p ,,,δ=,则()()n A A A A q M n A A A q n n ,...,1,...,2121+。
对两个格局X,Y ,如果XMY ,称Y 是由通过一次动作而得。
如果,Y 是由X 通过次数动作而得,则记为*_*由图灵机M 接受的 语言则定义为:(){()1,,,0*d q a a M T ∑∈=5.4定义:线性带线自动机是一个七元组()∑-Γ=F q Q M ,,,,,,0δ,其中{}是自动机的内部状态s s Q =,且,Q 是有限集合 }{∑=是输入带上字符u u ,且∑是有限集合}{∑=ΓB ,B 表示空白字符; δ是定义域为∑⨯Q ,值域为}{∑⨯⨯S L R Q ,,转移函数,R, L 和 S 分别指右移一格,左移一格以及停止不动;— 属于Q-I 的空格元素;0q 为初始状态;Q F ∈为终止状态集和一般的图灵机不同的是∑含有两个特定符号,,⊄$,分别是输入字符左右两端的标志,他们的作用是组织读/写头移出左右两界。
其他部分和图灵机略有不同。
形式语言与自动机的关系形式语言学也称代数语言学,它研究一般的抽象符号系统,运用形式模型对语言即人工语言,自然语言进行精确描述和它结构的手段,而自动机是用来机械地刻画对输入的语符序列进行检验和识别的处理过程。
从识别能力的角度上,有限自动机,下推自动机,带线自动机和图灵机分别等于正则语言,上下文无关语言,上下文有关语言,和递归可数集合。
更确切地说,如果()S P V N G ,,,=是正则语言,则,存在有限自动机()F q U I Q M ,,,,,,σδ=,使得()()G L M T =;反之也然,对下推自动机,带线自动机,图灵机和上下文无关语言,上下文有关语言,和递归可数集合等其他三种情况,这种等价关系也成立。
例子:下面看自动机的对语言的识别过程;自动机()∑-Γ=F q Q M ,0,,,,,δ,{}B b a ,,,#=Γ, {}10,q q Q =; {}b a ,=∑,其中,# 做出语符,{}0q F =;(){()()()()}()}0110000,,#,,#,,,,q L q q q a q L q b →→→=δ;如果输入序列baaab ,自动机的识别过程如下;a) 当M 在 0q 时,读入字符b ,纸带上向左移,控制器还处于状态0qb) 读写头读入字符a ,输出语符 #,纸带没有移动,控制器处于状态1qc) 读写头在状态 1q 读 # 时,纸带向左移,控制器处于状态0qd) 读写头读入字符a ,输出语符 #,纸带没有移动,控制器处于状态1qe) 读写头在状态 1q 读 # 时,纸带向左移,控制器处于状态0qf) 读写头读入字符a ,输出语符 #,纸带没有移动,控制器处于状态1qg) 读写头在状态 1q 读 # 时,纸带向左移,控制器处于状态0qh) 读写头读入字符b ,纸带上向左移,控制器还处于状态0qi) 停下当识别完语符列baaab 后,自动机正好停止在终止状态0q ,所以语符列baaab 被此自动机所接受,因此baaab是一个语句。