Hasty Briefsbeta

Bilingual

A brief history of Erlang's BEAM compiler (2018)

10 months ago
  • #Compiler
  • #BEAM
  • #Erlang
  • The first version of Erlang was implemented in Prolog in 1986.
  • JAM (Joe’s Abstract Machine) was created in 1989, making Erlang 70 times faster.
  • TEAM (Turbo Erlang Abstract Machine) compiled Erlang to C but was slow and produced large binaries.
  • BEAM (Bogdan’s Erlang Abstract Machine) was a hybrid machine executing both native and threaded code.
  • VEE (Virding’s Erlang Engine) used a single shared heap but didn't improve speed over JAM.
  • OTP R1B was released in 1996, marking the industrialization of Erlang.
  • BEAM/C was eventually dropped due to complexity and bugs.
  • The BEAM instruction set was simplified and stabilized using the beam_makeops script.
  • OTP R5 introduced the modern BEAM file format and dropped JAM support.
  • Kernel Erlang was introduced in R6B, improving optimizations.
  • Core Erlang was introduced in R7B as a new intermediate format.