什麼是Erlang

來源:互聯網
上載者:User

認識Erlang

  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開始得到更多人的關注

  Erlang是一個結構化,動態類型程式設計語言,內建並行計算支援。最初是由愛立信專門為通訊應用設計的,比如控制交換器或者變換協議等,因此非常適合於構建分布式,即時軟並行計算系統。

  使用Erlang編寫出的應用運行時通常由成千上萬個輕量級進程組成,並通過訊息傳遞相互連訊。進程間環境切換對於Erlang來說僅僅只是一兩個環節,比起C程式的線程切換要高效得多得多了。

  使用Erlang來編寫分布式應用要簡單的多,因為它的分布式機制是透明的:對於程式來說並不知道自己是在分布式運行。

  Erlang運行時環境是一個虛擬機器,有點像Java虛擬機器,這樣代碼一經編譯,同樣可以隨處運行。它的運行時系統甚至允許代碼在不被中斷的情況下更新。另外如果你需要更高效的話,位元組代碼也可以編譯成本地代碼運行。

  Erlang特性:

  ● 並發性 - Erlang支援超大量級的並發線程,並且不需要作業系統具有並發機制。

  ● 分布式 - 一個分布式Erlang系統是多個Erlang節點群組成的網路(通常每個處理器被作為一個節點)

  ● 健壯性 - Erlang具有多種基本的錯誤偵測能力,它們能夠用於構建容錯系統。

  ● 軟即時性- Erlang支援可程式化的“軟”即時系統,使用了遞增式垃圾收集技術。

  ● 熱代碼升級-Erlang允許程式碼在運行系統中被修改。舊代碼能被逐步淘汰而後被新代碼替換。在此過渡期間,新舊代碼是共存的。

  ●遞增式代碼裝載-使用者能夠控制碼如何被裝載的細節。

  ●外部介面-Erlang進程與外部世界之間的通訊使用和在Erlang進程之間相同的訊息傳送機制。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.