編譯原理4種文法類型


  • 1956年,Chomsky建立形式語言的描述。
  • 通過對產生式的施加不同的限制,Chomsky把文法分為4種類型

 

  首先定義一個產生式

  α→β
  • 0型文法定義:

0型文法(PSG): α∈(VN∪VT)* ,且至少含一個VN

β∈(VN∪VT)*

對產生式沒有任何限制

例如:A0→A0 ,  A1→B

0型文法說明:

0型文法也稱為 短語文法
      一個非常重要的理論結果是,0型文法的能力相當於圖靈機(Turing)。或者說,任何0型語言都是遞歸可枚舉的;反之,遞歸可枚舉集必定是一個0型語言。
      對0型文法產生式的形式作某些限制,以給出1,2和3型文法的定義。
(注意)
文法G 定義為四元組(V N ,V T ,P,S)
¨V N :非終結符集
¨V T :終結符集
¨P :產生式集合(規則集合)
¨S :開始符號(識別符號)
 
  • 1型文法(上下文有關文法context-sensitive):
  對任一產生式α→β,都有 |β|>=|α|, 僅僅 S→ε除外
  產生式的形式描述:α1Aα2→α1βα2 
  (其中,α1、α2、β∈(V N∪V T)*,β≠ε,A∈VN)
  即:A只有出現在α1α2的上下文中,才允許用β替換。
  產生的語言稱“上下文有關語言”
 
  例如:0 A0→011000 1A1→101011
 
  • 2型文法(CFG):對任一產生式α→β,都有α∈VN,β∈(VN∪VT)*
  產生式的形式描述:A→β(A∈V N)
  即β取代A時,與A所處的上下文無關。
  產生的語言稱“上下文無關語言”
  例如:G[S]:S→ 01  S→0S1
 
  • 3型文法(RG):也稱正規文法
  每個產生式均為 “A→aB”或“A→a” —— 右線性
    “A→Ba”或“A→a” —— 左線性
  其中,A、B∈V N,a∈V T*
  產生的語言稱“正規語言”
  例如:G[S]: S→ 0A | 0
  A→1B | B
  B→1 | 0
 
       4 個文法類的定義是逐漸增加限制的,因此每一種正規文法都是上下文無關的,每一種上下文無關文法都是上下文有關的,而每一種上下文有關文法都是 0 型文 法。    
 
  四種文法之間的關系是:包含關系 . (原因:將產生式做進一步限制而定義 的。
 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM