終結符,通俗的說就是不能單獨出現在推導式左邊的符號,也就是說終結符不能再進行推導。不是終結符的都是非終結符。非終結符可理解為乙個可拆分元素,而終結符是不可拆分的最小元素。如:有α → β ,則α 必然是個非終結符。一般書上把非終結符用大寫字母表示,而終結符用小寫字母表示。識別符號就是開始符。由文法產生語言句子的基本思想是:從識別符號開始,把當前產生的符號串中的非終結符號替換為相應規則右部的符號串,直到最終全由終結符號組成。這種替換過程稱為推導或產生句子的過程,每一步成為直接推導或直接產生。
(非終結符:a,b,c,d,終結符:a,b,c,d)
0型文法,產生式左右部可以使用"非終結符"和"終結符"隨意組合,但左部不能為空,如daabb->ccdd;
1型文法,在0型文法的基礎上,要求右部的符號長度大於左部(空除外),如aabb->ccdddd
2型文法,在1型文法的基礎上,要求左部必須由非終結符號組成,如ab->ccddddd
3型文法,在2型文法的基礎上,產生式必須型如:a->aa|a或a->aa|a,比如:a->aa,a->aa,這些都不是
下面給出4型文法的形式化描述:
設g=(vn,vt,p,s),如果它的每個產生式α→β是這樣一種結構:α∈( vn∪vt )*且至少含有乙個非終結符,而β∈( vn∪vt )*,
則g是乙個0型文法。
0型文法也稱短語文法。
乙個非常重要的理論結果是,0型文法的能力相當於圖靈機(turing)。
或者說,任何0型語言都是遞迴可列舉的;
反之,遞迴可列舉集必定是乙個0型語言。[@more@] 對0型文法產生式的形式作某些限制,以給出1,2和3型文法的定義。
設g=(vn,vt,p,s)為一文法,若p中的每乙個產生式α→β均滿足|β|≥|α| ,
僅僅s→ε除外,則文法g是1型或上下文有關的。
在有些文獻給的定義中,將上下文有關文法的產生式的形式描述為
α1aα2→α1βα2,其中α1、α2和β都在( vn∪vt )*中(即在v*中),
β≠ε,a在vn中。
這種定義與前邊的定義等價。但它更能體現"上下文有關"這一術語,
因為只有a出現在α1和α2的上下文中,才允許用β取代a。
設g=(vn,vt,p,s),若p中的每乙個產生式α→β滿足:
α是一非終結符,β∈( vn∪vt )*則此文法稱為2型的或上下文無關的。
有時將2型文法的產生式表示為形如:a→β其中a∈vn,
也就是說用β取代非終結符a時,與a所在的上下文無關,
因此取名為上下文無關文法。
設g=(vn,vt,p,s),若p中的每乙個產生式的形式都是a→ab或a→a,
其中a和b都是非終結符,a是終結符,則g是3型文法或正則文法。
多數程式語言的單詞的語法都能用正則文法或3型文法來描述。
3型文法g=(vn,vt,p,s)的p中的規則有兩種形式:
一種是前面定義的形式,即:a→ab或a→a其中a,b∈vn ,a∈vt*,
另一種形式是:a→ba或a→a,前者稱為右線性文法,後者稱為左線性文法。
正規文法所描述的是vt*上的正規集。
四個文法類的定義是逐漸增加限制的,因此每一種正規文法都是上下文無關的,每一種上下文無關文法都是上下文有關的,而每一種上下文有關文法都是0型文法。稱0型文法產生的語言為0型語言。上下文有關文法、上下文無關文法和正規文法產生的語言分別稱為上下文有關語言、上下
文無關語言和正則語言。
喬姆斯基文法
根據對產生式施加的限制不同,喬姆斯基 chomsky 定義了四類文法和語言。0型文法 短語結構文法或無限制文法,可使用任何的語法描述形式 1型文法 也叫上下文有關文法,其描述能力相當於線性有界自動機,語法形式如下 xsy xay。也就是說,s推導出a是和上下文x,y相關的,即s只有在上下文x,y的環...
喬姆斯基正規化
在電腦科學中,乙個形式文法是chomsky 正規化的,當且僅當所有產生規則都有如下形式 a bc 或 a 或 s 這裡的 a,b 和 c 是非終結符,是終結符 表示常量值的符號 s 是開始符號,而 是空串。還有,b 和 c 都不可以是開始符號。所有的 chomsky 正規化的文法都是上下文無關,反過...
喬姆斯基生成語法 喬姆斯基的轉換生成語法理論
無論是分析哲學還是歐洲大陸哲學,都重視研究語言,這是當代西方哲學的乙個重要特徵,語言不能脫離世界,語言只有表現世界才有它正真的存在。當代美國語言大師喬姆斯基首創了轉換生成語法理論,正是這種轉換生成語法在語言中挑起了一場革命。它標誌著西方語言學的研究,尤其是美國的語言學界研究進入了乙個嶄新的時代,即喬...