不收缩文法

形式定义
在形式语言理论中,文法是不收缩的(或单调的),如果所有它的产生规则都有如下形式
:α -> β 这里的 |α| ≤ |β|,|α| 指示 α 的长度。
就是说,没有规则会减少被重写的字符串的大小。

它是本质不收缩的,如果可有一个例外,也就是,规则

:S → ε

这里的 S 是开始符号而 ε 是空串。

例子
:S → abc
:S → aSBc
:cB → Bc
:bB → bb

这个文法生成语言 \{ a^n b^n c^n : n \ge 1 \} ,它不是上下文无关的。

还有给语言 \{ a^n b^n c^n d^n : n \ge 1 \} 的(更加复杂)的不收缩文法。

等价的文法类型和表达能力
有容易的过程把任何不收缩文法转换成 Kuroda范式。

已知把任何不收缩文法变换成上下文有关文法或反之的过程。

所以,不收缩文法,Kuroda 范式的文法,和上下文有关文法有同样的表达能力。

更精确地说,不收缩文法精确的描述不包含空串的上下文有关语言,而本质不收缩文法精确的描述上下文有关语言的集合。

参见

  • 上下文有关文法
  • Kuroda范式
  • 形式文法
  • 分析表达式文法
  • 随机上下文无关文法

评论 (0)

  • 还没有评论,来抢沙发吧。