Question

Qu'est-ce que la mise en œuvre d'Ericsson de Erlang et Erlang / OTP écrit et compilé? Est-ce est l'assemblage, C ou Erlang lui-même?

Mise à jour 1: Merci à DrJokepu. Si je comprends bien, compilateur source-VM Erlang est écrit en Erlang lui-même. Mais la machine virtuelle est écrit en C.

Mise à jour 2: Hynek-Pichi-Vychodil a souligné beaucoup de détails

.
  • VM pilotes interagissent et HW: en C.
  • Compiler (à VM) et les bibliothèques. En Erlang
  • Extensions:. Possibles dans toutes les langues par l'écriture d'un port ou d'un noeud Erlang dans cette langue
Était-ce utile?

La solution

Erlang est lui-même écrit en Erlang. Cela semble étrange? Oui, car il est vrai que partiellement. OK regarder plus en détail:

  1. Erlang préprocesseur est écrit en Erlang.
  2. analyseur Erlang est écrit en Erlang.
  3. compilateur Erlang à BEAM (VM byte-code) est écrit en Erlang.
  4. compilateur Erlang à Hipe (extension VM native) est écrit en Erlang.
  5. Erlang VM BEAM et HIPE est écrite en C.
  6. pilotes Linked-in sont écrits principalement en C. (Ils sont branchés à VM et sert la communication avec le monde extérieur.)
  7. Bureau du Procureur est écrit en Erlang.
  8. Un autre ports ou les noeuds peuvent être écrits dans toutes les langues.

Autres conseils

De la Erlang FAQ :

  

10.7 Comment le premier compilateur Erlang s'écrit?

     

(ou: comment a été Erlang bootstrapped ) Dans   Les paroles de Joe:

     

D'abord, je conçu une machine abstraite   pour exécuter Erlang. Cela a été appelé   Machine à JAM; Résumé de JAM = Joe   Machine.

     

Ensuite, je l'ai écrit un compilateur de Erlang   JAM et un émulateur pour voir si le   la machine a fonctionné. Ces deux étaient   écrit en Prolog.

     

En même temps, Mike Williams a écrit une   émulateur C pour le JAM.

     

Je Réécriture de la confiture à erlang-   compilateur en Erlang et utilisé le prolog   compilateur pour compiler. la résultante   code objet a été exécuté dans l'émulateur C.   Ensuite, nous jetions Prolog.

  • 65,9% du code Erlang est écrit en Erlang.
  • 13,4% de Erlang est écrit en XML.
  • 13,6% des Erlang est écrit en C.
  • 1,4% de Erlang est écrit en C ++
  • ...

Vous pouvez voir une mise à jour des statistiques en direct et en ohloh site, ce rapport génère de la principale Erlang dépôt git.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top