title: What does BEAM stand for in iex for the Elixir programming language?
body: <p>What do the letters B. E. A. and M. stand for? I recall seeing an explanation of the acronym "BEAM", but I have not managed to find it again. </p>
  
  <p>It comes up in error codes: </p>
  
  <pre><code>➜  gentoo  iex
  Erlang/OTP 17 [erts-6.4.1] [source] [64-bit] [smp:8:8] [async-threads:10] [kernel-poll:false]
  
  Interactive Elixir (1.0.4) - press Ctrl+C to exit (type h() ENTER for help)
  iex(1)&gt; import Math
  
  08:05:02.839 [error] Loading of /var/opt/proj/elx/ubuntu/Elixir.Math.beam failed: :badfile
  
  ** (CompileError) iex:1: module Math is not loaded and could not be found
  
  08:05:02.846 [error] beam/beam_load.c(1104): Error loading module 'Elixir.Math':
    non-ascii garbage '78705400' instead of chunk type id
  
  
      (elixir) src/elixir_exp.erl:123: :elixir_exp.expand/2
  iex(1)&gt; 
  </code></pre>
  
  <p>So, it looks like there's some sort of problem with a .beam file, probably due to my use of vi.  (Note to notive Elixir programmers: Do not edit .beam files, it is painful.)</p>
  
  <p><a href="https://stackoverflow.com/questions/16779162/what-kind-of-virtual-machine-is-beam-the-erlang-vm">This question</a> explains what the BEAM virtual machine <em>is</em>, but not what the letters stand for. And it seems difficult to find out much about the etymology quick or to the point on <a href="https://erlangcentral.org/?s=beam+acronym" rel="noreferrer">Erlang central</a>. <a href="https://stackoverflow.com/questions/2708033/technically-why-are-processes-in-erlang-more-efficient-than-os-threads">Supposedly</a> BEAM is the secret sauce of Erlang and Elixir both.</p>