115 votes

En quoi Erlang est-il écrit ?

En quoi la mise en œuvre d'Erlang et d'Erlang/OTP par Ericsson est-elle écrite et compilée ? Est-ce en assembleur, en C ou en Erlang lui-même ?

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

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

  • Pilotes interagissant avec la VM et le HW : en C.
  • Compilateur (vers VM) et bibliothèques : en Erlang.
  • Extensions : Possible dans n'importe quel langage en écrivant un port ou un noeud Erlang dans ce langage.

17 votes

Erlang est open source. Allez consulter le code et jetez un coup d'oeil !

149voto

Hynek -Pichi- Vychodil Points 13139

Erlang lui-même est écrit en Erlang. Cela vous paraît étrange ? Oui, car ce n'est que partiellement vrai. Voyons cela plus en détail :

  1. Le préprocesseur Erlang est écrit en Erlang.
  2. Le parseur Erlang est écrit en Erlang.
  3. Le compilateur Erlang de BEAM (byte-code VM) est écrit en Erlang.
  4. Le compilateur Erlang pour HiPE (extension VM native) est écrit en Erlang.
  5. Erlang VM BEAM et HiPE est écrit principalement en C.
  6. Les pilotes Linked-in sont écrits principalement en C. (Ils sont branchés à la VM et servent à la communication avec le monde extérieur).
  7. OTP est écrit en Erlang.
  8. Les autres ports ou nœuds peuvent être écrits dans n'importe quelle langue.

94voto

Tamas Czinege Points 49277

De la FAQ Erlang :

10.6 Comment le premier compilateur Erlang a-t-il été écrit ?

(ou : comment Erlang a-t-il été amorcé ? ) En les mots de Joe :

D'abord j'ai conçu une machine abstraite pour exécuter Erlang. On l'a appelée la machine JAM ; JAM = Joe's Abstract abstraite de Joe.

Ensuite, j'ai écrit un compilateur d'Erlang vers JAM et un émulateur pour voir si la machine fonctionnait. Les deux ont été écrits en prologue.

Au même moment, Mike Williams a écrit un émulateur C pour le JAM.

Ensuite, j'ai réécrit le compilateur erlang-to-jam en Erlang et utilisé le compilateur prologue pour le compiler. Le code objet résultant code objet résultant a été exécuté dans l'émulateur C. Puis nous avons jeté prolog.

1 votes

Merci ! Quelle est la source de cette citation ?

15voto

Saeed Zarinfam Points 1605
  • 65,9% du code Erlang est écrit en Erlang.
  • 13,4% d'erlang est écrit en XML.
  • 13.6% d'erlang est écrit en C.
  • 1,4 % d'erlang est écrit en C++.
  • ...

Vous pouvez voir les statistiques en direct et les mises à jour dans ohloh ce rapport est généré à partir du dépôt git principal d'erlang.

0 votes

Je suis juste curieux de savoir quelles parties sont écrites en C++.

0 votes

@csyangchen aucun, c'est le faux-positif dans la détection du type de fichier du compteur de ligne.

0 votes

Certaines parties des liaisons WX sont écrites en C++.

0voto

Gadrawin Points 21

Je peux dire qu'Erlang a été initialement écrit en C/C++ comme Je ne peux pas dire que Java est écrit en java.... mais son framework et quelques bibliothèques. A propos d'Erlang, comme c'est un langage de programmation préféré et approprié pour les systèmes de télécommunication... afin de maintenir la rapidité (par exemple, dans les chat-bots). Je sais que son compilateur ou préprocesseur est écrit en Erlang. Mais les autres caractéristiques du langage sont écrites dans des langages de bas niveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X