Prof. Dr. Jochen Rethmann
Hochschule Niederrhein
Fachbereich Ingenieurwissenschaften und Informatik
Reinarzstraße 49
47805 Krefeld
Fon: 0 21 51 / 8 22 - 46 33
Fax: 0 21 51 / 8 22 - 46 66
E-Mail: jochen.rethmann(at)hsnr.de

Letzte Änderung: 25.09.2025

Compilerbau: Kombiniertes Projekt und Seminar

Bachelor Informatik
5. Semester

Termine und Allgemeines für das Wintersemester 2025/2026

Vorkenntnisse: Grundlagen der Programmierung in C++ bspw. aus dem Modul PE2
Grundlagen über formale Sprachen bspw. aus dem Modul THI
Seminar + Projekt: Montag 14:00 - 17:30 Uhr, Raum F205
Prüfungsform: Präsentation bzw. Seminarvortrag und
schriftlicher Projektbericht bzw. Ausarbeitung zum Seminar

Das erste Treffen findet am Montag, 22.9.2025 statt.

Organisation: In den ersten drei Wochen findet zu der oben angegebenen Zeit nur das Seminar statt, in den verbleibenden 12 Wochen soll zu der oben genannten Zeit und zu Hause an der Umsetzung des Projekts gearbeitet werden.

Das Seminar dient zur Einarbeitung in das Themengebiet. Es sollen Konzepte wie die Analysephase (bestehend aus lexikalischer, syntaktischer und semantischer Analyse) sowie die Synthesephase (bestehend aus Code-Generierung und -Optimierung) mit anschließendem Linken der einzelnen Module erarbeitet und vorgestellt werden. Sie sollen die Schritte von der textuellen Beschreibung einer compilierten (nicht interpretierten) Programmiersprache, der Übersetzung eines Programms sowie die Ausführung erläutern können und die Komponenten der entsprechenden Toolchain und deren Funktion skizzieren können. Im Seminar bearbeiten Sie alleine oder als Team von zwei Studierenden ein Thema.

Im Projekt sollen Sie einen Prototypen (Proof-of-Concept) für eine Toolchain einer ausgewählten Programmiersprache für die RISC-V-ISA umsetzen. Sie sollen die Übersetzung der selbst entworfenen Programmiersprache und die Ausführung des übersetzten Codes auf dem ESP32C3 demonstrieren und diskutieren. Im Projekt arbeiten Sie in Teams von zwei bis acht Studierenden.

Prüfungsmodalitäten: Im Semester muss im Rahmen des Seminars pro Person ein Thema in einem längeren Vortrag oder mehrere Themen in mehreren kurzen Vorträgen vorgestellt werden, um den anderen Studierenden die entsprechenden Inhalte zu vermitteln. In den Vorträgen muss die Relevanz der vorgestellten Themen für das Projekt klar ersichtlich sein. Zusätzlich muss der eigene Beitrag am Projekt am Ende des Semesters im Rahmen der Projektvorstellung präsentiert und diskutiert werden. Um das jeweilige Testat (Seminar bzw. Projekt) zu erhalten, muss an den Pflichtterminen aktiv teilgenommen und zum allgemeinen Ziel beigetragen werden. Es muss aktiv am Projekt mitgearbeitet und das Projektergebnis am Ende des Semesters demonstriert werden, um den eigenen Beitrag zu diskutieren.

Arbeitsaufwand: Sowohl das Seminar als auch das Projekt sind mit zwei Leistungspunkten (CP) in der Prüfungsordnung angegeben. Insgesamt werden also vier CP erworben, wenn das kombinierte Modul erfolgreich absolviert wird. Laut der Verordnung zur Regelung des Näheren der Studienakkreditierung in Nordrhein-Westfalen (Studienakkreditierungsverordnung - StudakVO) vom 25.01.2018, Paragraph 8 Leistungspunktesystem, Satz (1) entspricht ein Leistungspunkt einer Gesamtarbeitsleistung von 25 bis höchstens 30 Zeitstunden. Insgesamt ergibt sich also ein Arbeitsaufwand von 100 Stunden im Semester. Diese verteilen sich bei 15 Wochen Vorlesungszeit im Semester auf sechs Stunden pro Woche plus einmalig zehn Stunden zum Erstellen des Vortrags und der Seminarausarbeitung.

Compilerbau

Die Hauptaufgabe eines Compilers ist es, einen in einer höheren Programmiersprache (wie C++, Java oder Rust) geschriebenen Quellcode in eine maschinennahe Sprache (meist Binärcode oder Maschinensprache) umzuwandeln. Das Ziel ist es, dass der Computer die Anweisungen direkt ausführen kann.

Phasen des Compile-Vorgangs

Warum arbeitet man mit Intermediate-Code? Wird eine neue Programmiersprache entwickelt, muss nur die Analyse-Phase überarbeitet werden, es kann weiterhin in den bekannten Zwischencode übersetzt werden. Die bestehende Optimierung und Code-Generierung für verschiedene Prozessoren können wiederverwendet werden.

Im Gegensatz zu einem Interpreter (der den Code Zeile für Zeile während der Ausführung übersetzt), übersetzt der Compiler das gesamte Programm im Voraus. Dadurch ist die Ausführung des Programms in der Regel deutlich schneller.

Seminarthemen

Compilerbau sollte als Übersetzungspipeline begriffen werden. Die Themen beschreiben die logische Abfolge, wie aus Text ausführbarer Code wird. Jedes Seminarthema sollte von jeweils ein oder zwei Studierenden bearbeitet werden. Die Ausarbeitung der Themen, die allen Seminarteilnehmern zur Verfügung gestellt wird, muss so exakt sein, dass eine Definition der Schnittstellen und eine Implementierung möglich ist. Sie wird der Projekt-Dokumentation hinzugefügt. Mögliche Themen:

Es ist oft hilfreich, wenn jedes Thema an dem selben, sehr simplen Beispiel (z.B. ein Taschenrechner für Grundrechenarten) erklärt wird.

An diesem kombinierten Projekt und Seminar sollten nicht mehr als 20 Studierende teilnehmen.

zurück zur Startseite