Katana VentraIP

Erlang (programming language)

Erlang (/ˈɜːrlæŋ/ UR-lang) is a general-purpose, concurrent, functional high-level programming language, and a garbage-collected runtime system. The term Erlang is used interchangeably with Erlang/OTP, or Open Telecom Platform (OTP), which consists of the Erlang runtime system, several ready-to-use components (OTP) mainly written in Erlang, and a set of design principles for Erlang programs.[5]

The Erlang runtime system is designed for systems with these traits:


The Erlang programming language has immutable data, pattern matching, and functional programming.[7] The sequential subset of the Erlang language supports eager evaluation, single assignment, and dynamic typing.


A normal Erlang application is built out of hundreds of small Erlang processes.


It was originally proprietary software within Ericsson, developed by Joe Armstrong, Robert Virding, and Mike Williams in 1986,[8] but was released as free and open-source software in 1998.[9][10] Erlang/OTP is supported and maintained by the Open Telecom Platform (OTP) product unit at Ericsson.

Everything is a process.

Processes are strongly isolated.

Process creation and destruction is a lightweight operation.

Message passing is the only way for processes to interact.

Processes have unique names.

If you know the name of a process you can send it a message.

Processes share no resources.

Error handling is non-local.

Processes do what they are supposed to do or fail.

Functional programming examples[edit]

Factorial[edit]

A factorial algorithm implemented in Erlang:

Implementation[edit]

The official reference implementation of Erlang uses BEAM.[36] BEAM is included in the official distribution of Erlang, called Erlang/OTP. BEAM executes bytecode which is converted to threaded code at load time. It also includes a native code compiler on most platforms, developed by the High Performance Erlang Project (HiPE) at Uppsala University. Since October 2001 the HiPE system is fully integrated in Ericsson's Open Source Erlang/OTP system.[37] It also supports interpreting, directly from source code via abstract syntax tree, via script as of R11B-5 release of Erlang.

Distribution[edit]

In 1998, Ericsson released Erlang as free and open-source software to ensure its independence from a single vendor and to increase awareness of the language. Erlang, together with libraries and the real-time distributed database Mnesia, forms the OTP collection of libraries. Ericsson and a few other companies support Erlang commercially.


Since the open source release, Erlang has been used by several firms worldwide, including Nortel and T-Mobile.[38] Although Erlang was designed to fill a niche and has remained an obscure language for most of its existence, its popularity is growing due to demand for concurrent services.[39][40] Erlang has found some use in fielding massively multiplayer online role-playing game (MMORPG) servers.[41]

– a functional, concurrent, general-purpose programming language that runs on BEAM

Elixir

- Lua on the BEAM, designed and implemented by one of the creators of Erlang.

Luerl

(LFE) – a Lisp-based programming language that runs on BEAM

Lisp Flavored Erlang

Mix (build tool)

Phoenix (web framework)

Gleam (programming language)

"Erlang: The Movie"

Edit this at Wikidata

Official website