![]() | |
Paradigms | Multi-paradigm: concurrent, functional, object oriented |
---|---|
Designed by |
|
Developer | Ericsson |
First appeared | 1986 |
Stable release | 27.0.1[1] ![]() |
Typing discipline | Dynamic, strong |
License | Apache License 2.0 |
Filename extensions | .erl, .hrl |
Website | www |
Major implementations | |
Erlang | |
Influenced by | |
Lisp, PLEX,[2] Prolog, Smalltalk | |
Influenced | |
Akka, Clojure,[3] Dart, Elixir, F#, Opa, Oz, Reia, Rust,[4] Scala, Go | |
|
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.