Erlang Programlama Dili (1)

erdal turan
2 min readAug 30, 2018

--

Erlang Fonksiyonel ve Moduler bir Programlama Dilidir.

Turkiye`de cok bilinmemesine ragmen Erlang, Avrupa ve Amerika da buyuk ve orta olcekli firmalar, devlet kurumlari universiteler, bankalar ve telekomunikasyon firmalari tarafindan kullanilmaktadir.

Avrupa`da bazi universiteler ise Erlang dilini fonksiyonel programlama dersi olarak ogretmektedirler.

Nasil , nerede ve kimler tarafindan gelistirilmistir?

Erlang, Joe Armstrong ve arkadaslari tarafindan Ellemtel telekomünikasyon sistemleri Laboratuvarlarında gelistirildi.

Erlang, büyük endüstriyel ve gerçek zamanlı sistemlerin programlanması için tasarlanmıs eszamanli(concurent) ve fonksiyonel bir programlama dilidir.

Erlang dinamik olarak yazilmistir ve bir desen esleme ( pattern matching) sözdizimine sahiptir.

Fonksiyonlar bu dilde ozyinelemeli olarak kullanilir ve tanimlanirlar. Erlang acik es zamanlilik saglar, ve yan etkilerden(side effect) aritilmis bir dildir.

Erlang cok guclu dagitik bir mimariye sahiptir.

Dagitilmis Erlang programlari capraz platform coklu sistemlerde seffaf olarak calisirlar. Erlang calisma zamani hatalarini ve dinamik kod degistirmeyi tespit edebilmek icin kendi icinde bazi temel ozellikler barindirir (yani,calisan sisteminizi durdurmadan yukseltme yapabilirsiniz buyuk sistemler de bu onemlidir bu da demek oluyor ki sisteminiz non stop calismaya devam edecektir)

Fonksiyonel programlama dillerini diger programlama dillerden ayiran belirgin ozellikleri vardir.

Fonksiyonel Programlama Diller Deklere edilen dillerdir bu da su demektir kodu okuyan biri kodun tum amacini seffaf bir sekilde gorebilir ve anliyabilir, bir programci icin bundan daha guzel ne olabilir ki?

  1. transparency (seffaflik)

Erlang`da process ve code seffafligi diye ayirabilecegimiz iki seffaflik yapisi vardir, tum processler birer pid id alirlar ve bu processleri tanimamizi saglar.

Kod Seffafligi;

Asagida ki kisa kod orneginde ise bir kodun nasil seffaf olabilecegini gorecegiz;

-module(hello).
-export([hello_world/0]).

hello_world() -> io:fwrite("hello, world\n").

Yukarida ki kod parcaciginda neler var? seffaflik bunun neresinde?

Ne demistik Erlang Moduler ve Fonksiyonel bir dildir .

  1. satirda hello adin da bir modul olusturulacagi declere ediliyor.
-module(hello).

2.satirda ise hello_world adinda bir fonksiyonun bu modul icerisinde yer alacagi declere ediliyor

-export([hello_world/0]).

Erlang`da bir fonksiyon deklere edilirken iki seye dikkat etmek gerekiyor bir fonksiyonun adi slash tan sonra ise alacagi arguman sayisi ornek bu fonksiyonun girdi parametresi hello_world/0yani bir parametre almadan calisacagi anlamina geliyor bir modul icerisinde kac tane fonksiyon yer alacaksa hepsi -export fonksiyonu icerisinde bir liste olarak yazilmak zorundadir.

hello_world() -> io:fwrite("hello, world\n").

Yukari da ise hello_world fonksiyonu `io` modulune ait `fwrite` fonksiyonunun cagrisini yerine getiriliyor ve ekrana hello world yazdiriliyor.

Erlang`da butun fonksiyonlar (). nokta ile biter, noktali virgul kullanilmaz. nokta konmayana kadar surec isletilir nokta konmussa baska bir surece gecildigi anlamina gelir buna da dikkat edilmelidir.

taslaktir devam edecek…

--

--

erdal turan

I was born 42 years ago in the derekoy village, Live I now in city of izmir I have 18 years of experience. programing language — erlang,elixir,python.golang