喬姆斯基(Chomsky)按產(chǎn)生式的類型把文法分為四種類型:0辞做、1、2衫嵌、3型文法。
*在下文中的產(chǎn)生式中彻秆,箭頭左邊的大寫字母為嚴格的非終結(jié)符楔绞,而其左邊的小寫字母不嚴格要求為非終結(jié)符,如[0型文法]中的第2條產(chǎn)生式唇兑。
【0型文法】
產(chǎn)生式形式:α→β
要求:箭頭左邊的α至少含有一個非終結(jié)符酒朵,其余不加任何限制
????例如,G:C→AaB
? ? ? ? ? ? ? ? ? ? ?aA→a
? ? ? ? ? ? ? ? ? ? ?B→b|Bb
【1型文法】
產(chǎn)生式形式:α→β
要求:|α|≤|β|(產(chǎn)生式左端的長度<=右端的長度)扎附,S→ε除外蔫耽。
例如G: C→aAB
? ? ? ? ? ? ? ?aA→aBa
? ? ? ? ? ? ? ?B→b|Bb?
【2型文法】(上下文無關文法)
產(chǎn)生式形式:A→β,A∈VN(終結(jié)符) 留夜,β∈V *(VN∪VT匙铡,即可為終結(jié)符也可為非終結(jié)符)?
說明:當以β替換A時,與A的上下文環(huán)境無關碍粥;
? ? ? ? ? 大部分程序設計語言近似于2型文法鳖眼。
【3型文法】(正規(guī)文法 / 右線性文法)
產(chǎn)生式形式:A→a,A→aB嚼摩,
說明:a∈VT(終結(jié)符) 具帮,? A,B∈VN(非終結(jié)符)低斋,即產(chǎn)生式右端的第一個符號必須為終結(jié)符
例如 G:A→aB
? ? ? ? ? ? ? B→b|bB
【其他說明】對于這四種類型的文法:
*包含關系:0 > 1 > 2 > 3?(以'>'代替包含符蜂厅,'A>B'譯為A包含B)
*嚴格程度:3?> 2 > 1 > 0
*判斷文法所屬類型的順序:3 → 2 → 1 → 0