Erlang/OTP 24

Erlang — функциональный язык программирования с сильной динамической типизацией, предназначенный для создания распределённых вычислительных систем. 

Erlang был целенаправленно разработан для применения в распределённых, отказоустойчивых, параллельных системах реального времени, для которых, кроме средств самого языка, имеется стандартная библиотека модулей и библиотека шаблонных решений (так называемых поведений) — фреймворк OTP. Программа на Erlang транслируется в байт-код, исполняемый виртуальными машинами, находящимися на различных узлах распределённой вычислительной сети. Erlang-системы поддерживают горячую замену кода, что позволяет эксплуатировать оборудование безостановочно. 

Свой синтаксис и некоторые концепции Erlang унаследовал от языка логического программирования Пролог. Язык поддерживает многие типы данных, условные конструкции, сопоставление с образцом, обработку исключений, списковые включения и выражения битовых строк, функции (анонимные функции, функции высшего порядка, рекурсивные определения функций, оптимизацию хвостовой рекурсии), модули, приём и отправку сообщений между процессами. Препроцессор поддерживает работу с макросами и включение заголовочных файлов. 

Основные изменения в новой версии языка программирования:

  • В состав включён JIT-компилятор BeamAsm, который позволяет не только повысить производительность программ за счёт выполнения машинного кода вместо интерпретации, но и поддерживает расширенные инструменты для профилирования и анализа выполнения.
  • Улучшено оформление сообщений об ошибках, которые теперь включают номера столбцов для определения проблемной позиции в строке и предоставляют дополнительную диагностику ошибок при вызове встроенных функций (BIF, built-in functions).
  • Добавлены новые оптимизации обработки секции "receive".
  • В модуле gen_tcp добавлена поддержка нового API сетевых сокетов вместо API inet.
  • В модуле supervisor реализована возможность автоматического завершения всех связанных с сетевым соединением дочерних процессов.
  • Добавлена поддержка алгоритма формирования цифровых подписей EdDSA (Edwards-curve Digital Signature Algorithm) в соединениях на базе TLS 1.3.

Erlang является декларативным языком программирования, который скорее используется для описания того, что должно быть вычислено нежели как.

 

Последние материалы