BEAM代表Elx编程语言的iex是什么?

时间:2015-06-05 15:15:58

标签: architecture elixir acronym beam lightweight-processes

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解释了BEAM虚拟机 的内容,但不是字母代表的内容。似乎很难在Erlang central上快速找到关于词源的更多信息。 Supposedly BEAM是Erlang和Elixir的秘诀。

1 个答案:

答案 0 :(得分:21)

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

  

几乎每个人都使用“新BEAM”,其中BEAM代表Bogdan /Björn的Erlang Abstract Machine。这是商业版本中支持的虚拟机。

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

该名称可能从Warren抽象机器中找到它的路线 - 一个Prolog的抽象指令集,您可以在http://en.wikipedia.org/wiki/Warren_Abstract_Machine

阅读

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

您可以在Erlang website上的“Erlang开发”文章中阅读更多内容。