Pflichtfach im 7. Semester
An Hand eines im Laufe des Semesters zu entwickelnden graphengesteuerten Einpasscompilers für PL/0 wird die Arbeitsweise und der Aufbau von Compilern/Interpretern praxisnah vermittelt. Im begleitenden Praktikum erarbeitet jeder Student seinen eigenen Compiler bis zur Zwischencodegenerierung. Die Funktionsfähigkeit ist mit einem Zwischecodeinterpreter, der zur Verfügung gestellt wird, an Hand verschiedener Programmbeispiele nachzuweisen.
Die
Sprachbeschreibung von PL/0 wurde dem Büchlein „Compilerbau“ von Prof.
Niklaus Wirth, Zürich, erschienen beim B.G.Teubner-Verlag Stuttgart,
1986 entnommen.
Die
Links auf dieser Seite enthalten Abeitsmaterial und Hilfestellungen zum
eigenständigen Bau des PL/0-Compilers im Rahmen des
lehrveranstaltungsbegleitenden Praktikums.
Lehrinhalte:
Grundlagen zur Theorie formaler Sprachen
Aufbau und Arbeitsweise von Compilern/Interpretern
Realisierung eines Interpreters zur Berechnung numerischer Ausdrücke auf der Grundlage des Verfahrens des rekursiven Abstiegs
Arbeitsweise verschiedener Verfahren zur syntaktischen Analyse (tabellen-/graphengesteuert)
Realisierung eines funktionsfähigen PL/0-Compilers, bestehend aus dem Lexer, Parser, Semantikroutinen und Zwischencodegenerierung.
Realisierung
eines Lexers auf der Grundlage eines endlichen Automaten
Erarbeitung der Semantikroutinen und Zwischencodegenerierung
Einführung in Lex und Yacc am Beispiel von PL/0
Einführung in Jlex und Jcup am Beispiel von PL/0
Umfang:
2/0/2
Abschluß:
Klausur
Literatur:
Download
Binaries (Lauffähiger Compiler, Virtuelle Maschine,
Zwischencoderückübersetzer, Dump)
Sources (aufgewählte Headerfiles und C-Code-Schnipsel)