Erlang_(programlama_dili)

| Bilgi | Detay |
| --- | --- |
|  | |
| **Paradigması** | Çok paradigmalı Eşzamanlı Fonksiyonel |
| **İlk çıkışı** | 1986 |
| **Tasarımcı** | Joe Armstrong, Robert Virding, Mike Williams |
| **Geliştirici** | Ericsson |
| **Kararlı sürüm** | 28.2 [ 1 ] (24 Kasım 2025 (6 gün önce ) ( 24 Kasım 2025 ) ) |
| **Etkilendikleri** | Lisp Prolog Smalltalk |
| **Etkiledikleri** | Clojure Dart Elixir F# Rust Scala Go |
| **Lisans** | Apache License 2.0 |
| **Olağan dosya uzantıları** | .erl, .hrl |
| **Web sitesi** | erlang.org |

Erlang, Ericsson firması tarafından 1986'da Joe Armstrong , Robert Virding ve Mike Williams önderliğinde geliştirilen genel amaçlı ( general-purpose ), eşzamanlı ( concurrent ), dinamik ( dynamic typing ), fonksiyonel ve atık toplama ( garbage-collected ) özelliğine sahip olan bir dildir. Erlang veya alternatifi olan Erlang/OTP şeklinde tanımlamalar da kullanılabilir. Erlang/OTP işleyiş sürecinin bir parçasıdır ve birçok kullanıma hazır komponent/bileşen sunmaktadır. Erlang/OTP bileşenlerinin birçoğu Erlang programlama dili ile yazılmıştır. Erlang/OTP, bunların yanında bir dizi tasarım prensipleri de sunmaktadır. Erlang ile yazılan sistemler aşağıdaki listedeki özelliklere sahip olunması amaçlandığında çok güçlü bir rol oynamaktadır: Erlang çalışma zamanı sistemi, aşağıdaki özelliklere sahip sistemler için tasarlanmıştır: Dağıtık ( Distributed ) Arızaya dayanıklılık ( Fault-tolerant ) Gerçek zaman sistemleri ( Real-time ) Yüksek erişilebilirlik ( Highly available, non-stop applications ) Hızlı Değiş-Tokuş ( Hot swapping ), çalışan sistemde kod değiştirildiği zaman tekrar yeniden başlatılmaya ihtiyaç duyulmayan Dilin temel aldığı önemli 3 adet özellik vardır. Bunlar sırasıyla değişmez veri ( Immutable data ), model eşleşme ( Pattern matching ) ve fonksiyonel programlamadır. Aktör Model ( Actor Model ) tasarım örüntüsünü benimseyen yapısı sayesinde karmaşık ve çok büyük derecede eşzamanlı uygulamaların geliştirilmesi diğer dillere göre daha kolay bir hal almaktadır. Sıradan bir Erlang yüzlerce küçük Erlang sürecinden meydana gelir.

Kod örnekleri Özyineleme ( recursion ) yöntemi ile 10'a kadar sayan bir fonksiyon: - module ( count_to_ten ). - export ([ count_to_ten / 0 ]). count_to_ten () -> do_count ( 0 ). do_count ( 10 ) -> 10 ; do_count ( N ) -> do_count ( N + 1 ). Faktöriyel algoritmasının Erlang dilinde gerçeklemesi: - module ( fact ). % This is the file 'fact.erl', the module and the filename must match - export ([ fac / 1 ]). % This exports the function 'fac' of arity 1 (1 parameter, no type, no name) fac ( 0 ) -> 1 ; % If 0, then return 1, otherwise (note the semicolon ; meaning 'else') fac ( N ) when N > 0 , is_integer ( N ) -> N * fac ( N - 1 ). % Recursively determine, then return the result % (note the period . meaning 'endif' or 'function end') %% This function will crash if anything other than a nonnegative integer is given. %% It illustrates the "Let it crash" philosophy of Erlang. g t d Programlama dilleri Karşılaştırma Zaman Çizelgesi Tarihçe Ada ALGOL APL Assembly BASIC C C++ C# Classic Visual Basic COBOL Erlang Forth Fortran Go Haskell Java JavaScript Kotlin Lisp Lua MATLAB ML Object Pascal Pascal Perl PHP Prolog Python R Ruby Rust SQL Scratch Shell Simula Smalltalk Swift Visual Basic dahası... Listeler: Alfabetik Kategoriik Nesilsel İngilizce temelli olmayan Kategori Otorite kontrolü GND : 4324177-3 LCCN : sh93000031 NLI : 987007544092105171 ↑ "Release 28.2" . 24 Kasım 2025 . Erişim tarihi: 25 Kasım 2025 .