Erlang:运作于虚拟机的解释型语言

核心提示Erlang是一种通用的并发程序设计语言,它由乔·阿姆斯特朗在瑞典电信设备制造商爱立信所辖的计算机科学研究室开发,目的是创造一种可以应付大规模并发活动的程序设计语言和运行环境。Erlang于1987年发布正式版本,最早是爱立信拥有的私有软件

Erlang是一种通用的并发程序设计语言,它由乔·阿姆斯特朗在瑞典电信设备制造商爱立信所辖的计算机科学研究室开发,目的是创造一种可以应付大规模并发活动的程序设计语言和运行环境。Erlang于1987年发布正式版本,最早是爱立信拥有的私有软件,经过十年的发展,于1998年发表开放源码版本。

是运作于虚拟机的解释型语言,但是现在也包含有乌普萨拉大学高性能Erlang计划开发的原生代码编译器,自R11B-4版本开始,Erlang也支持脚本方式执行。

在编程范型上,Erlang属于多重典范编程语言,涵盖函数式、并行及分布式。循序运行的Erlang是一个及早求值, 单次赋值和动态类型的函数式编程语言。Erlang得名于丹麦数学家及统计学家Agner Krarup Erlang,同时Erlang还可以表示Ericsson Language。

Erlang语言由瑞典爱立信电信公司的乔·阿姆斯特朗开始设计,开始于公元一九八零年代。

最初是以Prolog程序设计语言为基础,几度改版之后,改成以Joe's Abstract Machine为基础的独立语言运行环境。虽然语言风格仍与Prolog相近,不过因Erlang语言设计的走向,Erlang成为具备函数语言特色的程序设计语言。1998年起,Erlang发布开放源码版本,称为开源电信平台。

开源电信平台采用修改过的Mozilla公共许可证协议发放,同时爱立信仍然提供商业版本的技术支持。目前,Erlang最大的商业用户是爱立信,其他知名用户有北电网络、亚马逊以及T-Mobile等。

并行程序设计 在语言中,可以借由spawn/*函数,将特定的函数设置为独立的进程,之后可以做跨进程通信。

函数式程序设计 由于Erlang早期以Prolog开发制成,受语言特性影响,即成为函数式语言。单次赋值 每个变量只能跟数据绑一次,所以,不像一般程序设计语言的变量可以多次指定为不同的值。单次赋值的好处是状态单纯,使程序容易阅读。

及早求值或严格求值 Erlang基本求值策略为电脑语言中及早求值之特性。而且,可以借由明确使用无参数的λ表达式,将特定函数设置为惰性求值策略。动态数据类型与类型系统 有编译时期的类型检查系统支持。快速失败 在运行时期发生的错误,会由错误位置提交消息,发生错误的进程立刻停止执行。

借由进程通讯机制,可以自动传递错误、捕捉错误,使其他进程能够帮助处理错误。代码热更新 由于Erlang是函数语言,可以撰写特定的程序结构,制作即时更换新版函数的机制。脚本语言Erlang实现提供了脚本运行方式,Erlang程序结构以函数定义为主。函数是一组将输入分别对应到输出的规则,对应方式遵守数学函数的惯例。

此外,Erlang语言由几项构句要素所组成,包括文字、数字、列表、值组、字符、字符串、二进制资料、模块、与特定用途的关键字如fun …… end, if …… end, case …… of …… end, spawn, !, receive …… end等等。以下段落分别列示并举例说明Erlang程序的基本构成部分,涵盖资料格式、表达式格式与内置函数。Wings 3D,一个用Erlang编写的三维计算机图形软件。YAWS,以Erlang编写的高效HTTP服务器。

DISCO,以Erlang编写的MapReduce架构系统。Apache CouchDB,以Erlang编写的MapReduce文件式数据库系统。RabbitMQ,能搭配Erlang运作的消息队列系统。

开放电信平台WhatsApp:其后端服务器应用使用了Erlang及FreeBSD。支持了4.5亿的活跃用户ejabberd,世界上最流行的XMPP即时通讯服务器EMQX,以Erlang编写的高可用、分布式MQTT消息服务器。

 
友情链接
鄂ICP备19019357号-22