Qu'est-ce que Erlang-il écrit?
-
23-08-2019 - |
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
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:
- Erlang préprocesseur est écrit en Erlang.
- analyseur Erlang est écrit en Erlang.
- compilateur Erlang à BEAM (VM byte-code) est écrit en Erlang.
- compilateur Erlang à Hipe (extension VM native) est écrit en Erlang.
- Erlang VM BEAM et HIPE est écrite en C.
- pilotes Linked-in sont écrits principalement en C. (Ils sont branchés à VM et sert la communication avec le monde extérieur.)
- Bureau du Procureur est écrit en Erlang.
- 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.