Erlang簡介——未來語言的王者!
Erlang是一種通用的面向并發的編程語言,它由瑞典電信設備制造商愛立信所轄的CS-Lab開發,目的是創造一種可以應對大規模并發活動的編程語言和運行環境。
Erlang
Erlang問世于1987年,經過十年的發展,于1998年發布開源版本[1]。Erlang是運行于虛擬機的解釋性語言,但是現在也包含有烏普薩拉大學高性能Erlang計劃(HiPE)開發的本地代碼編譯器,自R11B-4版本開始,Erlang也開始支持腳本式解釋器。在編程范型上,Erlang屬于多重范型編程語言,涵蓋函數式、并發式及分布式。順序執行的Erlang是一個及早求值, 單次賦值和動態類型的函數式編程語言。
發展歷史
Erlang得名于丹麥數學家及統計學家Agner Krarup Erlang,同時Erlang還可以表示Ericsson Language。 Erlang并非一門新語言,它出現于1987年,只是當時對并發、分布式需求還沒有今天這么普遍,當時可謂英雄無用武之地。Erlang語言創始人Joe Armstrong當年在愛立信做電話網絡方面的開發,他使用Smalltalk,可惜那個時候Smalltalk太慢,不能滿足電話網絡的高性能要求。但Joe實在喜歡Smalltalk,于是定購了一臺Tektronix Smalltak機器。但機器要兩個月時間才到,Joe在等待中百無聊賴,就開始使用Prolog,結果等Tektronix到來的時候,他已經對Prolog更感興趣,Joe當然不滿足于精通Prolog,經過一段時間的試驗,Joe給Prolog加上了并發處理和錯誤恢復,于是Erlang就誕生了。這也是為什么Erlang的語法和Prolog有不少相似之處,比如它們的List表達都是[Head | Tail]。 1987年Erlang測試版推出,并在用戶實際應用中不斷完善,于1991年向用戶推出第一個版本,帶有了編譯器和圖形接口等更多功能。1992年,Erlang迎來更多用戶,如RACE項目等。同期Erlang被移植到VxWorks、PC和 Macintosh等多種平臺,兩個使用Erlang的產品項目也開始啟動。1993愛立信公司內部獨立的組織開始維護和支持Erlang實現和Erlang工具。 目前,隨著網絡應用的興起,對高并發、分布部署、持續服務的需求增多,Erlang的特性剛好滿足這些需求,于是Erlang開始得到更多人的關注。</div>
語言特點
Erlang是一個結構化,動態類型編程語言,內建并行計算支持。最初是由愛立信專門為通信應用設計的,比如控制交換機或者變換協議等,因此非常適合于構建分布式,實時軟并行計算系統。 使用Erlang編寫出的應用運行時通常由成千上萬個輕量級進程組成,并通過消息傳遞相互通訊。進程間上下文切換對于Erlang來說僅僅只是一兩個環節,比起C程序的線程切換要高效得多得多了。 使用Erlang來編寫分布式應用要簡單的多,因為它的分布式機制是透明的:對于程序來說并不知道自己是在分布式運行。 Erlang運行時環境是一個虛擬機,有點像Java虛擬機,這樣代碼一經編譯,同樣可以隨處運行。它的運行時系統甚至允許代碼在不被中斷的情況下更新。另外如果你需要更高效的話,字節代碼也可以編譯成本地代碼運行。 Erlang特性: ● 并發性 - Erlang支持超大量級的并發線程,并且不需要操作系統具有并發機制。 ● 分布式 - 一個分布式Erlang系統是多個Erlang節點組成的網絡(通常每個處理器被作為一個節點) ● 健壯性 - Erlang具有多種基本的錯誤檢測能力,它們能夠用于構建容錯系統。 ● 軟實時性- Erlang支持可編程的“軟”實時系統,使用了遞增式垃圾收集技術。 ● 熱代碼升級-Erlang允許程序代碼在運行系統中被修改。舊代碼能被逐步淘汰而后被新代碼替換。在此過渡期間,新舊代碼是共存的。 ●遞增式代碼裝載-用戶能夠控制代碼如何被裝載的細節。 ●外部接口-Erlang進程與外部世界之間的通訊使用和在Erlang進程之間相同的消息傳送機制。 ●Fail-fast(中文譯為速錯),即盡可能快的暴露程序中的錯誤。 ●面向并發的編程(COP concurrency-oriented programming) ●函數式編程 ●動態類型 ●及早求值或嚴格求值 ●腳本語言</div></div></span></font></div>
</div>
本文由用戶 巧樂茲 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
推薦閱讀
Erlang簡介——未來語言的王者!
Erlang是一種通用的面向并發的編程語言,它由瑞典電信設備制造商愛立信所轄的CS-Lab開發,目的是創造一種可以應對大規模并發活動的編程語言和運行環境。 Erlang Erlang問世于 19...
簡介Scala編程語言
Scala編程語言近來抓住了很多開發者的眼球。如果你粗略瀏覽Scala的網站,你會覺得Scala是一種純粹的面向對象編程語言,而又無縫地結合了命令式和函數式的編程風格。 Christopher ...
JAVAFX2的未來
這 玩意兒還要從Sun活著的時候說起,在去年的去年的去年的哪一年,Sun還很健康,眼看著Adobe?Flash如日中天,一天比一天過得滋潤,心里哪個 急呀。再看看Microsoft這位大叔也開始...