ich habe im Rahmen des 4. Semesters einen Compiler für eine eigene Skriptsprache schreiben müssen. Evtl. interessiert manche ja, wie das ganze dann aussieht. Die Skriptsprache heißt Money, deshalb heißt der Compiler Money Compiler.
Der Compiler arbeitet mit
und einer eigenen Grammatik als Parser und produziert JVM Code. Dieser wird anschließend mit
zu einer .class File übersetzt. Das Projekt wurde innerhalb kurzer Zeit umgesetzt, deshalb sind sicher die einen oder anderen Fehler vorhanden, zum Bestehen hat es aber gereicht.
Die Grammatik gibt es hier:

Ein Beispiel:

Die .jar:

Verwendung: java -jar Compiler.jar (hier den Pfad zur Datei angeben) (hier true oder false, je nachdem ob Debuginformationen gewünscht sind oder nicht)
Wenn Debug auf true gesetzt ist, kann man die .class debuggen & der Compiler gibt am Ende den JVM Source Code aus. Nach dem erfolgreichen Kompilieren wird die .class gespeichert (im selben Pfad wie die Quelldatei) und ausgeführt.
In der .class wird alles, was nicht innerhalb einer Funktion ist, in die main-Methode geschrieben. Mit einem Java-Decompiler kann man den Bytecode der .class in Java übersetzen lassen, das ist auch ganz lustig.
Falls es Interesse am Source Code des Compilers gibt, kann ich diesen gerne hochladen, der ist allerdings nicht so sauber wie ich ihn gerne hätte.
Vielleicht interessiert es ja den einen oder anderen, viel Spaß damit!






