若要求二型文法中产生式的右端为ɑB或ɑ,其中ɑ∈∑,B∈V,则得到三型文法,或称正则文法,又称右线性文法,由此生成的语言称为三型语言,或正则语言,或右线性语言。
以G0,G1,G2,G3分别代表上述四类文法(有人允许二型文法的产生式中β为空),以L 0,L 1,L 2,L 3分别代表四类语言,又以L r表示由递归集构成的语言类,则有L 3嶅L 2嶅L 1嶅L r嶅L 0,这些包含都是真包含。例如,
为任意一个由第i台图灵机接受的语句}是零型语言而不是递归集
为任意一个不能由第i个一型方法产生的语句}是递归集而不是一型语言。L1={ɑnbncn|n≥1}是一型而非二型语言L2={ɑnbn|n≥1}是二型而非三型语言。L3={ɑn|n≥1}是三型语言,这里ɑn表示n个ɑ的连接。 形式语言和自动机 上述文法和语言分层方法,是乔姆斯基于1959年提出来的,因而称为乔姆斯基分层。这种分层法提出不久,人们即发现它和自动机的分类有密切的关系。到1964年,四类文法及其语言全部在自动机中找到了它们所对应的语言。零型、 一型、 二型和三型语言正好分别是图灵机、非确定型线性有界自动机、非确定型下推自动机和有限自动机接受的语言。确定型和非确定型图灵机接受的语言是相同的,确定型和非确定型有限自动机接受的语言也是相同的,因此可不加区分。确定型下推自动机接受的语言集合是非确定型下推自动机接受的语言集合的真子集,称为确定型上下文无关语言。至于非确定型线性界限自动机和确定型线性界限自动机接受的语言集合是否相同,这是一个著名的尚未解决的问题,简称LBA问题。 形式语言的代数性质 研究形式语言的第三种途径是把它作为一种代数结构来考察。可以施行于语言的代数运算包括求交(L1∩L2)、求并(L1L2)、求差(L1-L2)、求补(~L,即∑*-L)、反演(L-1,ɑb∈L凮bɑ∈L-1)、乘积(L1·L2,W1∈L1,W2∈L2→W1W2∈L1·L2)、乘幂闭包(L*,W ∈L→∈L*,n≥0)、无空字乘幂闭包(L*减去空字ε)、同态(L1→L2)、无空字同态、置换【(b(L)、L 中每个字母置换成一个语言、字母串置换成与串中各字母对应之语言的乘积)】、正则置换(置换语言都是正则语言)、L1对L2左商(L2\L1={Q│PQ∈L1,P∈L2})、右商(L1/L2)等。早在1961年即有人指出:一个上下文无关语言和一个正则语言之交仍是上下文无关语言。不久人们发现,这一结果具有相当的普遍性:几乎所有重要的语言族都具有在与正则语言相交下封闭的性质。从60年代中期开始,研究某些语言族在某些代数运算下的封闭性已经成为形式语言代数研究的一个中心课题。它不但表明许多已知的重要语言族具有优美的封闭性质,而且还是生成新的语言族的有力工具。在这方面,最重要的成果之一就是金斯堡等人在1966年提出的抽象语言族(AFL)思想。
乔姆斯基分层的四型语言在一些代数运算下的封闭性如表1所列。
表2
形式语言的研究涉及许多判定问题,一些已有的成果如表2。表中D表示可判定;U表示不可判定;G表示文法,L表示语言。