Ich habe einen Compiler in C (mit Lex & Bison) für eine dynamisch typisierte Programmiersprache erstellt, die Schleifen, Funktionsdeklarationen innerhalb von Funktionen, rekursive Aufrufe usw. unterstützt. Außerdem habe ich eine virtuelle Maschine erstellt, die den vom Compiler erstellten Zwischencode ausführt.
Ich dachte jetzt, anstatt zu meinem eigenen Zwischencode zu kompilieren, kompiliere ihn zu Java-Byte-Code.
Ich habe gesehen, dass die Frage zum Erstellen einer JVM-Sprache bereits gestellt wurde , aber ich finde die Antwort nicht sehr informativ.
Also hier sind meine Fragen:
- Ich denke, um eine Sprache für JVM zu erstellen, muss man unbedingt das JVM-Spezifikationsbuch lesen. Welche anderen Bücher können Sie vorschlagen (außer natürlich Dragon Book)? Ich mache mir hauptsächlich Sorgen um Bücher oder Tutorials zum Erstellen einer JVM-Sprache, nicht um einen Compiler im Allgemeinen.
- Es gibt viele Java-Bibliotheken zum Lesen, Schreiben und Ändern von .class-Dateien wie jclasslib , bcel , gnu- Bytecode usw. Welche würden Sie vorschlagen? Kennen Sie auch C-Bibliotheken, die den gleichen Job machen?
- Ich dachte darüber nach, mir vielleicht eine andere Sprache anzuschauen, die auf die JVM abzielt, wie Clojure, Jython oder JRuby. Aber all diese Sprachen sind sehr hoch und kompliziert (um einen Compiler für sie zu erstellen). Ich suchte nach einer einfacheren Programmiersprache (es macht mir nichts aus, wenn sie unbekannt oder nicht verwendet wird), die auf die JVM abzielt und deren Compiler Open Source ist. Irgendwelche Ideen?
quelle