In was ist Erlang geschrieben?

111

In welcher Implementierung von Erlang und Erlang / OTP von Ericsson wurde geschrieben und kompiliert? Ist Montage, C oder Erlang selbst?

Update 1: Danke an DrJokepu. Wenn ich das richtig verstehe, ist der Erlang Source-to-VM-Compiler in Erlang selbst geschrieben. Aber die VM ist in C geschrieben.

Update 2: Hynek-Pichi-Vychodil wies auf viele Details hin.

  • Interagierende Treiber für VM und HW: in C.
  • Compiler (zu VM) und Bibliotheken: in Erlang.
  • Erweiterungen: In jeder Sprache möglich, indem ein Port oder ein Erlang-Knoten in dieser Sprache geschrieben wird.
CDR
quelle
17
Erlang ist Open Source. Schauen Sie sich den Code an und werfen Sie einen Blick darauf!
Rfunduk

Antworten:

140

Erlang selbst ist in Erlang geschrieben. Hört sich komisch an? Ja, weil es nur teilweise wahr ist. OK, schau es dir genauer an:

  1. Der Erlang-Präprozessor ist in Erlang geschrieben.
  2. Der Erlang-Parser ist in Erlang geschrieben.
  3. Der Erlang-Compiler für BEAM (Bytecode-VM) ist in Erlang geschrieben.
  4. Der Erlang-Compiler für HiPE (native VM-Erweiterung) ist in Erlang geschrieben.
  5. Erlang VM BEAM und HiPE sind hauptsächlich in C geschrieben.
  6. Verknüpfte Treiber sind meistens in C geschrieben. (Sie sind an VM angeschlossen und dienen der Kommunikation mit der Außenwelt.)
  7. OTP ist in Erlang geschrieben.
  8. Andere Ports oder Knoten können in einer beliebigen Sprache geschrieben werden.
Hynek-Pichi-Vychodil
quelle
91

Aus den Erlang FAQ :

10.6 Wie wurde der erste Erlang-Compiler geschrieben?

(oder: wie wurde Erlang gebootet? ) In Joes Worten:

Zuerst habe ich eine abstrakte Maschine entworfen, um Erlang auszuführen. Dies wurde als JAM-Maschine bezeichnet. JAM = Joes abstrakte Maschine.

Dann schrieb ich einen Compiler von Erlang an JAM und einen Emulator, um zu sehen, ob die Maschine funktionierte. Beide wurden in Prolog geschrieben.

Zur gleichen Zeit schrieb Mike Williams einen C-Emulator für den JAM.

Dann habe ich den Erlang-to-Jam-Compiler in Erlang umgeschrieben und ihn mit dem Prolog-Compiler kompiliert. Der resultierende Objektcode wurde im C-Emulator ausgeführt. Dann warfen wir Prolog weg.

Tamas Czinege
quelle
1
Vielen Dank! Was ist die Quelle für dieses Zitat?
Max Heiber
15
  • 65,9% des erlang-Codes sind in Erlang geschrieben.
  • 13,4% von erlang ist in XML geschrieben.
  • 13,6% von erlang sind in C geschrieben.
  • 1,4% von erlang ist in C ++ geschrieben
  • ...

Sie können eine Live- und Aktualisierungsstatistik auf der Ohloh- Site sehen. Dieser Bericht wird aus dem Haupt-Repository von Erlang Git generiert.

Saeed Zarinfam
quelle
Ich bin nur neugierig, welche Teile in C ++ geschrieben sind.
Csyangchen
@csyangchen keine, dies ist die falsch-positive Erkennung von Dateitypen im Zeilenzähler.
Hauleth
Teile der WX-Bindungen sind in C ++ geschrieben.
Roger Lipscombe
-1

Ich kann sagen, dass Erlang ursprünglich in C / C ++ geschrieben wurde, da ich nicht sagen kann, dass Java in Java geschrieben ist ... aber es ist Framework und einige Bibliotheken. Über Erlang, da es eine bevorzugte Programmiersprache ist und für Telekommunikationssysteme geeignet ist ... um die Schnelligkeit aufrechtzuerhalten (z. B. in Chat-Bots), weiß ich, dass sein Compiler oder PreProcessor in Erlang geschrieben ist. Andere Sprachfunktionen sind jedoch in Low-Level-Sprachen geschrieben.

Gadrawin
quelle