BEAM 在 Elixir 编程语言的 iex 中代表什么?

What does BEAM stand for in iex for the Elixir programming language?

字母 B.E.A. 和 M. 代表什么?我记得看到过对首字母缩略词 "BEAM" 的解释,但我没有设法再次找到它。

它出现在错误代码中:

➜  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)> 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)> 

看来 .beam 文件有问题,可能是因为我使用了 vi。 (注意 Elixir 程序员:不要编辑 .beam 文件,这很痛苦。)

This question explains what the BEAM virtual machine is, but not what the letters stand for. And it seems difficult to find out much about the etymology quick or to the point on Erlang central. Supposedly BEAM 是 Erlang 和 Elixir 的秘诀。

它代表 "Bogdan/Björn's Erlang Abstract Machine" - 它只是 VM 的名称,很像 JVM(Java 虚拟机)。

Almost everyone uses "the new BEAM", where BEAM stands for Bogdan/Björn's Erlang Abstract Machine. This is the virtual machine supported in the commercial release.

http://www.erlang.org/faq/implementations.html

该名称可能是从 Warren Abstract Machine 中找到它的路径 - Prolog 的抽象指令集,您可以在以下位置阅读:http://en.wikipedia.org/wiki/Warren_Abstract_Machine

WAM 影响了 JAM(Joe Abstract Machine - 以 Joe Armstrong 的名字命名),它是 BEAM 的前身。

您可以在 Erlang website 上的 "the development of Erlang" 文章中阅读更多内容。