上下文無關文法

上下文無關文法 （ context - free grammar ， 縮寫爲CFG ） ， 在計算機科學中 ， 若一個形式文法 G = ( V, Σ, P, S ) 的產生式規則都取如下的形式 ： A - > α ， 則謂之 。 其中 A ∈ V ， α ∈ ( V ∪ Σ ) * 。 上下文無關文法取名爲 “ 上下文無關 ” 的原因就是因爲字符 A 總可以被字串 α 自由替換 ， 而無需考慮字符 A 出現的上下文 。 如果一個形式語言是由上下文無關文法生成的 ， 那麼可以說這個形式語言是上下文無關的 。 （ 條目上下文無關語言 ） 。 上下文無關文法重要的原因在於它們擁有足夠強的表達力來表示大多數程序設計語言的語法 ； 實際上 ， 幾乎所有程序設計語言都是通過上下文無關文法來定義的 。 另一方面 ， 上下文無關文法又足夠簡單 ， 使得我們可以構造有效的分析算法來檢驗一個給定字串是否是由某個上下文無關文法產生的 。 例子可以參見LR分析器和LL分析器 。 BNF （ 巴克斯 - 諾爾範式 ） 經常用來表達上下文無關文法 。