In cosa è scritto Erlang?


111

Qual è l'implementazione Ericsson di Erlang e Erlang / OTP scritta e compilata? È assemblaggio, C o Erlang stesso?

Aggiornamento 1: grazie a DrJokepu. Se ho capito bene, il compilatore Erlang source-to-VM è scritto in Erlang stesso. Ma la VM è scritta in C.

Aggiornamento 2: Hynek-Pichi-Vychodil ha sottolineato molti dettagli.

  • Driver interagenti VM e HW: in C.
  • Compilatore (su VM) e librerie: in Erlang.
  • Estensioni: possibile in qualsiasi lingua scrivendo una porta o un nodo Erlang in quella lingua.

17
Erlang è open source. Vai a controllare il codice e dai un'occhiata!
rfunduk

Risposte:


140

La stessa Erlang è scritta in Erlang. Sembra strano? Sì, perché è vero solo in parte. OK guardalo più in dettaglio:

  1. Il preprocessore Erlang è scritto in Erlang.
  2. Il parser Erlang è scritto in Erlang.
  3. Il compilatore Erlang per BEAM (VM byte-code) è scritto in Erlang.
  4. Il compilatore Erlang per HiPE (estensione VM nativa) è scritto in Erlang.
  5. Erlang VM BEAM e HiPE sono scritti principalmente in C.
  6. I driver collegati sono scritti principalmente in C. (sono collegati alla VM e servono la comunicazione con il mondo esterno).
  7. OTP è scritto in Erlang.
  8. Altre porte o nodi possono essere scritti in qualsiasi lingua.

91

Dalle FAQ di Erlang :

10.6 Come è stato scritto il primo compilatore Erlang?

(oppure: come è stato avviato il bootstrap di Erlang? ) Nelle parole di Joe:

Per prima cosa ho progettato una macchina astratta per eseguire Erlang. Questa era chiamata macchina JAM; JAM = Joe's Abstract Machine.

Poi ho scritto un compilatore da Erlang a JAM e un emulatore per vedere se la macchina funzionava. Entrambi sono stati scritti in prologo.

Allo stesso tempo Mike Williams ha scritto un emulatore C per JAM.

Poi ho riscritto il compilatore erlang-to-jam in Erlang e ho usato il compilatore prolog per compilarlo. Il codice oggetto risultante è stato eseguito nell'emulatore C. Poi abbiamo buttato via Prolog.


1
Grazie! Qual è la fonte di questa citazione?
Max Heiber il

15
  • Il 65,9% del codice erlang è scritto in Erlang.
  • Il 13,4% di erlang è scritto in XML.
  • Il 13,6% di erlang è scritto in C.
  • L'1,4% di erlang è scritto in C ++
  • ...

Puoi vedere le statistiche in tempo reale e aggiornate nel sito ohloh , questo rapporto viene generato dal repository git erlang principale.


Sono solo curioso di sapere quali parti sono scritte in c ++.
csyangchen

@csyangchen nessuno, questo è il rilevamento del tipo di file del contatore di falsi positivi in ​​linea.
Hauleth

Parti delle associazioni WX sono scritte in C ++.
Roger Lipscombe

-1

Posso dire che Erlang è stato inizialmente scritto in C / C ++ perché non posso dire che Java sia scritto in java ... ma è framework e alcune librerie. A proposito di Erlang, As Its è il linguaggio di programmazione preferito e adatto al sistema Telecom ... per mantenere la rapidità (ad esempio: nei chat-bot) so che il suo compilatore o PreProcessor è scritto in Erlang. Ma altre caratteristiche del linguaggio sono scritte in lingue di basso livello.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.