注:其中V表示变量集,T表示终极符集,P为产生式,S表示开始符号。例如:A属于V,a属于T
P:S->aA,A->a(产生式)。文中α,β代表属于变量和终极符。
设G=(V,T,P,S),则
(1)G叫作0型文法(type 0 grammar),或短语结构文法(phrase structure grammar,PSG),其对应的语言叫作0型语言或者短语结构(PSL)、递归可枚举集(recursively enumerralble)。对应的有其用法:设G=(V,T,P,S),如果它的每个产生式α→β是这样一种结构:α∈(V∪T)*且至少含有一个非终结符,而β∈(V∪T)*,则G是一个0型文法。0型文法也称短语文法。一个非常重要的理论结果是:0型文法的能力相当于图灵机(Turing)。或者说,任何0型文语言都是递归可枚举的,反之,递归可枚举集必定是一个0型语言。0型文法是这几类文法中,限制最少的一个。
(2)上下有关文法又叫作1型文法。此文法对应于线性有界自动机。它是在0型文法的基础上每一个α→β,都有|β|>=|α|。这里的|β|表示的是β的长度。
注意:虽然要求|β|>=|α|,但有一特例:α→ε也满足1型文法。
如有A->Ba则|β|=2,|α|=1符合1型文法要求。反之,如aA->a,则不符合1型文法。
(3)上下无关语言文法,又称2型文法。它对应于下推自动机。2型文法是在1型文法的基础上,再满足:每一个α→β都有α是非终结符。如A->Ba,符合2型文法要求。
如Ab->Bab虽然符合1型文法要求,但不符合2型文法要求,因为其α=Ab,而Ab不是一个非终结符。
(4)3型文法也叫正规文法(正则文法),它对应于有限(穷)状态自动机。它是在2型文法的基础上满足:A→α|αB(右线性)。在此有别的说法,就是A→α|Bα(左线性)也满足。
如有:A->a,A->aB,B->a,B->cB,则符合3型文法的要求。
总结一下这个文法体系的形成。
首先是短语文法,也就是0型文法;在此基础上加以条件的约束,α——>β 后者长度要大于前者。于是1型文法即上下文有关文法诞生了。再在此基础上加上条件限制,让α只能为变量串,不允许有终极符。于是有了上下文无关文法。再来就是,再添加限制条件,也就是产生式的右端必须得有终极符。这就是正则文法。
抛砖引玉……
(查看新博客) by the_fire