Bild mit Unilogo
home uni uni kontakt kontakt
unilogo Universität Stuttgart
Institut für Kommunikationsnetze und Rechnersysteme (IKR)

Themenbeschreibung

Druckansicht
 

Bachelor-Arbeit / Forschungsarbeit Nr. 1038    (Abgeschlossen)   [pdf]

Entwurf und Implementierung eines Backends für einen Modell-Compiler mit SSA-basiertem Register-Allokator


Methoden

Themengebiete

Programmierung

Rechnerarchitektur


Beschreibung

Hintergrund

Am Institut wird eine minimale Programmiersprache für Lehr- und Forschungszwecke entwickelt, deren Syntax an die Progrmmiersprache Go von Google angelehnt ist. Für diese Sprache entsteht derzeit ein Modell-Compiler, der sich klassisch in ein Frontend und ein Backend gliedert. Das Frontend setzt eine Quelldatei in einen stapelbasierten Zwischencode (IC-Code) um, der vom Backend eingelesen und in die Static Single Assignment Form (SSA) transformiert wird. Das Backend soll die Register-Allokation auf Basis der SSA durchführen und anschließend Code für eine Zielarchitektur erzeugen.

Aufgabenstellung

Das Frontend und Teile des Backends sind in vorausgegangenen Arbeiten entstanden. Ziel der vorliegenden Arbeit ist es, den SSA-basierten Register-Allokator (nach Sebastian Hack) einschließlich grundlegender Optimierungen zu vervollständigen und Code für mindestens eine Zielarchitektur (IKR RISC II, RISC-V oder Objective-RISC) zu erzeugen. Als Implementierungssprache für das Projekt dient GoSUB, ein am Institut entwickelter Forschungsdialekt der Programmiersprache Go von Google (nicht zu verwechseln mit der eingangs erwähnten Minimalsprache).

Erworbene Kenntnisse und Fähigkeiten

Sie arbeiten in einem aktuellen Forschungsprojekt mit, lernen neue Ansätze für Programmiersprachen kennen, vertiefen die Grundlagen des Compilerbaus und konzentrieren sich dabei auf die Themen SSA, Registerallokation und Code-Erzeugung. Sie erweitern Ihre Programmierkenntnisse und lernen dabei, Programmiersprachen und Sprachmechanismen kritisch zu hinterfragen und zu bewerten.


Kontakt

Dipl.-Ing. Matthias Meyer, Raum 1.334 (ETI II), Telefon 685-67975, [E-Mail]