web-dev-qa-db-fra.com

Dans quoi est écrit Erlang?

Quelle est la mise en œuvre d'Ericsson d'Erlang et d'Erlang/OTP écrite et compilée? Est-ce que Assembly, C ou Erlang est lui-même?

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

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

  • Pilotes interactifs VM et HW: en C.
  • Compilateur (vers VM) et bibliothèques: à Erlang.
  • Extensions: Possible dans n'importe quelle langue en écrivant un port ou un nœud Erlang dans cette langue.
110
CDR

Erlang lui-même est écrit en Erlang. Cela semble étrange? Oui, car ce n'est que partiellement vrai. OK, regardez-le plus en détail:

  1. Le préprocesseur Erlang est écrit en Erlang.
  2. L'analyseur Erlang est écrit en Erlang.
  3. Le compilateur Erlang vers BEAM (VM à code octet) est écrit en Erlang.
  4. Le compilateur Erlang en HiPE (natif VM) est écrit en Erlang.
  5. Erlang VM BEAM et HiPE est écrit principalement en C.
  6. Les pilotes liés sont écrits principalement en C. (Ils sont connectés à VM et servent à la communication avec le monde extérieur.)
  7. OTP est écrit en Erlang.
  8. Un autre port ou nœud peut être écrit dans n'importe quelle langue.
139

De la Erlang FAQ :

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

(ou: comment Erlang a-t-il été démarré? ) Selon Joe:

J'ai d'abord conçu une machine abstraite pour exécuter Erlang. Cela s'appelait la machine JAM; JAM = Joe's Abstract Machine.

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

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

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

90
Tamas Czinege
  • 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 des statistiques en direct et à jour sur le site ohloh , ce rapport est généré à partir du référentiel principal erlang git.

14
Saeed Zarinfam