3.4形式語言鳥瞰
- 喬姆斯基於1956年建立形式語言體系,他把文法分成四種類型: 0, 1 ,2, 3型
- 與上下文無關文法一樣,它們都由四部分組成但對產生式的限制有所不同
- G=(VT, VN,S,P)
- VT :終結符(Terminal)集合(非空)
- VN :非終結符(Noterminal)集合(非空) ,且VT∩VN=Ø
- S :文法的開始符號,S∈VN
- P :產生式集合(有限)
- G=(VT, VN,S,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}不能由上下文無關文法產生,但可以由上下文有關文法產生
四種類型描述能力比較
程序設計語言不是上下文無關語言,甚至不是上下文有關語言
對於現今的程序設計語言,在編譯程序中,仍然採用上下文無關文法來描述其語言機構