百科解釋
1、Erl是話務(wù)量單位。話務(wù)量等于單位時(shí)間的呼叫次數(shù)與呼叫的平均占用時(shí)長(zhǎng)的乘積。單位是ERL(愛(ài)爾蘭)。 公式:A表示話源話務(wù)量,λ表示單位時(shí)間內(nèi)發(fā)生的平均呼叫數(shù),S表示呼叫的平均占用時(shí)長(zhǎng),根據(jù)話源話務(wù)量的定義,則A=λ&#8226;S 2、Erlang是一種通用的面向并發(fā)的編程語(yǔ)言,它由瑞典電信設(shè)備制造商愛(ài)立信所轄的CS-Lab開(kāi)發(fā),目的是創(chuàng)造一種可以應(yīng)對(duì)大規(guī)模并發(fā)活動(dòng)的編程語(yǔ)言和運(yùn)行環(huán)境。Erlang問(wèn)世于1987年,經(jīng)過(guò)十年的發(fā)展,于1998年發(fā)布開(kāi)源版本。Erlang是運(yùn)行于虛擬機(jī)的解釋性語(yǔ)言,但是現(xiàn)在也包含有烏普薩拉大學(xué)高性能Erlang計(jì)劃(HiPE)[1]開(kāi)發(fā)的本地代碼編譯器,自R11B-4版本開(kāi)始,Erlang也開(kāi)始支持腳本式解釋器。在編程范型上,Erlang屬于多重范型編程語(yǔ)言,涵蓋函數(shù)式、并發(fā)式及分布式。 開(kāi)發(fā)及演變歷史 Erlang得名于丹麥數(shù)學(xué)家及統(tǒng)計(jì)學(xué)家Agner Krarup Erlang,同時(shí)Erlang還可以表示Ericsson Language。 發(fā)行版本 1998年起,Erlang發(fā)布開(kāi)源版本,采用修改過(guò)的Mozilla公共許可證協(xié)議進(jìn)行發(fā)放,同時(shí)愛(ài)立信仍然提供商業(yè)版本的技術(shù)支持。目前,Erlang最大的商業(yè)用戶是愛(ài)立信,其他知名用戶有北電網(wǎng)絡(luò)、Amazon.com以及T-Mobile等。 當(dāng)前的語(yǔ)言特征 Fail-fast(中文譯為速錯(cuò)),即盡可能快的暴露程序中的錯(cuò)誤. 面向并發(fā)的編程(COP concurrency-oriented programming). 函數(shù)式編程 弱類(lèi)型 腳本語(yǔ)言 函數(shù)式編程 Ering函數(shù)大致寫(xiě)法如下,以一個(gè)求整數(shù)階乘的模塊為例: -module(fact). -export([fac/1]). fac(0) -> 1; fac(N) when N > 0 -> N * fac(N-1). 下面是快速排序算法的一個(gè)Erlang實(shí)現(xiàn): %% 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]). 并發(fā)及分布式編程 代碼示例如下: % 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.
移動(dòng)通信網(wǎng) | 通信人才網(wǎng) | 更新日志 | 團(tuán)隊(duì)博客 | 免責(zé)聲明 | 關(guān)于詞典 | 幫助