LLMpediaThe first transparent, open encyclopedia generated by LLMs

Erlang (programming language)

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Chef (software) Hop 4
Expansion Funnel Raw 78 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted78
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
Erlang (programming language)
NameErlang
ParadigmFunctional, concurrent, distributed, fault-tolerant
DeveloperEricsson
First appeared1986
TypingDynamic
LicenseApache License 2.0
Influenced byML, Prolog, Smalltalk
InfluencedElixir, Akka, Reia

Erlang (programming language) is a functional, concurrent language designed for building highly available, distributed, real-time systems. Originating at Ericsson for telecommunication switching, Erlang emphasizes fault tolerance, hot code swapping, and soft real-time behavior, which made it influential across telecommunications, finance, web services, and telemetry domains. Its runtime and libraries enable massive concurrency and distributed deployment across clusters, shaping later projects and languages.

History

Erlang was created in the 1980s at Ericsson by Joe Armstrong, Robert Virding, and Mike Williams as part of efforts related to AXE, GSM, and other switching systems, while concurrent research at institutions like MIT, INRIA, and Bell Labs influenced its design. The language was implemented originally on the VAX and later ported to Unix environments; its development paralleled work at ACM conferences and discussions in communities such as USENIX and IETF. Erlang's release as open source in 1998 followed trends set by organizations like Free Software Foundation and aided adoption by projects at Amazon-adjacent startups and academic groups at University of Kent and KTH Royal Institute of Technology. Over decades, Erlang impacted other technologies including Elixir (programming language), Akka, OTP practices, and work by companies such as WhatsApp, T-Mobile, and Ericsson Research.

Design and Features

Erlang's syntax and semantics were influenced by languages and paradigms from ML traditions, logic programming from Prolog, and message-passing ideas discussed at Carnegie Mellon University and Stanford University. The language uses immutable data and pattern matching akin to techniques in Haskell and OCaml, while its module system and behaviors reflect design choices discussed in ACM SIGPLAN forums. Features such as lightweight processes draw on actor ideas articulated by researchers like Carl Hewitt connected to work at MIT. The language design favors simplicity to support runtime reliability demanded by large vendors like AT&T and Nokia in telephony systems.

Concurrency and the Actor Model

Concurrency in Erlang is built on isolated lightweight processes that communicate via asynchronous message passing, a model related to the Actor model developed by Carl Hewitt and discussed at MIT AI Lab. These processes are scheduled by the Erlang runtime rather than OS threads, enabling millions of concurrent activities similar to architectures explored in Akka and Go language research originating from Google. Supervision trees and fault handling patterns echo reliability patterns used in NASA-grade systems and have parallels in Design Patterns discussions at Gang of Four-influenced engineering teams. The approach influenced distributed frameworks at companies like WhatsApp and concepts formalized in papers presented at IEEE and IFIP conferences.

Runtime System and BEAM VM

The Erlang runtime, centered on the BEAM virtual machine, implements garbage collection, process scheduling, and preemptive multitasking; its architecture evolved from earlier virtual machines discussed in Sun Microsystems research and virtual machine efforts at Oracle. BEAM's per-process garbage collection and soft real-time guarantees echo design trade-offs explored in projects at IBM Research and Microsoft Research. Hot code loading and distributed node connectivity make the VM suitable for telecom-grade deployments similar to systems built by Siemens and Alcatel-Lucent. Performance and tracing tools integrate ideas from DTrace and SystemTap ecosystems used at Sun Microsystems and Red Hat.

Standard Library and OTP

The Open Telecom Platform (OTP) provides libraries and design principles—such as generic servers, finite state machines, and supervision trees—that formalize patterns discussed at ITU and implemented in systems by Ericsson. OTP packages include components for distributed databases, event handling, and application release handling, paralleling middleware standards used by IBM and Oracle. These building blocks are taught in courses at institutions like Chalmers University of Technology and referenced in engineering curricula at KTH Royal Institute of Technology and University of Glasgow.

Implementations and Tooling

Primary implementations include the reference implementation maintained by Ericsson and alternative projects supported by organizations like ProcessOne and open communities tied to GitHub and GitLab. Tooling ecosystems provide compilers, debuggers, and build systems influenced by tools such as Make, Autoconf, and language-specific IDE plugins for Visual Studio Code and IntelliJ IDEA. Interoperability projects enable integrations with JVM, C#/.NET, and cloud platforms from Amazon Web Services and Google Cloud Platform.

Adoption and Applications

Erlang has been adopted by technology companies including WhatsApp, Ericsson, Vodafone, T-Mobile, Citibank, and infrastructure projects at Amazon-adjacent startups for messaging, billing, and real-time analytics. Use cases span telecommunications switching (e.g., GSM), distributed databases, messaging systems compared to RabbitMQ and Kafka, and control systems in industrial settings such as those deployed by ABB and Siemens. The language and its ecosystem continue to appear in academic research presented at ACM SIGCOMM and IEEE INFOCOM as well as in industrial conferences like erlang factory and Code BEAM.

Category:Programming languages