3.4形式語言鳥瞰

  • 喬姆斯基於1956年建立形式語言體系,他把文法分成四種類型: 0, 1 ,2, 3型
  • 與上下文無關文法一樣,它們都由四部分組成但對產生式的限制有所不同
    • G=(VT, VN,S,P)
      • VT :終結符(Terminal)集合(非空)
      • VN :非終結符(Noterminal)集合(非空) ,且VT∩VN
      • S :文法的開始符號,S∈VN
      • P :產生式集合(有限)
  • 0型(短語文法,圖靈機)
    • 產生式形如:α→β
    • 其中α∈(VT∪VN)*且至少含有一個非終結符,β∈(VT∪VN)*
  • 1型(上下文有關文法,線性界限自動機)
    • 產生式形如:α→β
    • 其中|α|<=|β|,僅S→ε
  • 2型(上下文無關文法,非確定下推自動機)
    • 產生形式如A→β
    • 其中:A∈VN,β∈(VT∪VN)*
  • 3型(正規文法,有限自動機)
    • 產生式形式如A→αB或A→α(右線性文法)
    • 其中:α∈VT*;A,B∈VN(右線性文法)
    • 產生式形式如A→Bα或A→α(左線性文法)
    • 其中:α∈VT*;A,B∈VN(左線性文法)
  • 四種類型文法描述能力比較
  •  

上下文無關文法與上下文有關文法

  • L5={anbn|n>=1}不能由正規文法產生,但可以由上下文無關文法產生

   G5(S):S→aSb|ab

  • L6={anbncn|n>=1}不能由上下文無關文法產生,但可以由上下文有關文法產生

四種類型描述能力比較

程式設計語言不是上下文無關語言,甚至不是上下文有關語言

 對於現今的程式設計語言,在編譯程式中,仍然採用上下文無關文法來描述其語言機構