-
喬姆斯基範式
鎖定
喬姆斯基範式是由喬姆斯基提出的數學關係式。
- 中文名
- 喬姆斯基範式
- 表達式
- A→BC
- 提出者
- 喬姆斯基
- 提出時間
- 1959年
- 適用領域
- IT行業
- 應用學科
- 計算機科學
喬姆斯基範式應用舉例
- A→BC或
- A→ α 或
- S→ ε
所有的 Chomsky 範式的文法都是上下文無關,反過來,所有上下文無關文法都可以有效的變換成等價的 Chomsky 範式的文法。
除了(在文法可能生成空串的時候包括的)可選規則S→ ε 是例外,Chomsky 範式的文法的所有規則都是擴張的,就是説在字符串的整個導出過程中,每個終結符和非終結符的字符串比起前面導出的字符串要麼同樣長度要麼多出一個元素。長度 n 的字符串的導出總是精確的 2n-1 步長。
證明:
1)長度為n個字符串需要n次A→ α 的派生,因此需要n個語法變元;
2)n個變元需要n-1次A→BC的派生(從S開始,每次派生增加1個變元,增加n-1次);
3)由1),2),長度為n且滿足喬姆斯基範式語法的字符串恰好需要2n-1次派生。
進一步的,因為導出非終結符的所有規則都把一個非終結符變換成兩個非終結符,基於 Chomsky 範式的文法上的一個分析樹是二叉樹,而這個樹的高度被限制於最高為這個字符串的長度。
由於這些性質,在語言和可計算性領域中很多證明採用了 Chomsky 範式。這些性質還產生了基於 Chomsky 範式的文法的各種有效算法;例如,判定給定字符串是否可以被使用 Chomsky 範式的給定文法生成的CYK算法。
喬姆斯基範式定義
某些來源以稍微不同的方式來定義 Chomsky 範式:
一個形式文法是Chomsky 範式的,當且僅當所有產生規則都有如下形式:
- A→BC或
- A→ α
這裏的A,B和C是非終結符,而 α 是終結符。當使用這個定義的時候,B和C不能是開始符號。
這個定義不同於前面定義的是它排除了文法生成空串 ε 的可能性。接受一個語言L的任何上下文無關文法都可以有效的變換成接受L - {ε}的 Chomsky 範式的文法。後者定義的首要好處是證明通常更簡單,由於在導出過程中每個步驟都永不減少結果字符串的長度。當然它的缺點是在最初文法生成 ε 就需要特殊考慮。
[2]
喬姆斯基範式證明
- 長度為n個字符串需要n次A→ α 的派生,因此需要n個語法變元;
- n個變元需要n-1次A→BC的派生(從S開始,每次派生增加1個變元,增加n-1次);
- 由1.、2.得知,長度為n且滿足喬姆斯基範式語法的字符串恰好需要2n-1次派生。
進一步的,因為導出非終結符的所有規則都把一個非終結符變換成兩個非終結符,基於 Chomsky 範式的文法上的一個分析樹是二叉樹,而這個樹的高度被限制於最高為這個字符串的長度。
由於這些性質,在語言和可計算性領域中很多證明採用了 Chomsky 範式。這些性質還產生了基於 Chomsky 範式的文法的各種有效算法;例如,判定給定字符串是否可以被使用 Chomsky 範式的給定文法生成的CYK算法。
[2]
- 參考資料
-
- 1. Michael Sipser. Introduction to the Theory of Computation. PWS Publishing. 1997. ISBN 0-534-94728-X. (Pages 98–101 of section 2.1: context-free grammars. Page 156.
- 2. John E. Hopcroft and Jeffrey D. Ullman, Introduction to Automata Theory, Languages and Computation, Addison-Wesley Publishing, Reading Massachusetts, 1979. ISBN 0-201-02988-X.
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:10次歷史版本
- 最近更新: 本命年本命年44