Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Содержание
1История
2Философия
3Основные особенности
o 3.1Высокоуровневые конструкции
o 3.2Параллельные вычисления
o 3.3Распределённые вычисления
o 3.4Мягкое реальное время
o 3.5Горячая замена кода
4Описание языка
o 4.1Типы данных
4.1.1Числа
4.1.2Атомы
4.1.3Битовые строки и бинарные данные
4.1.4Кортеж
4.1.5Список
4.1.6Строка
4.1.7Логические значения
4.1.8Функциональный объект (Fun)
4.1.9Запись
4.1.10Ассоциативный массив
4.1.11Другие типы
4.1.12Встроенные функции для работы с типами
o 4.2Операции
4.2.1Арифметические операции
4.2.2Битовые операции
4.2.3Логические операции
4.2.4Операции сравнения
o 4.3Переменные
o 4.4Сопоставление с образцом
o 4.5Функции
4.5.1Примеры
o 4.6Условные выражения
o 4.7Препроцессор и макросы
o 4.8Обработка ошибок
o 4.9Модули
o 4.10Процессы
4.10.1Создание процессов
4.10.2Отправка и приём сообщений
4.10.3Обработка ошибок и завершение процессов
o 4.11Ввод-вывод
5Библиотеки
o 5.1Стандартная библиотека модулей
5.1.1Таблицы ETS и DETS
o 5.2Фреймворк OTP
o 5.3Разработка графического интерфейса пользователя
6Программирование на Erlang
o 6.1Интерактивная оболочка
o 6.2Документирование и оформление кода
o 6.3Типы и анализ кода
o 6.4Тестирование, профилирование, рефакторинг
o 6.5Эффективность
7Erlang и другие языки программирования
o 7.1Интеграция и гибридные языки
o 7.2Сравнение Erlang и C++ по производительности
o 7.3Сравнение взаимодействия процессов в Erlang и Go
8Критика
9Сфера применения
10Сообщество
11Примечания
12Литература
13Статьи
14Ссылки
История[править | править код]
В середине 1980-х в компьютерной лаборатории компании Ericsson исследовали
применимость существовавших на тот момент языков программирования для программного
обеспечения телекоммуникационных систем. Джо Армстронг, Роберт Вирдинг (Robert Virding)
и Майк Вильямс (Mike Williams) под руководством Бьярне Деккера (Bjarne Däcker), написав
прототипы программ на различных языках, пришли к выводу, что ни один из этих языков не
имел полного набора возможностей, необходимых в области телекоммуникационных систем.
В результате был создан новый язык программирования — Erlang[8]. Своё название язык,
вероятно, получил в честь датского математика и инженера Агнера Эрланга, основателя
научного направления по изучению сетевого трафика в телекоммуникационных системах. По
другой версии, название языка изначально было сокращением от «ericsson language»[9].
Влияние на Erlang оказали ML, Миранда, Ада, Модула-2, CHILL, Пролог. Кроме того, на способ
обновления программного обеспечения повлиял Smalltalk и использованные Ericsson
проприетарные языки EriPascal и PLEX[8].
Потребовалось четыре года развития языка и прототипирования с
использованием виртуальной машины Пролога, после чего в 1991 году Майк Вильямс
переписал виртуальную машину для Erlang на Си. В 1992 году Erlang был впервые
использован в коммерческом проекте[8]. В 1995 году вышла новая версия Erlang, вобравшая
накопившийся к тому моменту опыт использования языка. Язык был сочтён достаточно
развитым для использования в других продуктах компании (решения для широкополосной
связи, GPRS, ATM)[8].
В декабре 1995 года случилось событие, которое Джо Армстронг считает решающим для
Erlang: проект AXE-N в Ellemtel по созданию нового маршрутизатора (как оборудования, так и
системного программного обеспечения на C++) потерпел неудачу. В результате
реорганизации проекта удалось, использовав разработанное оборудование и язык
программирования Erlang, начать работы над ATM-маршрутизаторами серии AXD. Ресурсов
лаборатории для такого проекта оказалось недостаточно, поэтому для работ по Erlang было
создано производственное подразделение под названием OTP (Open Telecom Platform)[10]. В
1996 году увидел свет одноимённый фреймворк OTP[8].