Computer science 有没有用“泵送引理”的例子;“真正的”;语言?

Computer science 有没有用“泵送引理”的例子;“真正的”;语言?,computer-science,Computer Science,是和的属性。但我看到的所有例子都是: L={0n1n2n:n≥ 0} (顺便说一句,这不是一种上下文无关的语言) 但我感兴趣的是:有没有任何关于它与任何远程真实的或有用的语言一起使用的例子?我还没找到。这是其中之一,还是完全没有实际应用的纯理论价值?L={0n1n:n≥ 0}是上下文无关语言 表达式中的括号匹配可以认为是类似的形式,即 L={(n)n:n≥ 0}一个实际用途是,每个人都可以停止尝试构造有限自动机来识别C#或Fortran的语法 另一个实际用途是,每个人都可以不再试图构造下推自动机

是和的属性。但我看到的所有例子都是:

L={0n1n2n:n≥ 0}

(顺便说一句,这不是一种上下文无关的语言)

但我感兴趣的是:有没有任何关于它与任何远程真实的或有用的语言一起使用的例子?我还没找到。这是其中之一,还是完全没有实际应用的纯理论价值?

L={0n1n:n≥ 0}是上下文无关语言

表达式中的括号匹配可以认为是类似的形式,即


L={(n)n:n≥ 0}

一个实际用途是,每个人都可以停止尝试构造有限自动机来识别C#或Fortran的语法

另一个实际用途是,每个人都可以不再试图构造下推自动机来识别C#或Fortran的语义。(即使在Fortran中,如果您拼错了一个变量名,您可以免费获得一个新变量,新变量可能无法与您打算命名其中一个声明变量时编写的运算符一起使用。)

“这是其中之一还是纯粹的理论值,完全没有实际应用?”

人力资源管理。什么是实际应用?你明智地把你的问题标上了“计算机科学”的标签。所以我想你的问题是想问,“它对计算机科学实用吗

在这种情况下,答案是

当然是这样!它是第一批将不同语言复杂性分类的方法之一,而不仅仅是“big-O(whateverthehell)”。 它表明,除了运行时,还存在计算方面的问题,在这种情况下,一些模型根本无法计算某些函数* 这是一个关于自动机理论的形式证明的非常低调的介绍

大多数计算机科学学生(我的同龄人)似乎热衷于回避的计算机科学的很大一部分是计算理论,这一分类显然属于泵引理

希望显而易见的事实是,计算理论,不管你喜欢与否,都是计算机科学的基础。不理解不同复杂性类别的概念(big-O本身并不能解决这一问题)不会意味着计算机科学家的死亡,但它会将该领域的相当一部分隐藏在他或她的视野之外

*是的,通常停顿的问题是第一次出现的,但他们从来没有第一次发现


至于对你的问题的更为愤世嫉俗的解释,你的意思是“有任何软件真的使用这个吗?”?”我的回答当然不是。它是计算的基础,而不是它的应用。这听起来并不是对它的应用不屑一顾,一点也不是。两者都具有同等的崇高价值。

此python程序有效:

print ((((((((((((((((((((((((1))))))))))))))))))))))))
以及所有其他等量的
(左侧为
,右侧为
语句

无法构建正则表达式来验证这一点,因此必须使用解析器


这完全不是理论上的。这就是为什么你不能使用正则表达式来解析HTML。

是否能够证明一种语言是否是实用的规则语言?@Anon:是的,因为一种语言是否可以用上下文无关语法来描述对解析器生成器来说很有价值。我花了一段时间才弄明白为什么L不是上下文无关语言。我认为思考答案的一个好方法是:如果你想写n0,通过在堆栈中添加n次来跟踪它。然后,要打印n 1s,请删除堆栈上的所有项目以保持跟踪。然而,现在已经没有办法记住n是用来打印n 2的。我不是在描述它为什么有用,而是在描述它是如何应用于真实语言而不是abc或012的序列。@cletus设计编译器发生在真实世界之外,在非真实语言中?呃。。。这两种语言都不是我所说的“真正的”语言。我知道它是如何应用于这些人工例子的。我想要的是至少一个例子,它被应用到编程语言或任何远程“真实世界”中。匹配括号(或大括号、引号)如何不是真实世界?这是一个可爱的演讲,但它并没有回答以下问题:I“我在寻找真实世界中使用它的例子。也许你因为树木而错过了森林。教育。或者你最好澄清一下你所说的“真实世界”是什么意思P