加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala 3不会图灵完整吗?

发布时间:2020-12-16 18:25:58 所属栏目:安全 来源:网络整理
导读:我参加了Martin Odersky关于 Scala未来的主题演讲: https://skillsmatter.com/skillscasts/8866-from-dot-to-dotty 在1:01:00,对观众问题的回答似乎表明未来的Scala将不会是图灵完整的. 我理解正确吗? Scala 3将不再是图灵完整吗?如果是这样,对于像我这样
我参加了Martin Odersky关于 Scala未来的主题演讲:

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

在1:01:00,对观众问题的回答似乎表明未来的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类型系统是不是图灵完备.

其次:给出的答案并不是未来Scala的类型系统不会是图灵完备的.马丁奥德斯基清楚地说,带有暗示,类型系统肯定会是图灵完备的,并且没有暗示,他不想预测它是否会图灵完备.

那么,回答你的问题:

> Scala肯定仍然是Turing-complete.
>你链接的问题不是关于Scala,而是关于Scala的Type System.
> Scala的类型系统因为隐含而仍然是图灵完备的.
>没有暗示的Scala类型系统可能也可能不是Turing-complete,我们还不知道,而且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的类型系统是Turing-complete,所有当前现有的Scala实现(无论如何只有一个)都对类型检查器的递归深度有严格的限制).

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

我们先来谈谈类型系统:它们不会丢失任何东西.他们获得的是保证编译终止的事实,以及这意味着编译器可以证明其无法证明的程序.

让我们回答一个假设的问题:如果Scala没有图灵完成怎么办?好吧,我们再也无法编写无限循环了.这就是它.但请注意,许多通常被建模为无限循环(或无限递归)的数据仍然可以建模为共同数据上的有限共同递归! (例如,操作系统,Web服务器或GUI中的事件循环.)

OTOH,编译器不能做的很多东西都是“因为它等同于解决停机问题”.好吧,在一种非图灵完备的语言中,停止问题不存在!因此,编译器可以证明有关程序的更多内容,而不是图灵完备语言.

但是,要重新进行迭代:没有计划让Scala不是Turing-complete.没有计划暗示没有图灵完整.类型系统存在限制,可能会或可能不会使类型系统不完全图灵.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读