四類文法

喬姆斯基把方法分成四種類型,即0型、1型、2型和3型。這幾種文法類型的概念一定要掌握,是一個非常重要的考點。對於這幾種文法,一般書上都只有簡單的概念介紹,比較抽象,所以很多學員都沒有真正理解。下面我將把概念結合例題進行講解。 

0型文法 

設G=(VN,VT,P,S),如果它的每個產生式α→β是這樣一種結構:α∈(VN∪VT)*且至少含有一個非終結符,而β∈(VN∪VT)*,則G是一個0型文法。0型文法也稱短語文法。一個非常重要的理論結果是:0型文法的能力相當於圖靈機(Turing)。或者說,任何0型文語言都是遞歸可枚舉的,反之,遞歸可枚舉集必定是一個0型語言。0型文法是這幾類文法中,限制最少的一個,所以我們在試題中見到的,至少是0型文法。 

1型文法 

1型文法也叫上下文有關文法,此文法對應於線性有界自動機。它是在0型文法的基礎上每一個α→β,都有|β|>=|α|。這裏的|β|表示的是β的長度。 

注意:雖然要求|β|>=|α|,但有一特例:α→ε也滿足1型文法。 

如有A->Ba則|β|=2,|α|=1符合1型文法要求。反之,如aA->a,則不符合1型文法。 

2型文法 

2型文法也叫上下文無關文法,它對應於下推自動機。2型文法是在1型文法的基礎上,再滿足:每一個α→β都有α是非終結符。如A->Ba,符合2型文法要求。 

如Ab->Bab雖然符合1型文法要求,但不符合2型文法要求,因爲其α=Ab,而Ab不是一個非終結符。 

3型文法 

3型文法也叫正規文法,它對應於有限狀態自動機。它是在2型文法的基礎上滿足:A→α|αB(右線性)或A→α|Bα(左線性)。 

如有:A->a,A->aB,B->a,B->cB,則符合3型文法的要求。但如果推導爲:A->ab,A->aB,B->a,B->cB或推導爲:A->a,A->Ba,B->a,B->cB則不符合3型方法的要求了。具體的說,例子A->ab,A->aB,B->a,B->cB中的A->ab不符合3型文法的定義,如果把後面的ab,改成“一個非終結符+一個終結符”的形式(即爲aB)就對了。例子A->a,A->Ba,B->a,B->cB中如果把B->cB改爲B->Bc的形式就對了,因爲A→α|αB(右線性)和A→α|Bα(左線性)兩套規則不能同時出現在一個語法中,只能完全滿足其中的一個,才能算3型文法。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章