2011-12-13 43 views
24

斯卡拉使用基于系统Fω的类型系统,通常认为它是强烈正常化的。强烈正常化意味着非图灵完备性。斯卡拉的类型系统的哪个属性使它完成图灵?

尽管如此,Scala的类型系统是图灵完备的。

与正式算法和系统相比,哪些更改/添加/修改会使Scala的类型系统Turing-complete?

+4

有链接/引用? (对于像我这样的观众来说:-) – 2011-12-13 23:42:43

+7

系统F强烈正常化的事实意味着系统F不是图灵完整的。这并不意味着它的类型系统不是。实际上,已经表明[对不受限制的系统F进行类型检查是不可判定的](http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.6.6483) – sepp2k 2011-12-14 00:20:31

回答

4

这不是一个全面的答案,但原因是,你可以定义递归类型。

我之前询问过类似的问题(about what a non-Turing complete language might look like)。答案的形式如下:图灵完备语言必须支持任意循环或递归。斯卡拉的类型系统支持后者