Das kompilieren von java-bytecode (ohne Java)
Mein Compiler die Klasse ist, eine Sprache zu entwerfen, dass wir beabsichtigen, für das kompilieren von Java-Bytecode. Wir haben viele Fortschritte und nähert Euch der Zeit, wo es Zeit für die code-Generierung.
Wir Probleme mit dem Auffinden von Informationen zu erstellen .die class-Dateien von unserem compiler. Sie haben keine Ressourcen, kann uns etwas Unterstützung? Wir haben schon viel Dokumentation auf den Befehlssatz, sondern brauchen Informationen, wie Sie direkt ausfüllen der Klassendatei/das schreiben von hex.
Wir nicht brauchen, Informationen oder Anregungen zu dekompilieren .class-Dateien.
Sogar ein einfaches Beispiel geschrieben .Klasse Datei von Grund auf, die ausgezeichnet sein würde.
Die JVM-spec ist nicht das, was wir suchen. Was wir wirklich brauchen, ist ein Beispiel oder eine Anleitung.
InformationsquelleAutor der Frage Allyn | 2009-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die VM-Spec: Die Class-Datei-Format und die Die Java-Virtual-Machine-Befehlssatz sollte es tun.
Könnte man auf die Byte Code Engineering Library (BCEL) für einige inspiration sowie Findbugs (es ist zu Lesen/verstehen class-Dateien).
InformationsquelleAutor der Antwort TofuBeer
Gibt es eine Reihe von Projekten gibt, die eine high-level-Schnittstelle, Erstellung von Java-class-Dateien, ohne dass Sie schreiben, die class-Dateien selbst. Werfen Sie einen Blick auf die folgenden:
Alle bieten eine API zum erstellen von class-Dateien. Sie können immer Blick auf den code, den Sie geschrieben haben, dies zu tun und schreiben Sie einen ähnlichen code für den compiler, obwohl ich könnte mir vorstellen, dass es einen fairen Betrag von Arbeit.
Mit BCEL werfen Sie einen Blick auf ClassGen, das sollte Ihnen ermöglichen, zu schreiben, die class-Dateien in das format, das Sie möchten, ein einfaches Beispiel folgt:
InformationsquelleAutor der Antwort Jon
Tut mir Leid dich enttäuschen zu müssen, aber die VM-Spezifikationen sind genauwas Sie nach. Wenn Sie nicht verarbeiten kann Spezifikationen, dann vielleicht sollten Sie nicht schreiben, Compiler, nachdem alle.
InformationsquelleAutor der Antwort Bombe
Ich denke, Sie könnten versuchen, mit den vorhandenen Werkzeugen und untersuchen die Wirkung der inkrementelle änderungen an den resultierenden bytecode.
Quelle:
javap Ausgabe:
Binäre:
InformationsquelleAutor der Antwort McDowell
Den JVM-Spezifikation ist wahrscheinlich das, was du suchst, und insbesondere Kapitel 4 - die Klasse-Datei-format.
InformationsquelleAutor der Antwort Jon Skeet
SmartEiffel enthält eine open-source-java .Klasse-Datei-generator.
http://smarteiffel.loria.fr/
InformationsquelleAutor der Antwort michael aubert