Erlang (programming language)

ErlangErlang programming languageErlang/OTPE'''rlangErlang languageThe Erlang Open Telecom PlatformWrite once, run forever
Erlang is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system.wikipedia
311 Related Articles

Functional programming

functionalfunctional programming languagefunctional language
Erlang is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system. The Erlang programming language has immutable data, pattern matching, and functional programming.
However, programming languages that support functional programming have been used in industry, including Common Lisp, Scheme, Clojure, Wolfram Language, Racket, Erlang, OCaml, Haskell, and F#.

Open Telecom Platform

Erlang/OTP
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.
OTP is a collection of useful middleware, libraries, and tools written in the Erlang programming language.

General-purpose programming language

general-purposeGeneralgeneral purpose programming language
Erlang is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system.

Assignment (computer science)

assignmentsingle assignmentassignment operator
The sequential subset of the Erlang language supports eager evaluation, single assignment, and dynamic typing.
Functional programming languages that use single assignment include Clojure (for data structures, not vars), Erlang (it accepts multiple assignment if the values are equal, in contrast to Haskell), F#, Haskell, Lava, OCaml, Oz (for dataflow variables, not cells), Racket (for some data structures like lists, not symbols), SASL, Scala (for vals), SISAL, Standard ML.

Joe Armstrong (programmer)

Joe Armstrong
It was originally proprietary software within Ericsson, developed by Joe Armstrong, Robert Virding, and Mike Williams in 1986, but was released as free and open-source software in 1998.
He is best known as the author of the Erlang programming language.

BEAM (Erlang virtual machine)

BEAM
In 1992, work began on the BEAM virtual machine (VM) which compiles Erlang to C using a mix of natively compiled code and threaded code to strike a balance between performance and disk space.
BEAM is the virtual machine at the core of the Erlang Open Telecom Platform (OTP).

Pattern matching

pattern-matchingpatternpatterns
The Erlang programming language has immutable data, pattern matching, and functional programming.
Mailboxes in Erlang also work this way.

Programming language

programming languageslanguagedialect
Erlang is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system. The Erlang programming language has immutable data, pattern matching, and functional programming.
Some languages may make the transition from closed to open; for example, Erlang was originally an Ericsson's internal programming language.

Immutable object

immutableimmutabilitymutable
The Erlang programming language has immutable data, pattern matching, and functional programming.

Hot swapping

hot-swappablehot swaphotplug
Only a few programming languages support hot swapping natively, including Pike, Lisp, Erlang, Smalltalk, Visual Basic 6 (Not VB.net), Java and most recently Elm and Elixir.

Ericsson

LM EricssonL. M. EricssonEriccson
It was originally proprietary software within Ericsson, developed by Joe Armstrong, Robert Virding, and Mike Williams in 1986, but was released as free and open-source software in 1998.

Anonymous function

lambda expressionanonymous functionslambda expressions
Note also that the anonymous function is named in the parameter list of the second definition of so that it can be referenced by that name within that function.
Erlang uses a syntax for anonymous functions similar to that of named functions.

PLEX (programming language)

PLEXPLEX programming language
The initial version of Erlang was implemented in Prolog and was influenced by the programming language PLEX used in earlier Ericsson exchanges.
* Erlang (programming language) – a concurrent language designed at Ericsson in the 1980s

Prolog

SICStus PrologProlog IISICStus
The initial version of Erlang was implemented in Prolog and was influenced by the programming language PLEX used in earlier Ericsson exchanges.

Mnesia

M'''nesia
Erlang, together with libraries and the real-time distributed database Mnesia, forms the OTP collection of libraries.
Mnesia is a distributed, soft real-time database management system written in the Erlang programming language.

Agner Krarup Erlang

A. K. ErlangA.K. ErlangErlang
The name Erlang, attributed to Bjarne Däcker, has been presumed by those working on the telephony switches (for whom the language was designed) to be a reference to Danish mathematician and engineer Agner Krarup Erlang and a syllabic abbreviation of "Ericsson Language".

LFE (programming language)

LFELisp Flavored ErlangLisp Flavoured Erlang
Lisp Flavored Erlang (LFE) is a functional, concurrent, garbage collected, general-purpose programming language and Lisp dialect built on Core Erlang and the Erlang virtual machine (BEAM).

Closure (computer programming)

closuresclosurelexical closure
In strict functional languages with immutable data (e.g. Erlang), it is very easy to implement automatic memory management (garbage collection), as there are no possible cycles in variables' references.

Akka (toolkit)

AkkaAkka STMAkka Streams
Akka supports multiple programming models for concurrency, but it emphasizes actor-based concurrency, with inspiration drawn from Erlang.

Write once, run anywhere

run successfully on any devicerun across PCs, tablets, and phonesrun identically
Joe Armstrong remarked in an interview with Rackspace in 2013: “If Java is 'write once, run anywhere', then Erlang is 'write once, run forever'.”

Elixir (programming language)

ElixirReiaJosé Valim
Elixir is a functional, concurrent, general-purpose programming language that runs on the Erlang virtual machine (BEAM).

Concurrent computing

concurrentconcurrent programmingconcurrency
Erlang is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system.
;Message passing communication:Concurrent components communicate by exchanging messages (exemplified by MPI, Go, Scala, Erlang and occam).

WhatsApp

WhatsApp MessengerWhatsApp Inc.social media
Erlang is the programming language used to code WhatsApp.

Dart (programming language)

DartDart programming languageECMA-408
This is similar to Erlang processes (see also Actor model).

Concurrency (computer science)

concurrencyconcurrentconcurrently
Erlang's main strength is support for concurrency.