Loading AI tools
来自维基百科,自由的百科全书
在计算机科学中,一个形式文法是 Chomsky 范式的,当且仅当所有产生规则都有如下形式:
这里的 A, B 和 C 是非终结符,α 是终结符(表示常量值的符号),S 是开始符号,而 ε 是空串。还有,B 和 C 都不可以是开始符号。
所有的 Chomsky 范式的文法都是上下文无关,反过来,所有上下文无关文法都可以有效的变换成等价的 Chomsky 范式的文法。
除了(在文法可能生成空串的时候包括的)可选规则 S → ε 是例外,Chomsky 范式的文法的所有规则都是扩张的,就是说在字符串的整个导出过程中,每个终结符和非终结符的字符串比起前面导出的字符串要么同样长度要么多出一个元素。长度 n 的字符串的导出总是精确的 2n-1 步长。
进一步的,因为导出非终结符的所有规则都把一个非终结符变换成两个非终结符,基于 Chomsky 范式的文法上的一个分析树是二叉树,而这个树的高度被限制于最高为这个字符串的长度。
由于这些性质,在语言和可计算性领域中很多证明采用了 Chomsky 范式。这些性质还产生了基于 Chomsky 范式的文法的各种有效算法;例如,判定给定字符串是否可以被使用 Chomsky 范式的给定文法生成的 CYK算法。
某些来源以稍微不同的方式来定义 Chomsky 范式:
一个形式文法是 Chomsky 范式的,当且仅当所有产生规则都有如下形式:
这里的 A, B 和 C 是非终结符,而 α 是终结符。当使用这个定义的时候,B 和 C 不能是开始符号。
这个定义不同于前面定义的是它排除了文法生成空串 ε 的可能性。接受一个语言 L 的任何上下文无关文法都可以有效的变换成接受 L - {ε} 的 Chomsky 范式的文法。后者定义的首要好处是证明通常更简单,由于在导出过程中每个步骤都永不减少结果字符串的长度。当然它的缺点是在最初文法生成 ε 就需要特殊考虑。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.