gpt4 book ai didi

scala - Scala 3 不会是图灵完备的吗?

转载 作者:行者123 更新时间:2023-12-04 16:25:31 25 4
gpt4 key购买 nike

我参加了 Martin Odersky 关于 Scala 的 future 的以下主题演讲:

https://skillsmatter.com/skillscasts/8866-from-dot-to-dotty

1:01:00 一个听众问题的答案似乎在说 future 的 Scala 不会是图灵完备的。

我理解正确吗? Scala 3 将不再是图灵完备的吗?如果是这样,这对像我这样每天在工作中使用 Scala 解决实际问题的人有什么实际影响?换句话说,工业 Scala 程序员失去了什么,他们通过消除图灵完整性获得了什么?

最佳答案

At 1:01:00 an answer to an audience question seems to say that future Scala will not be Turing complete.

Did I understand this correctly? Will Scala 3 no longer be Turing complete?



不,这既不是提出的问题,也不是给出的答案。

首先:被问到的问题不是 Scala 是否不是图灵完备的,而是 Scala 类型系统是否不是图灵完备的。

其次:给出的答案并不是 future Scala 的类型系统不会是图灵完备的。 Martin Odersky 明确表示,有了隐式,类型系统肯定是图灵完备的,没有隐式,他不想预测它是否是图灵完备的。

所以,回答你的问题:
  • Scala 肯定仍然是图灵完备的。
  • 您链接的问题不是关于 Scala,而是关于 Scala 的类型系统。
  • 由于隐式,Scala 的类型系统仍将是图灵完备的。
  • 没有隐式的 Scala 类型系统可能是也可能不是图灵完备的,我们还不知道,Martin Odersky 不想做任何预测。

  • If so, what practical impact will this have on someone like me who uses Scala daily at work to solve practical problems?



    没有任何。首先,由于隐式,类型系统仍将是图灵完备的。其次,即使不是,AFAIK,Scala 类型系统的图灵完备性也没有被用于任何实际有趣的事情。有些库确实执行复杂的类型级计算,但这些计算总是终止。没有人编写过在类型级别执行任意图灵完备计算的库。 (事实上​​,这甚至是不可能的,因为即使 Scala 的类型系统是图灵完备的,所有当前存在的 Scala 实现(反正只有一个)对类型检查器的递归深度有严格的限制)。

    In other words, what do industrial Scala programmers loose and what do they gain by removing Turing completeness?



    让我们先谈谈类型系统:它们不会丢失任何东西。他们获得的是编译肯定会终止的事实,这意味着编译器可以证明有关程序的内容,否则无法证明。

    让我们也回答一个假设性的问题:如果 Scala 不是图灵完备的呢?好吧,我们不能再写无限循环了。差不多就是这样。但是请注意,许多通常建模为对数据的无限循环(或无限递归)的事物仍然可以建模为对共同数据的有限共同递归! (例如,操作系统、Web 服务器或 GUI 中的事件循环。)

    OTOH,编译器不能做的很多事情是“因为它相当于解决停机问题”。好吧,在不是图灵完备的语言中,停机问题不存在!因此,与图灵完备语言相比,编译器可以证明更多关于程序的事情。

    但是,重申一遍:没有计划使 Scala 不是图灵完备的。没有计划使隐式不是图灵完备的。类型系统有一些限制,可能会也可能不会使类型系统不是图灵完备的。

    关于scala - Scala 3 不会是图灵完备的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47026780/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com