BEAM

BEAM (Bogdan's/Björn's Abstract Machine) is the machine that executes the code in the Erlang Runtime System. It is a garbage collecting, reduction counting, virtual, non-preemptive, direct threaded, register machine.

(…)

The virtual machine, BEAM, is at the heart of the Erlang node. It is the BEAM that executes the Erlang code. That is, it is BEAM that executes your application code. Understanding how BEAM executes the code is vital to be able to profile and tune your code.

The BEAM design influences large parts of the rest of ERTS. The primitives for scheduling influences the Scheduler, the representation of Erlang terms and the interaction with the memory influences the Garbage Collector. By understanding the basic design of BEAM you will more easily understand the implementations of these other components.

References: