【发布时间】:2011-01-09 08:52:03
【问题描述】:
pumping lemma 是 regular languages 和 context-free languages 的属性。但我见过的所有例子都是这样的:
L = {0n1n2n : n ≥ 0}
(顺便说一下,它不是上下文无关语言)。
但我感兴趣的是:是否有任何将其与任何远程真实或有用的语言一起使用的示例?我一直找不到。这是其中之一还是纯粹的理论价值,绝对没有实际应用?
【问题讨论】:
-
是否能够证明一种语言是否具有实用性?
-
@Anon:是的,因为对于解析器生成器来说,是否可以用上下文无关文法来描述一种语言是很有价值的。
-
我花了一段时间才弄清楚为什么 L 不是上下文无关语言。我认为思考答案的一个好方法是:如果你想写 n 个 0,通过在堆栈中添加 n 次来跟踪它。然后打印 n 1s,通过删除堆栈上的所有项目来跟踪。但是,现在无法记住打印 n 2 的 n 是什么。
标签: computer-science