非上下文无关的递归可枚举语言示例
Posted
技术标签:
【中文标题】非上下文无关的递归可枚举语言示例【英文标题】:Example of a recursively enumerable language that is not context free 【发布时间】:2016-01-23 14:21:53 【问题描述】:什么是非上下文无关的递归可枚举语言的简单示例?我的教科书在明确提供这样一个例子方面很糟糕。
要明确,这不是一个 hmk 问题。
【问题讨论】:
【参考方案1】:递归可枚举类确实非常广泛。它包括任何具有图灵机的语言,该图灵机将停止并接受该语言中的任何字符串(如果给定一个不是该语言的字符串,则不需要图灵机停止)。因此,递归可枚举语言的一个示例是在给定输入上停止的图灵机的描述集(在某种形式上)。由于存在模拟任何图灵机的图灵机(即所谓的通用图灵机),H中的有效字符串当然可以被识别,但Halting Problem的不可判定性表明 H 不是递归的。
任何图灵机都可以表示为不受限制的形式语法(因此形式语法是对图灵机的描述)。 (如果不是艰巨的,实际的构造是乏味的,我不建议尝试它。)因此,任何无法确定停止问题的图灵机都定义了一种递归可枚举的语言,它不是上下文无关的(甚至是上下文敏感的)。
在更迂腐的层面上,不是上下文无关的上下文相关语言的示例包括:
ap | p is prime
anbncn | n ≥ 0
α | α ∈ a, b, c* ∩ #a(α) = #b(α) ∩ #b(α) = #c(α)
(在最后一个中,#<sub>x</sub>(α)
是x
在α
中出现的次数。换句话说,它是包含相同数量的a
s、b
s和c
s.)
【讨论】:
以上是关于非上下文无关的递归可枚举语言示例的主要内容,如果未能解决你的问题,请参考以下文章
错误:在渲染器中加载非上下文感知本机模块:@serialport\bindings\build\Release\bindings.node'