2010-09-20 2 views

Antwort

15

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?

+0

Diese These ist eine faszinierende Lektüre. Danke dafür – GabiMe

2

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.)

2

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