详细释义
Erl,即Erlang,是一种函数式编程语言,它由瑞典电信公司Ericsson开发,用于编写可靠的分布式实时系统。Erlang的主要特点是它支持多线程编程,支持容错,可以实现高可用性,可以支持大规模并发系统,可以支持大规模的网络通信,可以支持分布式系统,支持实时系统,可以支持高性能的实时应用程序。
Erlang在通信领域有着重要的应用,它可以用来构建高可用性的网络通信系统,并且可以支持大规模的并发通信。它的一个重要特性是它支持分布式系统,可以实现分布式网络通信,可以支持大规模的网络通信,可以支持实时系统,可以支持高性能的实时应用程序。
Erlang在通信领域的应用非常广泛,它可以用来构建高可用性的网络通信系统,可以支持大规模的并发通信,可以支持分布式系统,可以实现分布式网络通信,可以支持大规模的网络通信,可以支持实时系统,可以支持高性能的实时应用程序。
Erlang在通信领域的应用已经被广泛应用,它可以用来构建实时通信系统,如电话系统,短信系统,网络聊天系统,电子邮件系统,网络游戏系统等。它还可以用来构建分布式系统,如分布式数据库系统,分布式计算系统,分布式存储系统,分布式消息传递系统等。
此外,Erlang还可以用来构建大规模的网络系统,如网络管理系统,网络安全系统,网络监控系统,网络认证系统等。它还可以用来构建大规模的实时系统,如实时视频传输系统,实时语音传输系统,实时数据传输系统,实时信息传输系统等。
总之,Erlang在通信领域有着重要的应用,它可以用来构建高可用性的网络通信系统,支持大规模的并发通信,支持分布式系统,支持实时系统,支持高性能的实时应用程序,支持大规模的网络系统,支持大规模的实时系统等。
用户释义
1、Erl是话务量单位。话务量等于单位时间的呼叫次数与呼叫的平均占用时长的乘积。单位是ERL(爱尔兰)。 公式:A表示话源话务量,λ表示单位时间内发生的平均呼叫数,S表示呼叫的平均占用时长,根据话源话务量的定义,则A=λ•S
2、Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。Erlang问世于1987年,经过十年的发展,于1998年发布开源版本。Erlang是运行于虚拟机的解释性语言,但是现在也包含有乌普萨拉大学高性能Erlang计划(HiPE)[1]开发的本地代码编译器,自R11B-4版本开始,Erlang也开始支持脚本式解释器。在编程范型上,Erlang属于多重范型编程语言,涵盖函数式、并发式及分布式。
开发及演变历史
Erlang得名于丹麦数学家及统计学家Agner Krarup Erlang,同时Erlang还可以表示Ericsson Language。
发行版本
1998年起,Erlang发布开源版本,采用修改过的Mozilla公共许可证协议进行发放,同时爱立信仍然提供商业版本的技术支持。目前,Erlang最大的商业用户是爱立信,其他知名用户有北电网络、Amazon.com以及T-Mobile等。
当前的语言特征
Fail-fast(中文译为速错),即尽可能快的暴露程序中的错误.
面向并发的编程(COP concurrency-oriented programming).
函数式编程
弱类型
脚本语言
函数式编程
Ering函数大致写法如下,以一个求整数阶乘的模块为例:
-module(fact).
-export([fac/1]).
fac(0) -> 1;
fac(N) when N > 0 -> N * fac(N-1).
下面是快速排序算法的一个Erlang实现:
%% quicksort:qsort(List)
%% Sort a list of items
-module(quicksort).
-export([qsort/1]).
qsort([]) -> [];
qsort([Pivot|Rest]) ->
qsort([ X || X <- Rest, X <= Pivot]) ++ [Pivot] ++ qsort([ Y || Y <- Rest, Y > Pivot]).
并发及分布式编程
代码示例如下:
% create process and call the function web:start_server(Port, MaxConnections)
ServerProcess = spawn (web, start_server, [Port, MaxConnections]),
% create a remote process and call the function web:start_server(Port, MaxConnections) on machine RemoteNode
RemoteProcess = spawn(RemoteNode, web, start_server, [Port, MaxConnections]),
% send the {pause, 10} message (a tuple with an atom "pause" and a number "10") to ServerProcess (asynchronously)
ServerProcess ! {pause, 10},
% receive messages sent to this process
receive
a_message -> do_something;
{data, DataContent} -> handle(DataContent);
{hello, Text} -> io:format("Got hello message: ~s", [Text]);
{goodbye, Text} -> io:format("Got goodbye message: ~s", [Text])
end.