证明正则语言集是上下文无关语言集的真子集

Posted

技术标签:

【中文标题】证明正则语言集是上下文无关语言集的真子集【英文标题】:Prove that the set of regular languages is a proper subset of the set of the context-free languages 【发布时间】:2011-06-06 20:58:07 【问题描述】:

我正在复习(不是家庭作业)一些计算理论并遇到了这个问题:

你如何。

现在我知道一种语言是正规的,如果它被有限自动机接受。

而且我知道一种语言是上下文无关的,如果它被下推接受 自动机。

但我不确定是什么解决方案。

【问题讨论】:

【参考方案1】:

任何 DFA 都相当于一个 PDA,它碰巧从不将任何东西压入其堆栈,因此所有常规语言也是上下文无关的。更正式地说:

DFA 被定义为一个 5 元组 (Σ,S,s0,δ,F),由输入字母表、状态集、 开始状态、转换表和一组最终(接受)状态。

PDA 被定义为一个 7 元组,包括 DFA 的所有元素,外加两个附加参数:Γ(堆栈字母表)和 Z(初始堆栈符号)。 PDA 转换表与 DFA 转换表有些不同:每个转换可以依赖于 输入符号和当前堆栈符号,并且转换可以推入或弹出 从堆栈中。

因此,通过引入由单个符号组成的虚拟堆栈字母表,映射 DFA 转换表是微不足道的(尽管写出来有点烦人和冗长!) (state, input) -> state 到等效的 PDA 转换表 (state, input, stack) -> (state, stack)

为了完成真子集关系的证明:存在上下文无关的语言,但不是正则的,因此正则语言形成了上下文无关语言的一个真子集。示例:由平衡括号组成的字符串语言。

【讨论】:

谢谢 - 你对这个声明有任何参考吗:任何 DFA 都相当于一个 PDA,它碰巧从不将任何东西压入堆栈,因此所有常规语言也是上下文无关的? @David:我稍微扩展了我的答案,以展示如何构建更正式的证明。

以上是关于证明正则语言集是上下文无关语言集的真子集的主要内容,如果未能解决你的问题,请参考以下文章

是语言 0^n 1^n 0^k | k != n 上下文无关?

如何确定一种语言是递归的还是递归可枚举的?

非正则语言的补语总是递归语言吗?

3.2语法分析-上下文无关文法

3.2语法分析-上下文无关文法

如何用以下条件表明语言 L 不是上下文无关的?