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



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文件,这很痛苦。)

这个问题解释了BEAM虚拟机是什么,但没有说明这些字母代表什么。而且似乎很难快速找到关于二郎中心的词源或要点。据说BEAM是Erlang和Elixir的秘密配方

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

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

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

这个名字可能是从Warren抽象机器中找到它的路由——一个Prolog的抽象指令集,你可以在:http://en.wikipedia.org/wiki/Warren_Abstract_Machine

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

您可以在Erlang网站上的"Erlang的开发"文章中阅读更多内容。

相关内容

  • 没有找到相关文章

最新更新