Scala作为通用编程语言


13

在Garcia等人的论文“针对通用编程的语言支持的扩展比较研究”中。给出了通用编程的编程语言功能的有趣比较:

在此处输入图片说明

简要解释术语:

在此处输入图片说明

任何人都可以在此框架内测试Scala对通用编程的支持吗?即,如果可能的话,在第一张表中添加一列,并附上说明。


3
重新发表在计算机科学上。请不要那样做。如果您想将问题移到您认为更合适的其他站点,请举报以引起主持人注意并请求迁移。
吉尔斯(Gilles)'所以

2
确切的答案在p上给出。Oliveira等人在“ 类型作为对象和隐式类型 ”中的 17页。
Artem Pelenitsyn 2012年

引用CS.SE beta问题的链接后,推文来自Twitter。感谢Miles Sabin(Twitter上的@milessabin)和Alexey Romanov。
Artem Pelenitsyn

看看Miles Sabins无形库及其在te lib之后的动机。我认为参考了一些论文
AndreasScheinert

Answers:


7

正如OP 的评论之一所提到的,该表说明了Scala如何比较通用编程支持。 链接到源pdf

列出了Scala的表

稍后,提供以下摘要:

Scala
使用CONCEPT模式,我们可以对多种类型的概念,多种约束进行建模,并支持追溯建模。此外,Scala对隐式的支持意味着Java和C#解决方案在额外开销方面的弊端不适用于Scala。因此,Scala在隐式参数推论和追溯建模标准方面得分都很高。第6节显示了Scala通过类型成员和依赖方法类型支持关联的类型,并且类型成员还可以用作类型别名。
如第3节所示,Scala支持词法范围的模型。此外,类型检查是完全模块化的。优先级重叠的隐式内容为基于概念的重载提供了一些支持,如zipWithN所示。6.5节中的示例。但是,重叠模型必须使用子类型化层次结构来构造,这可能并不总是令人满意的。因此,此功能的分数仅足够。最后,Scala完全支持一流的功能,并且还支持相等约束。
总之,Scala是一种对通用编程功能的出色支持的语言,与G(专门为大型通用编程语言设计的语言)或Haskell(已被认可为通用编程提供了很好的支持)。

然后在摘要中:

类型成员和从属方法类型为语言增加了额外的功能,并且两种机制的组合允许表达关联的类型。结合隐式,类型成员和相关方法类型,使Scala成为可用于大型通用编程的语言。

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.