編譯原理——四種文法類型

首先定義一個產生式

  α→β
  • 0型文法定義:

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

β∈(VN∪VT)*

對產生式沒有任何限制

例如:A0→A0 ,  A1→B

0型文法說明:

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