|
|
|
Institut für Kommunikationsnetze und Rechnersysteme (IKR)
|
|
Themenbeschreibung |
|
|
|
|
|
|
|
|
|
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]
|
|
|
|
|
|
|