Bachelorprojekt Systemnahe Programmierung
In diesem Projekt analysieren, entwerfen und implementieren wir einen Interpreter und eine Laufzeitumgebung für Lisp, eine der ältesten funktionalen Programmiersprachen, die u.a. die Basis für frühe Erfolge der KI-Forschung war. Dabei behandeln wir Themen wie REPL-Loops, Scannen und Parsen von Quellcode, Implementieren von typischen Eigenschaften funktionaler Sprachen (z.B. Lambdas) und auch Details der Speicherverwaltung wie Heap-/Stackmanagement und Garbage Collection. Fortgeschrittene Themen beinhalten die statische und dynamische Übersetzung in Maschinencode und die Integration in eine "bare metal"-Umgebung, die es erlaubt, das entwickelte Lisp-System ohne Hilfe eines Betriebssystems direkt auf der Hardware laufen zu lassen.
Die Aufgaben des Projektes umfassen den Entwurf und die Implementierung eines kleinen Lisp-Systems in der Gruppe sowie eine Abschlusspräsentation und einen kurzen Abschlussbericht. Zu Beginn des Projektes werden individuell oder in Kleingruppen zu bearbeitende einführende Aufgaben vergeben, bevor die Gruppen-Projektphase beginnt.
Es gibt viel Literatur zu diesem Thema, interessant sind folgende Bücher:
- Robert Nystrom, Crafting Interpreters, ISBN: 9780990582939, online frei verfügbar
- John Allen, Anatomy of Lisp, McGraw-Hill, Inc.Professional, 1978, ISBN: 9780070011151
- Richard Jones, Antony Hosking, Eliot Moss, The Garbage Collection Handbook
The Art of Automatic Memory Management, 2nd Edition 2023, CRC Press, ISBN: 9781032218038
Das Bachelorprojekt wird von Prof. Dr. Michael Engel betreut.