2015-06-05 11 views
7

Что означают буквы B. E. A. и M.? Я помню, что видел объяснение аббревиатуры «BEAM», но мне еще не удалось найти его.Что означает BEAM в iex для языка программирования Elixir?

Он поставляется в коды ошибок:

➜ 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. (Обратите внимание на notive Эликсир программистам: Не редактировать .beam файлы, это больно.)

This question объясняет, что виртуальная машина ЛУЧ является, но не то, что буквы означают. И, похоже, сложно найти много о этимологии быстро или в точке на Erlang central. Supposedly BEAM - это секретный соус Эрланг и Эликсир.

+0

// Это было удивительно сложно даже найти в Google, и это довольно специфично. Я не уверен, почему вниз. –

ответ

18

Это означает «Абстрактная машина Эрланга Богдана/Бьёрна» - это просто имя виртуальной машины, очень похожее на JVM (Java Virtual Machine).

Практически все используют «новый BEAM», где BEAM обозначает абстрактную машину Erlang Bogdan/Björn. Это виртуальная машина, поддерживаемая в коммерческом выпуске.

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

Название, вероятно, находит свои маршруты из Уоррен абстрактной машины - абстрактный набор инструкций для Пролога, который вы можете прочитать по адресу: http://en.wikipedia.org/wiki/Warren_Abstract_Machine

WAM влияние JAM (Joe абстрактной машины - названный в честь Джо Армстронга), который был предшественником BEAM.

Подробнее о статье «Развитие Эрланг» вы можете прочитать на странице Erlang website.

+0

//, почему он называет это «абстрактной» машиной? Я имею в виду, кто бы сделал виртуальную машину, которая не была «абстрактной»? –

+1

@ 37coins См. Мои правки. – Gazler

+0

//, CooI. Во время публикации вопроса google.com/?q=erlang+beam+acronym на самом деле не сильно повлиял на конкретную этимологию, и я подумал, что это может быть что-то подходящее для быстрого поиска в stackoverflow для любопытно. –