证明一组常规语言是无上下文语言集的适当子集

时间:2011-01-10 23:48:39

标签: language-theory computation-theory

我在一些计算理论上刷了一次(不是作业)并遇到了这个问题:

如何证明常规语言集是无上下文语言集的适当子集。

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

我知道如果一种语言被下推接受,那么这种语言就没有上下文了 自动机。

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

1 个答案:

答案 0 :(得分:2)

任何DFA都相当于PDA,它几乎不会将任何内容推送到堆栈中,因此所有常规语言也都是无上下文的。更正式地说:

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

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

因此,通过引入一个由单个符号组成的虚拟堆栈字母表,可以轻松(尽管有点烦人且冗长地写出来!)来映射DFA转换表 (state, input) -> state到等效的PDA转换表(state, input, stack) -> (state, stack)

要完成正确子集关系的证明:存在无上下文但不规则的语言,因此常规语言构成了无上下文语言的适当子集。示例:由平衡括号组成的字符串语言。