Systemsoftware und Verteilte Systeme

Modulare Codeerzeugung

Bachelor-, Master- oder Diplomarbeit je nach Schwierigkeit/Funktionsumfang

Themengebiete

Codeerzeugung, Programmiersprachen und Modularisierung

Hintergrund

Anders als in der Literatur sind aktuelle Compiler sind meist monolithische
Blöcke. Sie lesen den Quellcode eines Programmes ein und geben Maschinencode
aus. Das Eingabemedium ist gewöhnlich auf Dateien beschränkt und einzelne Teil
wie der Lexer oder der Parser können nicht für andere Aufgaben wiederverwendet
werden. Somit ist es nötig, für verschiedene IDEs oder andere Programmcode
manipulierende Programme jeweils eigene Frontends für ein und dieselbe
Programmiersprache zu entwickeln. Ziel der Arbeit soll es sein, ein bestehendes
modulares Compiler Frontend mit einem Compiler Backend zu verbinden ohne das
dieses Backend spezifisch angepasst werden muss.

Aufgabenbeschreibung

Gegenstand der Arbeit ist es, für eine einfache C ähnliche Programmiersprache die
Maschinencodegenerierung, mit Hilfe eines bestehenden, Backends zu
implementieren. Die Wahl des Backends ist freigestellt, die einzige
Anforderung ist, dass es zur Laufzeit geladen werden kann. Des Weiteren sollte
die Quellsprache um Strukturieungselement erweitert werden und einzelne semantische
Überprüfungen der Quellsprache implementiert werden. Des weiteren soll der
Compiler in eine IDE integriert werden um die Flexibilität des modularen
Ansatzes zu überprüfen.