|
Erlang merupakan bahasa pemrograman untuk keperluan umum yang sifatnya
konkuren. Subset dari Erlang merupakan bahasa yang fungsional, dengan
strict evaluation, single assignment dan juga dynamic typing. Bahasa
ini didesain oleh perusahaan Ericsson untuk mendukung aplikasi yang
terdistribusi, fault-tolerant, soft-real-time dan juga non-stop.
Bahasa ini juga mendukung hot swapping, dimana kode bisa dirubah tanpa
harus menghentikan jalannya aplikasi atau sistem. Erlang memang
awalnya merupakan bahasa proprietary di dalam lingkungan Ericsson,
tetapi akhirnya dikeluarkan secara open source pada tahun 1998.
Implementasi Erlang oleh Ericsson secara utama sifatnya interpreter,
tetapi ia juga dilengkapi dengan kompiler yang bernama HiPE (tetapi
tidak didukung oleh setiap platform).
Membuat dan mengatur proses di dalam Erlang merupakan hal yang
sangat mudah, dimana terkadang threads sering dianggap sebagai sesuatu
yang rumit pada beberapa bahasa pemrograman yang lainnya.
Erlang berasal dari nama A. K. Erlang. Hal ini sering kali
menimbulkan salah kaprah dimana orang sering berpikir Erlang adalah
singkatan dari Ericsson Language. Wajar saja, karena memang Erlang
adalah bahasa yang digunakan secara intensif di kalangan Ericsson.
Functional language
Coba perhatikan kode berikut ini:
module(fact).
-export([fac/1]).
fac(0) -> 1;
fac(N) where N > 0 -> N * fac(N-1).
Berikut ini adalah contoh dalam implementasi algoritma Quicksort.
%% quicksort(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]).
Contoh di atas secara rekursif akan memanggil fungsi qsort sampai
tidak ada lagi elemen yang harus disort. Ekspresi [ X || X <- Rest, X < Pivot]
dapat dibaca sebagai "pilih semua X dimana X adalah anggota dari
Rest dan X kurang dari Pivot", hal ini akan menghasilkan sesuatu
yang mudah dalam menghandle Lists. Karena Anda dapat
mengevaluasi ekspresi boolean apapun di antara dua buah tipe data yang
berbeda, maka proses evaluasi akan berlangsung secara langsung,
misalnya 1 < a akan menghasilkan nilai true.
Concurrency oriented language
Kekuatan utama dari Erlang adalah mendukung konkurensi. Dia memiliki
fungsi-fungsi yang kecil tapi sangat berguna dalam membuat proses dan
berkomunikasi antar proses-proses tersebut. Model proses ini
berdasarkan pada Communicating Sequential Processes dari C.A.R. Hoare.
Berikut ini adalah contoh kodenya:
Pid = spawn(Mod, Func, Args) % execute function Func as new process
Pid ! a_message % send message to the process (asynchronously)
receive % receive message sent to this process
a_message -> do_something
end.
Konkurensi mendukung fungsi utama yaitu error-handling di dalam
Erlang. Jika suatu proses mengalami crash, maka dia akan segera keluar
dan akan mengirimkan pesan kepada yang mengontrol proses dan kemudian
bisa diambil tindakan selanjutnya. Metode error-handling seperti ini
dapat meningkatkan proses pemeliharaan dan juga mengurangi
kompleksitas dari kode yang ada.
Distribusi
Erlang dirilis oleh Ericsson secara open source dengan tujuan agar
produk tersebut sifatnya independen dari suatu vendor tertentu dan
juga untuk lebih mengenalkan Erlang ini kepada khalayak luas.
Distribusi dari bahasa ini disertai pula dengan library dan juga
distributed database yang real-time yang bernama (Mnesia) dan dikenal
sebagai Open Telecom Platform atau OTP. Ericsson dan juga beberapa
perusahaan lainnya menawarkan dukungan teknis secara komersial yang
berhubungan dengan Erlang.
Sejak dirilis sebagai open source pada tahun 1998, Erlang semakin
dikenal dan juga digunakan oleh perusahaan kelas dunia lainnya,
misalnya Nortel dan T-Mobile. Namun demikian, Erlang belum menjadi
suatu bahasa pemrograman yang dikenal dan populer dibandingkan yang
lainnya.
Sejak tahun 2005, Erlang dikembangkan secara intensif dengan
dikeluarkannya rilis-rilis baru secara reguler. Erlang juga tersedia
untuk beberapa sistem operasi yang "Unix-like" dan juga
Microsoft Windows.
Ada beberapa produk yang dibuat berbasis Erlang diantaranya adalah:
- ejabberd, yaitu instant messaging server yang ditulis dalam
bahasa Erlang.
- Wings 3D, yaitu 3D modeller yang ditulis dalam Erlang
- Yet another web server, atau disingkat dengan YAWS, yaitu web
server yang ditulis juga dengan Erlang.
Referensi
- Erlang - Wikipedia - http://en.wikipedia.org/
Demikian tulisan sederhana mengenai pengenalan bahasa pemrograman
Erlang. Jika ada komentar atau saran bisa dikirimkan melalui
ariesa.rahardjo@gmail.com. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
Terima kasih.
| Send
your comments or suggestions |
|
|
|