影响Scala语言设计的因素列表

Scala语言设计概述

站在用户的角度思考问题,与客户深入沟通,找到恩平网站设计与恩平网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广、申请域名、网页空间、企业邮箱。业务覆盖恩平地区。

Scala的设计受许多编程语言和研究思想的影响。事实上,仅很少的Scala的特点是全新的;大多数都已经被以另外的形式用在其他语言中了。Scala的革新主要来源于它是如何构造并放在一起的。在这部分里,我们罗列了对Scala设计的主要影响。列表并不全——因为围绕着编程语言的设计有太多的好点子,没办法全都列举在这里。

编辑推荐:Scala编程语言专题

Scala语言设计的“蓝本”语言

在最表层,Scala采用了Java和C#语法的大部,而它们大部分借自于C和C++句法的改变。表达式,句子和代码块多数和Java一样,同样还有类,包和引用的语法。除语法之外,Scala还采用了Java的其他元素,诸如它的基本类型,类库和它的执行模式。

Scala也欠了其他语言的很多情。它的统一对象模型是由Smalltalk发起的,之后又被Ruby发扬光大。他的通用嵌套的思想(几乎所有的Scala里的构造都能被嵌套进其他构造)也出现在Algol,Simula,和最近的Beta与gbeta中。它的方法调用和字段选择的统一访问原则来自于Eiffel。它函数式编程的处理方式在骨子里与以SML,OCaml和F#为代表的ML家族语言很接近。许多Scala标准库里面的高阶函数同样也出现在ML或Haskell中。Scala的隐式参数灵感激发自Haskell的类型类;它们用一种更经典的面向对象设定获得了类似的结果。Scala的基于行动类的并发库几乎全是Erlang的思想。

Scala语言设计:特点的继承

Scala不是第一种强调伸展性和扩展性的语言。能够横跨不同应用领域的可扩展语言的历史根源是Peter Landin在1966年的论文“之后的700种编程语言” (这篇论文中描述的语言,Iswim,与Lisp一同为开先河的函数式语言)。把前缀的操作符视为函数的特别的思想可以被回溯到Iswim和Smalltalk。另一个重要的思想是允许函数式文本(或代码块)作为参数,从而能让库定义控制结构。同样可以追回到Iswim和Smalltalk。Smalltalk和Lisp两者都具有灵活的语法,广泛应用在建造内嵌的领域特化的语言。C++是另一种能通过操作符重载和他的模板系统被改造和扩展的可伸展语言;与Scala相较,它是建在低层级,更面向系统的内核上。

Scala也不是第一个集成函数式和面向对象编程的,尽管也许在这个方向上它走得最远。其他在OOP里集成了函数式编程的一些元素的包括Ruby,Smalltalk和Python。在Java平台上,Pizza,Nice和Multi-Java都用函数式思想扩展了类Java内核。还有一些接受了对象系统的以函数式为主的语言;OCaml,F#和PLT-Scheme是其中的例子。

Scala同样也对编程语言领域贡献了一些革新。举例来说,它的抽象类型提供了对泛型类型来说更面向对象的替代,它的特质允许灵活的控件组合,还有他的拆分器提供了独立于表达的方式去做模式匹配。这些革新已在近年编程语言会议中阐述在论文里了。

本文节选自Martin Odersky,Lex Spoon和Bill Venners所著,Regular翻译的《Programming in Scala》的第一章。

【相关阅读】

  1. 喜欢Scala编程的四个理由
  2. Scala融合面向对象和函数概念的方法
  3. Scala的语言特性——可伸展的语言
  4. 学习Scala中的Case类
  5. Groovy创始人:Java面临终结 Scala将取而代之

新闻名称:影响Scala语言设计的因素列表
文章源于:http://www.hantingmc.com/qtweb/news6/284556.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联