无限制文法又称为
0型文法。这种
文法对生成式a→β不作特殊限制,a和β可以是任意的文法
符号串,当然a不能是空字符串。
在
形式语言理论中,无限制文法是对文法的产生式左右两侧都没有限制的
形式文法。这是
乔姆斯基层级中最一般性的文法类,它们可以识别任意的
递归可枚举语言。
无限制文法是
形式文法 ,这里的N是非终结符的集合, 是
终结符的集合,这里的 和 是无交集的(实际上这个限制不是必需的,因为无限制文法在非终结符和终结符之间不做真实区分,存在这个指定纯粹是为了使得你在尝试生成文法的句子形式的时候知道何时停止),P是形如 的产生规则的集合,这里的 和 是在 中的符号的字符串而 是非空字符串, 是特别指定的开始符号。如名称所暗含的,在无限制文法可以有什么类型的产生规则上没有真实限制。
可以证明无限制文法特征化了递归可枚举语言。这同于声称对于所有无限制文法G都存在某个
图灵机有能力识别 反之亦然。给定一个无限制文法,这种图灵机足够简单构造为两磁带非确定图灵机。第一个磁带包含要被测试的输入字W,而机器使用第二个磁带生成来自G的句子形式。图灵机接着做如下事情:
从无限制文法和图灵机的等价性上,给定一个字符串 是否属于某个无限制文法的语言的
决定性问题一般是不可判定的。
给出一个语言的描述完全可能建立一个通用无限制文法有能力接受任何其他无限制文法的语言,如同有可能建立一个
通用图灵机,所以在理论上有可能建造一个基于无限制文法的
编程语言。