Ciò che è scritto in Erlang?
-
23-08-2019 - |
Domanda
Qual è l'implementazione di Ericsson di Erlang e Erlang / OTP scritto e compilato in? E 'è il montaggio, C o Erlang stessa?
Aggiornamento 1: Grazie a DrJokepu. Se ho capito bene, Erlang source-to-VM compilatore è scritto in Erlang sé. Ma la VM è scritto in C.
Aggiornamento 2: Hynek-Pichi-Vychodil rilevare un sacco di dettagli
.- VM e HW driver che interagiscono:. In C
- Compiler (a VM) e le librerie:. In Erlang
- Estensioni:. Possibile in qualsiasi lingua, la scrittura di una porta o di un nodo Erlang in quella lingua
Soluzione
Erlang stesso è scritto in Erlang. Sembra strano? Sì, perché è vero solo in parte. OK guardare più in dettaglio:
- Erlang preprocessore è scritto in Erlang.
- Erlang parser è scritto in Erlang.
- Erlang compilatore di BEAM (byte-code VM) è scritto in Erlang.
- Erlang compilatore di Hipe (estensione nativa VM) è scritto in Erlang.
- Erlang VM BEAM e Hipe è scritto principalmente in C.
- Linked-in driver sono scritti per lo più in C. (Essi sono collegati al VM e serve la comunicazione con il mondo esterno.)
- OTP è scritto in Erlang.
- Un altro porti o nodi possono essere scritti in qualsiasi lingua.
Altri suggerimenti
10,7 Come ha fatto il primo compilatore di Erlang ottenere scritto?
(o:? come è stato Erlang bootstrap ) In Le parole di Joe:
Per prima cosa ho progettato una macchina astratta per eseguire Erlang. Questo è stato chiamato il Macchina JAM; Estratto JAM = Joe Macchina.
Poi ho scritto un compilatore da Erlang a Marmellata e un emulatore per vedere se il macchina funzionava. Entrambi questi erano scritto in Prolog.
Al tempo stesso Mike Williams ha scritto una C emulatore per l'inceppamento.
Poi ho riscritto la marmellata erlang-to- compilatore di Erlang e utilizzato prologo compilatore per compilarlo. la risultante codice oggetto è stato eseguito nell'emulatore C. Poi abbiamo buttato via Prolog.
- 65,9% del codice di Erlang è scritto in Erlang.
- 13,4% di Erlang è scritto in XML.
- 13,6% di Erlang è scritto in C.
- 1,4% di Erlang è scritto in C ++
- ...
Si può vedere un live e aggiornare le statistiche in Ohloh sito, questo rapporto genera da principale Erlang repository git.