factograf
BE
Sign in

Erlang

Erlang
All data from the card 9
Семантыка
функцыянальная
З’явілася ў
1986
Аўтар(ы)
Джо Армстронг, Роберт Вірдзінг, Майк Уільямс
Пашырэнне файлаў
.erl, .hrl
Тыпізацыя даных
дынамічная, строгая
Зведала ўплыў
Lisp, Prolog, Smalltalk
Паўплывала на
Clojure, Elixir, Rust, Scala, Go
Ліцэнзія
Apache Software License 2.0[d]
Сайт
erlang.org (англ.)

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

Erlang была створана ў 1986 годзе ў кампаніі Ericsson Джо Армстрангам, Робертам Вірдзінгам і Майкам Уільямсам. Яны даследавалі магчымасць выкарыстання тагачасных моў праграмавання для пабудовы тэлекамунікацыйных сістэм, аднак у выніку стварылі ўласную мову праграмавання і платформу Erlang/OTP (Open Telecom Platform).

Першапачаткова гэта было прапрыетарнае праграмнае забеспячэнне, аднак у 1998 годзе Ericsson вырашыла адмовіцца ад далейшага выкарыстання мовы ўнутры кампаніі для новых прадуктаў, што прывяло да выпуску Erlang у якасці свабоднага праграмнага забеспячэння з адкрытым зыходным кодам і выхаду стваральнікаў мовы з кампаніі. У выніку кампанія зноў наняла Армстранга ў 2004 годзе і працягнула выкарыстоўваць Erlang.

Erlang выкарыстоўваецца ў мабільных сетках GPRS, 3G і LTE па ўсім свеце. Аднак гэта не адзіная сфера яе ўжывання — Erlang была выкарыстана для распрацоўкі RabbitMQ і WhatsApp, таксама яе выкарыстоўваюць унутры сваіх праектаў такія кампаніі, як Facebook, Cisco, Goldman Sachs, Nintendo і Samsung.

Прыклад

Прыклад напісання праграмы падліку фактарыяла:

-module(fact). % Вызначэнне назвы модуля, павінна супадаць з назвай файла ('fact.erl')
-export([fac/1]). % Экспарт функцыі, пазначэнне арнасці 1

fac(0) -> 1; % Пры перадачы 0 вернецца 1, інакш - гл. наступны радок
fac(N) when N > 0, is_integer(N) -> N * fac(N-1). % Рэкурсіўны падлік, вяртанне рэзультата

Read next

In 39 languages

Text from Wikipedia, CC BY-SA 4.0 · Source article