Erlang
Функциональный язык программирования / Материал из Википедии — свободной encyclopedia
Уважаемый Wikiwand AI, давайте упростим задачу, просто ответив на эти ключевые вопросы:
Перечислите основные факты и статистические данные о Erlang?
Кратко изложите эту статью для 10-летнего ребёнка
Erlang [ˈɜːlæŋ][5] — функциональный язык программирования с сильной динамической типизацией, предназначенный для создания распределённых вычислительных систем. Разработан и поддерживается компанией Ericsson. Язык включает в себя средства порождения параллельных легковесных процессов и их взаимодействия через обмен асинхронными сообщениями в соответствии с моделью акторов.
Erlang | |
---|---|
Семантика | мультипарадигмальный: параллельное, функциональное программирование |
Класс языка | мультипарадигмальный, язык параллельного программирования[вд], язык функционального программирования, декларативный язык программирования, язык программирования, открытое программное обеспечение, свободное программное обеспечение и умение |
Появился в | 1986[1] |
Автор | Джо Армстронг |
Разработчик | Джо Армстронг, Ericsson и Роберт Вирдинг[вд] |
Расширение файлов |
.erl |
Выпуск | |
Система типов | сильная, динамическая |
Испытал влияние | ML, Пролог, Лисп, PLEX[вд], Smalltalk, Миранда, Ада, Модула-2 и CHILL |
Лицензия | Apache License 2.0[3] |
Сайт | erlang.org (англ.) |
ОС | кроссплатформенность[4] |
Медиафайлы на Викискладе |
Erlang был целенаправленно разработан для применения в распределённых, отказоустойчивых, параллельных системах реального времени[⇨], для которых, кроме средств самого языка, имеется стандартная библиотека модулей[⇨] и библиотека шаблонных решений (так называемых поведений) — фреймворк OTP (англ. Open Telecom Platform)[⇨]. Программа на Erlang транслируется в байт-код, исполняемый виртуальными машинами, находящимися на различных узлах распределённой вычислительной сети. Erlang-системы поддерживают горячую замену кода[⇨], что позволяет эксплуатировать оборудование безостановочно.
Свой синтаксис и некоторые концепции Erlang унаследовал от языка логического программирования Пролог[6]. Язык поддерживает многие типы данных[⇨], условные конструкции[⇨], сопоставление с образцом[⇨], обработку исключений[⇨], списковые включения[⇨] и выражения битовых строк[⇨], функции[⇨] (анонимные функции[⇨], функции высшего порядка, рекурсивные определения функций, оптимизацию хвостовой рекурсии), модули[⇨], приём и отправку сообщений[⇨] между процессами. Препроцессор[⇨] поддерживает работу с макросами и включение заголовочных файлов.
Популярность Erlang начала расти в связи с расширением его области применения (телекоммуникационные системы) на высоконагруженные параллельные распределённые системы, обслуживающие миллионы пользователей WWW, такие как чаты, системы управления содержимым, веб-серверы и распределённые, требующие масштабирования базы данных. Erlang применяется в нескольких NoSQL-базах данных высокой доступности[7].