19 Stimmen

Was sind die besten Ressourcen für das Erlernen von CIL (MSIL)?

Ich bin ein Experte C# 3 / .NET 3.5 Programmierer suchen, um einige Laufzeit codegen mit System.Reflection.Emit.DynamicMethod zu tun. Ich würde gerne auf die nächste Ebene zu bewegen, indem sie eng mit IL vertraut zu werden.

Irgendwelche Hinweise (Wortspiel beabsichtigt)?

6voto

Nick Johnson Punkte 99799

Zusätzlich zu Darrens Antwort würde ich vorschlagen, eine Spielzeugsprache auszuwählen oder zu erfinden und einen einfachen Compiler für sie zu schreiben. Wählen Sie etwas, das wenig Parsing erfordert, wie BF oder eine stapelbasierte Sprache, und Sie werden feststellen, dass das Schreiben eines Compilers tatsächlich einfacher ist, als es scheint.

5voto

Darren Kopp Punkte 74401

Der beste Weg, es zu lernen, ist, etwas zu schreiben, das man versteht, und sich dann die erzeugte AWL anzusehen. Auch, je nachdem, was Sie tun, können Sie Ausdruck Bäume statt Emittieren IL verwenden, und dann, wenn Sie die Ausdruck Bäume kompilieren, diese schlauen Jungs bei Microsoft erstellen Sie die IL für Sie.

0 Stimmen

Ausdrucksbäume FTW! Daran hatte ich gar nicht gedacht! Danke dafür!

5voto

Michael Burr Punkte 320591

.NET-Reflektor eignet sich hervorragend zur Untersuchung der von C#/VB.NET erzeugten AWL.

Es ist ein wunderbares Lernmittel.

0 Stimmen

Ich verwende das ständig, habe es aber nach C# dekompiliert - toller Rat, danke!

5voto

Die ECMA 335-Spezifikation steht hier zum freien Download bereit: http://www.ecma-international.org/publications/standards/Ecma-335.htm

Partition III ist am relevantesten für den Umgang mit MSIL, aber ich empfehle jedem .NET-Entwickler auch Partition I, da sie das Verständnis für die Plattform erheblich festigt.

0 Stimmen

Ich wollte erwähnen, dass auch ich in den letzten Wochen tiefer in die Schalen von .Net eindringen und etwas über CIL-Code lernen wollte. Das beste Dokument, das ich finden kann, ist die Spezifikation. Leider habe ich noch keine solide "Teach yourself CIL"-Seite gefunden, die genug Informationen enthält, um MSIL zu beherrschen. Wenn Sie eine harte Dokumentation wünschen, ist die Spezifikation die beste Anlaufstelle.

3voto

Nescio Punkte 26799

Experte für .NET 2.0 IL Assembler. Obwohl dieses Buch inzwischen etwas veraltet sein mag, war es für mich immer noch ein guter Überblick.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X