BEAM (Erlang virtual machine)

Short description: Virtual machine in the Open Telecom Platform

This article provides insufficient context for those unfamiliar with the subject. Please help improve the article by providing more context for the reader. (June 2018) (Learn how and when to remove this template message)

|

Program execution

General concepts

* Code
* Translation
* Compiler
* Compile-time
* Optimizing compiler
* Intermediate representation (IR)
* Execution
* Runtime system
* Runtime
* Executable
* Interpreter
* Virtual machine

Types of code

* Source code
* Object code
* Bytecode
* Machine code
* Microcode

Compilation strategies

* Just-in-time (JIT)
* Tracing just-in-time
* Ahead-of-time (AOT)
* Transcompilation
* Recompilation

Notable runtimes

* Android Runtime (ART)
* Common Language Runtime (CLR) & Mono
* crt0
* HHVM
* Java virtual machine (JVM)
* Objective-C
* V8
* Node.js
* PyPy
* Zend Engine

Notable compilers & toolchains

* GNU Compiler Collection (GCC)
* LLVM
* Clang

* v
* t
* e

BEAM is the virtual machine at the core of the Erlang Open Telecom Platform (OTP).[1] BEAM is part of the Erlang Run-Time System (ERTS), which compiles Erlang source code into bytecode, which is then executed on the BEAM.[2][3] BEAM bytecode files have the `.beam` file extension.[4]

Originally BEAM was short for Bogdan's Erlang Abstract Machine, named after Bogumil "Bogdan" Hausman, who wrote the original version, but the name may also be referred to as Björn's Erlang Abstract Machine, after Björn Gustavsson, who wrote and maintains the current version.[1][5][6] Both developers worked on the system while at Ericsson.[7][8]

The predecessor of the BEAM was JAM (Joe's Abstract Machine), which was the first virtual machine for the Erlang language and was written by Joe Armstrong.

## Contents

* 1 BEAM Languages
* 2 See also
* 3 References
* 4 External links

## BEAM Languages

Although BEAM was created for Erlang, several other languages have been either created for it or ported to run on it. The most popular of these is Elixir, which had more responses than Erlang itself in the 2023 Stackoverflow survey.[9] Other notable examples include:

* Clojerl,[10] a port of Clojure to BEAM
* Cuneiform,[11] a language for large-scale scientific data analysis
* Gleam,[12] a statically typed functional language for BEAM
* LFE,[13] Lisp Flavored Erlang, a lisp frontend for the Erlang compiler
* Luerl,[14] Lua on the BEAM, designed and implemented by one of the creators of Erlang

## See also

* Comparison of application virtual machines
* Register machine

## References

1. ↑ 1.0 1.1 "The Erlang Runtime System" (in en). https://happi.github.io/theBeamBook.
2. ↑ Martin., Logan (2011). Erlang and OTP in action. Merritt, Eric., Carlsson, Richard.. Stamford, CT: Manning Pub. ISBN 9781933988788. OCLC 747046900.
3. ↑ "Most Popular Programming Languages of 2018 - Elite Infoworld Blog" (in en-US). 2018-03-30. https://www.eliteinfoworld.com/blog/popular-programming-languages-2018/.
4. ↑ Zachary., Kessin (2012). Building web applications with Erlang. Beijing: O'Reilly. ISBN 9781449309961. OCLC 802882644.
5. ↑ "erlang/otp" (in en). https://github.com/erlang/otp/blob/master/erts/AUTHORS.
6. ↑ "Confirmed Errata | O'Reilly Media". https://www.oreilly.com/catalog/errata.csp?isbn=9780596518189.
7. ↑ Kerjouan, Mathieu (2017-07-17). "Serialization series — Do you speak Erlang ETF or BERT? (part 1)". https://medium.com/@niamtokik/serialization-series-do-you-speak-erlang-etf-or-bert-part-1-ff70096b50c0.
8. ↑ "Erlang BEAM Instruction Set". http://www.cs-lab.org/historical_beam_instruction_set.html.
9. ↑ "Stack Overflow Developer Survey 2023". https://survey.stackoverflow.co/2023/#most-popular-technologies-language.
10. ↑ Facorro, Juan. "Clojerl". https://github.com/clojerl/clojerl.
11. ↑ "Cuneiform". https://www.cuneiform-lang.org/.
12. ↑ "Gleam". https://gleam.run.
13. ↑ "LFE". https://github.com/lfe/lfe.
14. ↑ "luerl". https://github.com/rvirding/luerl.

## External links

* Erlang website
* A History of Erlang
* The Erlang BEAM Virtual Machine Specification, 1997
* The BEAM Book by Erik Stenman
* Languages, and about languages, on the BEAM

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/BEAM (Erlang virtual machine). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=BEAM_(Erlang_virtual_machine)&oldid=208951"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template