BMCC

Dieser Compiler für Mac OS X entstand im Rahmen des Hauptseminars während meines Studiums. Idee war es einen Compiler zu entwickeln, der von der Quellsprache und dem zu erzeugenden Zielcode unabhängig ist. Vielmehr sollten diese beiden Dinge durch ein externes XML-File spezifiziert werden und der Compiler anhand der Regeln dieser Datei arbeiten.Weitere Informationen zu den einzelnen Arbeitsabschnitten gibt es im Bereich Veröffentlichungen (das Handbuch ist Teil des Downloads).

Dieses Ziel konnte mit wenigen Abstrichen erreicht werden. So ist es mit dem aktuellen Stand möglich, ein PL/0 Quellprogramm z.B. in C++ oder C# zu übersetzen und dieses dann ganz normal in nativen Binärcode zu übersetzen und auszuführen (mehr dazu später).

Idee

Idee war es einen Compiler zu entwickeln, der von der Quellsprache und dem zu erzeugenden Zielcode unabhängig ist. Diese beiden Dinge sollten durch eine XML-Datei spezifiziert werden und der Compiler sollte anhand der dort aufgestellten Regeln arbeiten. Außerdem sollte er mit einem tabellengesteuerten Verfahren arbeiten (lexikalische Analyse -> Morphemcode -> syntaktische Analyse -> Syntaxbaum -> Codeerzeugung)

Vorraussetzungen

Als System für den Compiler wird mindestens Mac OS X 10.3 benötigt, da in früheren Versionen z.B. keine Unterstützung für einen XML-Parser vorhanden ist.

Die Grammatik muss aufgrund der implementierten Arbeitsweise des Compilers LL1 sein. Eine automatische Überprüfung auf LL1 findet nicht statt und muss daher von Hand gewährleistet werden. Die im Download enthaltenen Beispielgrammatiken genügen dieser Anforderung.

Aktueller Stand & Weiterentwicklung

Ich habe momentan (Sommer 2005) keine Zeit an dem Projekt weiter zu arbeiten. Der Compiler selbst hat noch viele Fehler und nicht zu Ende implementierte Funktionen und ist daher eher noch Alpha- als Beta-Software. Mit den im Download enthaltenen Beispielen funktioniert der Compiler und zumindest daran kann die Arbeitsweise eines tabellengesteuerten top-down Compilers sehr gut demonstriert werden.

Wer möchte kann sich gern an der Weiterentwicklung des Projekts zu schaffen machen. In diesem Fall würde ich mich über eine Kontaktaufnahme sehr freuen, denn vielleicht motiviert es mich ja auch wieder ein paar Handgriffe zu machen.

Download

Grammatiken:

Das komplette BMCC Projekt (Handbuch, Sourcecode, Beispielgrammatiken, PL/0 Testprogramme): bmcc.zip (316kb)

Nach dem Entpacken des Archivs muss der Compiler zunächst mit XCode gebaut werden. Die mit Hilfe von BMCC erzeugten Zielprogramme lassen sich z.B. mit dem gcc (im Falle von C++) oder dem mcs (im Falle von C#) übersetzen und anschließend ausführen.