2015-06-05 14 views
7

Cosa significano le lettere B. E. A. e M.? Ricordo di aver visto una spiegazione della sigla "BEAM", ma non sono riuscito a trovarla di nuovo.Che cosa significa BEAM in iex per il linguaggio di programmazione Elixir?

Si ha nei codici di errore:

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

Così, sembra che ci sia un qualche tipo di problema con un file .beam, probabilmente a causa di mio uso di VI. (Nota per i programmatori notive Elixir: Non modificare i file .beam, è doloroso.)

This question spiega cosa la macchina virtuale BEAM è, ma non quello che le lettere stanno per. E sembra difficile scoprire molto sull'etimologia rapida o al punto su Erlang central. Supposedly BEAM è la salsa segreta di Erlang ed Elixir entrambi.

+0

//, Questo è stato sorprendentemente difficile da cercare su Google ed è abbastanza specifico. Non sono sicuro del perché dei downvotes. –

risposta

18

Sta per "Bogdan/Björn's Erlang Abstract Machine" - è solo il nome della VM, proprio come JVM (Java Virtual Machine).

Quasi tutti utilizzano "il nuovo BEAM", dove BEAM sta per Bogdan/Björn's Erlang Abstract Machine. Questa è la macchina virtuale supportata nella versione commerciale.

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

Il nome trova probabilmente suoi circuiti dalla Macchina Warren Abstract - un'istruzione astratto impostato per Prolog, che potete leggere in: http://en.wikipedia.org/wiki/Warren_Abstract_Machine

Il WAM influenzato JAM (Joe astratta Machine - intitolato a Joe Armstrong) che è stato il precursore di BEAM.

È possibile leggere ulteriori informazioni sull'articolo "lo sviluppo di Erlang" su Erlang website.

+0

//, perché la chiama una macchina "astratta"? Voglio dire, chi mai farebbe una macchina virtuale che non fosse "astratta"? –

+1

@ 37coins Si prega di vedere le mie modifiche. – Gazler

+0

//, CooI. Al momento di pubblicare la domanda, google.com/?q=erlang+beam+acronym in realtà non si presenta molto in termini di etimologia specifica, e ho pensato che potrebbe essere qualcosa di appropriato per una rapida ricerca su StackOverflow per il curioso. –