Haskell

[Haskell] Haskell语言的规范

2016-07-01  本文已影响322人  何幻

Haskell是一种通用的,纯函数式编程语言,
其中包含了很多编程语言研究领域中的新概念。
Haskell提供了高阶函数,非严格语义(non-strict semantics),静态多态类型,
用户自定义的代数数据类型,模式匹配,列表解析(list comprehension),
模块系统,monadic IO系统。

Haskell包含了丰富的原始数据类型,
包括列表,数组,任意精度的整数,以及浮点数。

Haskell是非严格(non-strict)函数式语言领域,多年研究的结晶。


1987年9月在美国俄勒冈州的波特兰,
举行了一次关于函数式编程语言和计算机体系结构的会议,FPCA'87。
会议看到了函数式编程社区的现状,
社区中已经出现了十几个非严格的(non-strict)语义的纯函数式编程语言,
它们全都表现力丰富,而且建立在语义学基础之上。

人们看到,没有一门公共语言妨碍了这些语言的广泛使用。
于是,会议达成共识,决定设计一门新的语言,用来更快的交流新想法,
这样可以保证基础更加牢固,也可以推动实际生产环境中的使用。
对于那些想学习函数式语言的人们,也方便了许多。
这门语言就是Haskell,以逻辑学家Haskell B. Curry命名。

Haskell的设计初衷是满足以下几个约束条件:
(1)它必须便于教学,科研和使用,可以用于构建大型系统。
(2)它必须完全用形式化的方法来表示语法和语义。
(3)它必须是免费的。任何人可以实现它,传播它。
(4)它必须建立在共识的基础之上。
(5)它必须消除众多函数式语言中不必要的多样性。


和其他的语言一样,Haskell一直在演化。
到1997年年中,就已经更新了5个版本,Haskell 1.0-1.4。
在阿姆斯特丹的Haskell工作室(workshop),决定发布一个稳定的版本。
于是,1999年2月制订了名为“Haskell 98”的规范。
修复了少量Bug的“Revised Haskell 98”的规范于2002年发布。

2005年,Haskell出现了很多扩展,且以不同的形式实现了。
在社区力量的推动下,人们确定了一个规范制订的流程Haskell Prime
力求把那些熟知的,广泛使用的特性加入到Haskell 98中,
目的是保持语言的稳定性,同时也能反映最新的研究成果。

对语言本身进行一次大量的改动是个艰巨的任务,
最好能够以小步快跑的方式来推动语言的演化,
每次修订最好只包括少量的一些特性,
目前Haskell 2010是第一个修订版。

Haskell 2010 committee已经解散了,
最近成立的委员会是Haskell Prime 2020 committee,
目标是产出Haskell 2020语言规范。


参考:
haskell2010
Language and library specification
Haskell Prime

上一篇下一篇

猜你喜欢

热点阅读