Erlang ( ) is a
general-purpose,
concurrent,
garbage-collected programming language and
runtime system. The sequential subset of Erlang is almost a
functional language (excluding certain built-in
functions (BIFs) such as those manipulating the process dictionary), with
eager evaluation,
single assignment, and
dynamic typing. It was originally designed by
Ericsson to support
distributed,
fault-tolerant,
soft real-time,
highly available,
non-stop applications. It supports
hot swapping, thus code can be changed without stopping a system.