Erlang - це
Синтаксис успадкований від Prolog; компактний, містить мінімум конструкцій, легкий для освоєння, але не примітивний. Синтаксис підтримує модулі, поліморфні функції. зіставлення зі зразком. анонімні функції. умовні конструкції, структури, обробку винятків, оптимізацію хвостовій рекурсії. що і утворює базовий арсенал сучасних функціональних мов.
Відсутність присвоювання дозволяє Erlang уникнути таких традиційних для імперативних мов проблем в розподілених додатках, як необхідність синхронізації. небезпека виникнення тупиків і гонок.
Робота з процесами
Відмінною особливістю мови є модель легковагих процесів (аналогічно потокам в OpenMP), реалізація заохочує створення великої кількості таких процесів. Ці процеси ізольовані один від одного і не мають загального стану, між процесами можна встановити зв'язок і отримати повідомлення про їх стан. Для взаємодії процесів використовується асинхронний обмін повідомленнями. Процес має свою чергу повідомлень, а при її обробці використовується зіставлення зі зразком.
Відсутність необхідності блокування доступу до стану процесу для синхронізації їх взаємодії спрощує розробку. Для роботи з ресурсами, як правило, створюється процес-монітор.
На думку розробників, важливою перевагою мови є принцип роботи процесу «let it crash» ( «нехай падає»). Замість перехоплення помилок і спроби продовження роботи, частина програми, яка містить ризикований код, виділяється в окремий «процес-смертник», який система завершує в разі виникнення помилки, а процес-батько отримує відповідні повідомлення і обробляє їх. Це дозволяє позбутися від численних перевірок.
розподілене програмування
Запущений екземпляр емулятора Erlang називається вузлом (англ. Node). Вузол має ім'я і «знає» про існування інших вузлів на даній машині або в мережі. Створення та взаємодія процесів різних вузлів не відрізняється від взаємодії процесів всередині вузла. Для створення процесу на іншому вузлі процесу досить знати його ім'я і, без особливих на те підстав, він може не цікавитися фізичним розташуванням взаємодіє з ним процесу.
Програми, написані на Erlang, здатні працювати на декількох вузлах. Вузлами можуть бути процесори, багато ядра одного процесора, або цілий кластер машин. Чим складніше додаток і чим більше воно створює процесів, тим легше його масштабувати; і навпаки, якщо не використовуються переваги функціонального програмування, то можна обмежитися єдиним процесом.
Обчислення факторіала на Erlang:
Алгоритм сортування (схожий на швидку сортування):
Дивитися що таке "Erlang" в інших словниках:
Erlang - bezeichnet: Agner Krarup Erlang (1878-1929), dänischer Mathematiker und Ingenieur eine Pseudomaßeinheit für die Verkehrsbelastung von Netzwerkleitungen, siehe Erlang (Einheit) ein Warteschlangenmodell, siehe Erlang C bzw. Erlang B eine ... ... Deutsch Wikipedia
erlang - [ɛʀlɑg] n. m. ÉTYM. 1973 Science et Vie, in la Clé des mots; nom d un savant danois. ❖ ♦ Techn. Unité servant à mesurer l intensité moyenne du trafic téléphonique ... Encyclopédie Universelle
Erlang - Para otros usos de este término, véase Erlang (desambiguación). Erlang es un lenguaje de programación concurrente y un sistema de ejecución que incluye una máquina virtual y bibliotecas. El subconjunto de programación secuencial de Erlang es un ... ... Wikipedia Español
erlang - (E) a measure of telecommunications traffic density. The erlang is a dimensionless unit representing a traffic density of one call second per second (or one call hour per hour, etc.). The erlang is sometimes divided into 36 unit calls or 30 ... ... Dictionary of units of measurement
Erlang - Cette page d'homonymie répertorie les différents sujets et articles partageant un même nom. Voir: Erlang, une unité de mesure de trafic en télécommunication; Erlang, un langage de programmation; Agner Krarup Erlang, un ingénieur et ... ... Wikipédia en Français
erlang - / ɜlæŋ / (say erlang) noun Telecommunications a measure of occupancy of a circuit or set of circuits; one circuit occupied full time has a rating of one erlang. ... Australian English dictionary
Erlang - erlangas statusas T sritis Standartizacija ir metrologija apibrėžtis Ryšio kanalo arba linijos apkrovos matavimo vienetas. Vienas erlangas lygus vienos valandos ryšio srautui. atitikmenys: angl. erlang vok. Erlang, n rus. ерланг, m pranc. erlang ... Penkiakalbis aiškinamasis metrologijos terminų žodynas
erlang - erlangas statusas T sritis Standartizacija ir metrologija apibrėžtis Ryšio kanalo arba linijos apkrovos matavimo vienetas. Vienas erlangas lygus vienos valandos ryšio srautui. atitikmenys: angl. erlang vok. Erlang, n rus. ерланг, m pranc. erlang ... Penkiakalbis aiškinamasis metrologijos terminų žodynas
- Erlang Programming. Cesarini Francesco. Offers an explanation of Erlang, a programming language ideal for any situation where concurrency, fault-tolerance, and fast response is essential. This book focuses on the language`s syntax ... Детальніше Купити за 4175 руб
- Проектування масштабованих систем за допомогою Erlang / OTP. Чезаріні Ф. Отже, вам потрібно створити масштабовану і стійку до збоїв систему, що має вимоги до високої доступності. Дізнайтеся, чому платформа Erlang / OTP так відома широтою, глибиною і ... Детальніше Купити за +1752 руб
- Вивчай Erlang в ім'я добра !. Фред Хеберт. Усіяна безтурботними ілюстраціями і сумішшю розважальних і практичних прикладів програм, книга Вивчай ERLANG В ІМ'Я ДОБРА! є відмінним пунктом отправленіяв іноді божевільний, але ... Детальніше Купити за 1010 руб