Ich interessiere mich für Erlangs C source code und versuche zu verstehen, was unter der Haube passiert. Wo finde ich Informationen zu Design und Struktur des Codes?Erlang Quellcode Anleitung
Antwort
Zunächst einmal möchten Sie vielleicht einen Blick auf Joe Armstrong's thesis haben, Erlang auf einem hohen Niveau einzuführen. Es wird nützlich sein, eine Vorstellung davon zu bekommen, was die Idee hinter der Sprache ist. Dann können Sie sich auf das Erlang Run Time System (erts) konzentrieren. Das Modul erlang.erl könnte ein guter Anfang sein. Dann würde ich mich auf die Anwendungen konzentrieren, die die so genannte minimale Freigabe, Kernel und stdlib darstellt. Sehen Sie in der stdlib nach, wie Verhalten implementiert sind. Darf ich das Modul gen_server.erl als Start vorschlagen?
A Guide To The Erlang Quelle
http://www.trapexit.org/A_Guide_To_The_Erlang_Source
Danke. Guter Ort für mich zu beginnen. Dies ist wirklich sehr kurze Anleitung. – GabiMe
Die kurze Antwort ist, dass es keine gute Anleitung gibt. Und der Code ist nicht sehr gut dokumentiert.
Ich empfehle, jemanden in Ihrer Nachbarschaft zu finden, der den Code einigermaßen gut kennt, und ihnen im Austausch für ein kleines Gespräch ein Abendessen zu kaufen.
Wenn Sie nicht die Möglichkeit dazu haben, dann empfehle ich mit dem Loader zu starten.
Einige nützliche Informationen können auch durch hübsches Drucken der Strahldarstellung gefunden werden. Ich weiß nicht, ob es einen Weg von OTP gibt, aber das HiPE-Projekt hat einige Cheats.
hipe:c(MODULE, [pp_beam]).
sollten Sie beginnen.
(Und ich auch Joes Buch empfehlen.)
Hübscher Drucker des Strahls kann durch 'erlc ES' erfolgen, die mit hipem entsprechen: c (M, [pp_beam]) von Daniel erwähnt.
Ich verwende auch erts_debug:df(Module).
, um die geladenen Beam-Code zu zerlegen, die Anweisungen tatsächlich von der VM interpretiert wurden.
Manchmal verwende ich einen Debugger. OTP liefert Tools, die gdb sehr gut unterstützen. Siehe Beispielverwendung bei http://www.erlang.org/pipermail/erlang-questions/2008-September/037793.html
Diese These ist eine faszinierende Lektüre. Danke dafür – GabiMe