今天有主流通用的非图灵完整语言吗?


11

非图灵完备的语言比图灵完备的语言具有更大的优势,因为它们可分析得多,因此提供了更广泛的优化可能性。但是它们很少使用,图灵完备性实际上是一个很好的功能。

当今是否有针对通用编程制作的主流非图灵完整语言?


8
我认为您要寻找的两件事是互不相容的。如果未完成,则不能将其用于任何用途。
Bobson

@Dokkat我重新打开了问题,并从评论中删除了Meta讨论。请注意,如果您碰巧不同意网站的准则之一,则对它提出异议的正确方法是发布元讨论。不只是忽略它。此外,对于主观问题,成功的关键在于事前研究和严格的定义。您研究得越多,问题就会变得越具体(和可以回答),并且您与臭名昭著的“非建设性”领域的距离就越远。
yannis

另外,为什么将“更广泛的优化可能性”视为“巨大优势”?这并不是说优化不值得,但是鉴于现代计算机的强大功能,我当然不会将语言固有的可优化性称为“最大优势”。
Bobson

2
Coq在其领域中可以被视为漂亮的“主流”,而竞争对手(HOL,Agda,ACL等)则不那么明显。
SK-logic

也许我实际上不了解什么是图灵完备性,但是一种语言如何才能具有通用性非图灵完备性?我认为“非图灵完整”的含义是无法执行任何计算任务,因此针对特定目的。
Aviv Cohn 2014年

Answers:


24

今天没有主流的多用途非图灵完整语言。但是,有几种非图灵完整域特定的语言。ANSI SQL,正则表达式,数据语言(HTML,CSS,JSON等)和s表达式是一些著名的示例。

多功能非图灵完整语言并没有真正的好处。我认为“更多可分析的”方面确实适用于赖斯定理,但确实适用于针对几种不同应用领域的语言,但其他要求优先。图灵完整性的灵活性比其复杂性重要得多。就像其他所有软件一样,编程语言也都需要权衡取舍。

另一方面,对于领域特定的语言,可能恰恰相反。如果您不是要构建“一种语言来统治所有语言”,那么您可以自由地实施仅对您的语言的特定目的有意义的功能。而且,图灵完整性经常不是其中之一。


CSS3 图灵完备的。
SK-logic

5
@ SK-logic CSS在没有HTML的情况下确实很有意义,它可以应用于任何类型的XML,并且不会阻止您将其实现为具有大致兼容形状的任何其他格式(具有命名节点的树,同级顺序等)。我已经亲自为SVG文件编写了CSS规则。对于HTML来说,它要普遍得多,因为HTML比其他格式要普遍得多。

2
@Mike,这是一个残破的类比。CSS3语义与表示语言语义紧密相关。
SK-logic

2
请注意,带有窗口和CTE的SQL(即SQL:2003)也是图灵完整的。
约尔格W¯¯米塔格

1
“当今没有主流的多用途非图灵完整语言。” –没有外部存储的C并不是图灵完整的,但是它是通用的并且是主流。(好吧,我个人会认为这是一种用于编写Unix内核的领域特定语言,甚至还不是特别擅长,但世界不同意。)
JörgW Mittag

-3

图灵不完整语言不是主流的原因是,无论何时需要它,都可以轻松实现自己的语言。一个有趣的例子是比特币脚本:https : //github.com/bitcoin/bitcoin/blob/master/src/script.cpp


5
真?介意从头开始实施Coq,就这么简单吗?
SK-logic

这只是您的意见,还是可以通过某种方式进行备份?
2014年

示例是所有不需要递归,无界迭代或其他Turing tarpit的特定于域的语言。另外,我敢肯定我们大多数人都已经实现了某种用于处理基本算术的简单计算器。
MauganRa '16

1
我同意,但保持图灵语言不完整并非易事。即使没有明显的Turing tarpits,它也始终可能包含编译器错误,这使得使用底层平台之一成为可能。
MauganRa '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.