1、Erlang介紹
Erlang是一種通用的面向並發的編程語言,它由瑞典電信設備制造商愛立信所轄的CS-Lab開發,目的是創造一種可以應對大規模並發活動的編程語言和運行環境。Erlang問世於1987年,經過十年的發展,於1998年發布開源版本。Erlang是運行於虛擬機的解釋性語言,但是現在也包含有烏普薩拉大學高性能Erlang計划(HiPE)開發的本地代碼編譯器,自R11B-4版本開始,Erlang也開始支持腳本式解釋器。在編程范型上,Erlang屬於多重范型編程語言,涵蓋函數式、並發式及分布式。順序執行的Erlang是一個及早求值, 單次賦值和動態類型的函數式編程語言。
Erlang 是一個結構化,動態類型編程語言,內建並行計算支持。最初是由愛立信專門為通信應用設計的,比如控制交換機或者變換協議等,因此非常適 合於構建分布式,實時軟並行計算系統。使用Erlang編寫出的應用運行時通常由成千上萬個輕量級進程組成,並通過消息傳遞相互通訊。進程間上下文切換對 於Erlang來說僅僅只是一兩個環節,比起C程序的線程切換要高效得多得多了。
使用Erlang來編寫分布式應用要簡單的多,因為它的分布式機制是透明的:對於程序來說並不知道自己是在分布式運行。Erlang運行時環境是一個虛擬機,有點像Java虛擬機,這樣代碼一經編譯,同樣可以隨處運行。它的運行時系統甚至允許代碼在不被中斷的情況下更新。另外如果需要更高效的話,字節代碼也可以編譯成本地代碼運行。
2、Erlang語言特點
1)並發性 - Erlang支持超大量級的並發進程,並且不需要操作系統具有並發機制。
2)分布式 - 一個分布式Erlang系統是多個Erlang節點組成的網絡(通常每個處理器被作為一個節點)
3)健壯性 - Erlang具有多種基本的錯誤檢測能力,它們能夠用於構建容錯系統。
4)軟實時性- Erlang支持可編程的“軟”實時系統,使用了遞增式垃圾收集技術。
5)熱代碼升級-Erlang允許程序代碼在運行系統中被修改。舊代碼能被逐步淘汰而后被新代碼替換。在此過渡期間,新舊代碼是共存的。
6)遞增式代碼裝載-用戶能夠控制代碼如何被裝載的細節。
7)外部接口-Erlang進程與外部世界之間的通訊使用和在Erlang進程之間相同的消息傳送機制。
8)Fail-fast(中文譯為速錯),即盡可能快的暴露程序中的錯誤。
9)面向並發的編程(COP concurrency-oriented programming)
10)函數式編程
11)動態類型
12)及早求值或嚴格求值
13)腳本語言
3、Erlang源碼安裝
安裝依賴包 yum -y install gcc glibc-devel make ncurses-devel openssl openssl-devel autoconf gcc-c++ kernel-devel m4 unixODBC unixODBC-devel yum -y install wxGTK wxGTK-devel fop libxslt libxslt-devel wget http://www.erlang.org/download/otp_src_18.0.tar.gz tar xzvf otp_src_18.0.tar.gz cd otp_src_18.0 ./configure \ --enable-threads \ --enable-smp-support \ --enable-kernel-poll \ --enable-native-libs \ --without-javac make && make install 配置erlang環境 vi /etc/profile export PATH=$PATH:/usr/local/erlang/bin # whereis erlang erlang: /usr/local/erlang