当前位置:文档之家› 形式语言与自动机理论

形式语言与自动机理论

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的描述。

实际上,巴克斯范式就是上下文无关文法(context free grammar)的一种表示形式。

这一成功,使得形式语言在20世纪60年代得到了很大的发展。

尤其的上下文无关文法,被作为计算机程序设计语言文法的最佳近似描述得到了深入的研究。

后来,人们又将该文法用到了模式匹配、模型化处理等方面,这些内容都是算法描述和分析、计算复杂性理论、课计算性等研究的基础。

实际上,形式语言与自动机理论除了在计算机科学与技术领域中的直接应用之外,更在计算机科学与技术学科人才的计算思维能力的培养中占有极其重要的地位,无怪乎美国推行的GRE考试中总有相当比例的题与形式语言与自动机理论有关。

此外,美国的一些计算机科学家还将一个人是否学习并掌握有关形式语言和自动机理论方面的知识、是否有相应的修养作为衡量一个人是否受到过良好的计算机科学学科训练的一个标准。

从计算机科学与技术学科的人才来看,以下几个方面的专业能力是
非常重要的。

•计算机思维能力
•算法设计与分析能力
•计算机系统的认知、分析、开发和应用能力,简称为系统能力
计算机思维能力的培养要求是计算机科学与技术学科本身所决定的。

计算机科学与技术学科所要解决的根本问题是什么能被(有效地)自动计算。

现代计算机技术要求,要想实现有效的自动化,必须经过抽象进行形式化处理。

这就要求相应的从业人员能够研究和理解形式化的对象,并用这一有力武器解决实际问题。

所以,只有具备了“计算机思维”能力,才能进行“什么能且如何被有效地自动计算”这一计算机学科的主题所包含的工作,这些课用图1-6表示。

图1-6 自动计算、形式化与“计算机思维”
基本的计算机思维能力的培养主要是由基础理论系列课程实现的,该系列主要由数学类课程和抽象程度比较高的课程组成,包括数学分析、高等代数、数值分析、概率与数理统计、集合与图论、近世代数、数理逻辑,以及形式语言与自动机理论、数学建模等。

它们构成的是一个梯形训练系统。

在此系统中,连续数学、离散数学、计算模型3个部分的内容按阶段分开,所形成的3个阶段对应于本学科的学生在学习期间思维方式和能力变化与提高过程的三个步骤。

图1-7表达出这样的培养过程。

中学数学数学分析离散数学形式语言与自动机理论
具体、静止变量、运动
(基本运算系统)(计算系统)
运算范围实数抽象集合
特征孤立、单一的计算机一般、形式化的计算
(实例计算)(类计算、模型计算)
图1-7 “计算机思维”梯形训练系统
学生在中学阶段所学的数学研究的是具体、静止对象的运算。

到了数学分析阶段,通过连续变量和函数,把运动带到了问题考虑的范围中。

而到此为止,运算一直被限定在实数范围内,完成的计算可称为实例计算。

根据计算机运算的“可行性”要求,到了离散数学阶段,开始考虑基本运算系统,该系统是更抽象、更一般的系统,它的运算对象呈现出的是在更高级别上抽象出来的形式化特征,而它的运算往往呈现出模型化。

可以将离散数学和形式语言与自动机理论的运算范围统一看成是抽象的集合。

到此,所考虑的运算对象就是具体、静止的对象变成了形式和模型化的计算,而一般、形式化的计算正是计算机科学与技术学科所研究的计算。

从图1-7可以看出,离散数学中给出的是基本运算系统,而计算机科学与技术学科的工作者应该构建类计算和模型计算系统,要培养这种能力,形式语言与自动机理论因其研究计算系统而成为最佳知识载体。

考虑的对象不同所需要的思维方式和能力就不同。

正是通过这一系统的教育,在不断升华的过程中,逐渐培养学生的抽象思维能力和逻辑思维能力。

与此同时,创新意识的建立和创新思维的培养液在这个教育过程中不断进行着。

此外,这组课程所包含的内容还会在后续课程中,甚至今后的研究工作中被使用。

经验表明,这组课程是对本科生进行所要求的思维训练的最佳知识载体。

综上所述,形式语言与自动机理论不仅是计算机科学与技术学科的重要的基础理论,有着广泛的应用,而且还在计算机科学与技术学科的人才培养中占有十分重要的地位,是一个优秀的计算机科学工作者必修的一门课程。

相关主题