Erlang语言是什么,第1张

Erlang编程语言是一种高度可靠的编程语言,适用于大规模并行处理环境。随着多核处理器技术的日益普及和互联网、云计算等技术的发展,这种语言的应用范围也在逐渐扩大。

Erlang编程语言是一种高度可靠的编程语言,适用于大规模并行处理环境。随着多核处理器技术的日益普及和互联网、云计算等技术的发展,这种语言的应用范围也在逐渐扩大。

Erlang语言是什么,Erlang语言是什么,第2张

目标

Erlang是一种面向并发运行环境的通用编程语言。该语言由爱立信于1986年开发。在设计之初,Erlang开发人员专注于寻找一种适合开发大型电信交换设备的编程语言,即实现以下目标:

大规模并发处理和分布式计算能力

同时处理大量并发业务(比如同时处理几百万个电话);业务处理必须在特定的短时间内及时完成;适合大规模分布式处理系统,不断与硬件交互;

用于开发高可靠性和高质量的电信产品

不间断运行数年;维护操作(如配置修改、升级等。)在软件系统上不会与软件本身的运行相比较;有硬件故障和软件错误发生时的容错能力,严格限制故障和错误的范围;

适合复杂项目

对于超大规模的软件开发项目(比如百万行代码);实现的软件可以完成复杂的功能,各功能之间有大量的交互。

该语言随后被应用于爱立信的几个电信设备开发项目,并逐步得到改进。1988年底,Erlang成为开源语言(开源对爱立信的直接好处是,Erlang语言本身的维护和开发以及相关的教育培训不再由爱立信一个人承担;Erlang在开源社区的关怀下可以更好的发展,爱立信可以继续享受语言的成果,但知名度不高;近年来,随着基于互联网的电子商务、即时通讯、云计算、大型网络游戏的发展以及多核处理器的逐渐兴起,Erlang在大规模并发处理和高可靠性方面的优势越来越受到重视,应用范围也在逐步扩大。

开发和运营环境

Erlang语言可以基于各种主流操作系统开发运行,包括Windows、Unix、Linux、Mac OS、VxWorks等。

Erlang程序可以编译成虚拟机指令,由虚拟机解释执行(这个和Java类似)。Erlang语言中使用的虚拟机叫做BEAM。

Erlang也可以直接编译成机器指令,直接在处理器上运行(这类似于C/C++等。).

虚拟机模式和机器指令运行模式在应用效果上的主要区别是:虚拟机模式效率不高,但编译后的程序指令占用内存较少空;机器指令模式则相反。如何选择取决于软件项目的实际需要。

作为一种开源编程语言,相关资源可以直接从其社区网站(http://www . un . org)下载。埃尔兰。org/)。可用的下载资源包括一套完整的支持平台称为OTP(开放电信平台),其中包括大量的文档、库函数和组件、开发和测试工具,以及一个分布式实时关系数据库称为Mnesia(由Erlang开发;它的数据访问语言是Erlang,而不是关系数据库中常用的SQL)

特征机制

分布式运行环境

用Erlang开发的系统,其程序运行在一组称为Erlang Node的物理节点上。这些物理节点可以由专用局域网中的几台主机组成,也可以通过使用TCP/IP套接字在更大范围内连接物理节点形成一个系统。

基于编程语言本身的过程管理

Erlang语言本身就支持过程的概念。Erlang系统中通常会运行大量的进程(电信交换系统中同时存在数百万个进程也就不足为奇了)。每个进程运行在一个Erlang节点上,并可以跨节点创建其他进程。一般建议每个流程只处理轻量级任务;如果有复杂的大规模任务需要处理,软件设计人员应尽量将大规模任务分解成更小的任务,以充分发挥大规模分布式系统中所有物理节点的处理能力。

基于异步消息的进程间通信

传统语言编程时通常使用复杂的共享内存管理机制,这也是传统语言编程容易出错的一个方面。在Erlang中,所有进程根本不共享内存,进程间的通信只通过异步消息来完成。

每个Erlang进程都有一个接收消息的专用邮箱。当收到预期的异步消息时,将立即进行处理;否则,当预期接收到消息时,它将被缓冲和处理。

每个进程的所有动作都是由收到的异步消息或时间定时器触发的,不存在运行进程中等待共享内存使用权而导致的阻塞。

没有共享内存,就避免了随之而来的错误机会。但是所有的进程间通信(尤其是一个物理节点内的进程间通信)都需要通过异步消息进行,这无疑增加了通信开销(主要是消息内容的复制),这是Erlang为提高可靠性所付出的代价。

基于过程机制的软件错误处理

Erlang提供了一种定义“连通”流程的机制,即可以在流程之间定义“连通”关系。当一个进程因错误而死亡时,它向所有具有“关联”关系的进程报告自己的死亡信息;如果接收死亡信息的进程是普通进程(不同于系统进程),那么它也会立即死亡(一旦发生错误,所有连接的进程都会死亡);系统进程可以记录错误信息,然后继续运行。

基于双机备份的容错机制

一个考虑容错设计的Erlang系统应该包含至少两个节点,节点之间相互监控;当一个节点出现故障(无论是软件故障还是硬件故障)时,它的工作会立即被另一个节点接管。

这种容错机制背后的思想是,一旦节点出现故障,就不能再信任它执行任何后续的故障处理;为了确保容错,故障节点的责任必须立即由其他节点接管。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Erlang语言是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情