Compiler 1: Grundlagen
- Bereich
- Computer Microsystems
- Fachrichtung
- Technische Informatik, Elektrotechnik/Datentechnik
- Art
- Vorlesung V2
- Dozent/Prüfer
- Andreas Koch
- Voraussetzungen
- Grundkenntnisse Algorithmen und Datenstrukturen, Java, Rechnerarchitektur (erworben z.B. durch GDI1, GDI3 und Technische Grundlagen der Informatik)
- Inhalt
- Gerade die harten Anforderungen an eingebettete Systeme (z.B. hohe Rechenleistung bei niedrigem Energiebedarf) erfordern oftmals den Einsatz spezialisierter Prozessorarchitekturen. Um diese für Software-Entwickler zugänglich zu machen, müssen neben den Prozessoren auch geeignete Compiler bereitgestellt werden. Diese Veranstaltung gibt eine praktisch orientierte Einführung in die Grundlagen des Compilerbaus, speziell der benötigten Algorithmen und Datenstrukturen. Dabei werden alle Phasen der Compilierung, vom Lexing/Parsing über die semantische Analyse bis hin zur Code-Erzeugung behandelt. Weitere Themen umfassen die automatische Erzeugung von Lexern/Parsern durch Werkzeuge wie ANTLR und JavaCC, die Laufzeitumgebung bei der Ausführung von Hochsprachen sowie den Aufbau von Interpretern. Die Verfahren werden anhand eines in Java verfassten Beispielcompilers für die einfache Hochsprache Triangle erklärt. Zu den einzelnen Abschnitten werden Hausaufgaben in Form von Verständnisfragen und kleineren Programmieraufgaben angeboten.
- Literatur
- • Programming Language Processors in Java von David Watt und Deryck Brown
- Credits
- 3,0 CP
- Zeit
- • Dienstags, 11:40-13:20 Uhr
- Ort
- S2|02 / C110
- Beginn
- 16.10.2012
- Prüfung
- Die Prüfung findet in Form einer Klausur am 21.02.2013 von 10-12 Uhr im S206/030 statt. Bitte stellen Sie in jedem Fall sicher, dass Sie sich, Ihrer Studienordnung entsprechend, rechtzeitig bei der für Sie zuständigen Stelle zur Prüfung angemeldet haben!
- Nachprüfung
- Die Nach-/Wiederholungsprüfung im Sommersemester 2013 findet am 25.09.2013 mündlich statt. Vereinbaren Sie dazu bitte einen Zeitslot mit dem Sekretariat des FG ESA.
Vorlesungsfolien
1. Block: Einleitung, Beschreibung von ProgrammiersprachenFarbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1 2. Block: Kompilierungsablauf und Syntaktische Analyse
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1 3. Block: Kontextanalyse
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1 4. Block: Laufzeitumgebung
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1 5. Block: Code-Generierung
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1 6. Block: Compiler-Generator ANTLR
Farbig, 1-auf-1 Mit Animationen, Farbig, 1-auf-1
Aufzeichnungen
Die Folien und der Vortrag werden aufgezeichnet. Dabei kann es gelegentlich durch die Tücke der Technik zu Störungen oder Ausfällen kommen. Wir bitten diese zu entschuldigen und hoffen, sie in erneuten Durchgängen zu vermeiden. Die Aufzeichungen selbst sind platzsparend im H.264-Format komprimiert. Falls das von Ihnen verwendete Betriebssystem keinen dafür passenden Codec mitbringt, kann dieser in der Regel problemlos nachinstalliert werden. Für Windows-Varianten könnte dafür bespielsweise das Paket FFDShow Tryout genutzt werden. Unter Linux ist der übliche mplayer direkt in der Lage, die Dateien abzuspielen. 23.10.201230.10.2012
06.11.2012
13.11.2012 leider zu schlechter Ton, bitte entsprechende Aufzeichung aus dem Vorjahr verwenden
20.11.2012
27.11.2012
04.12.2012
11.12.2012
18.12.2012
15.01.2013
22.01.2013
29.01.2013
05.12.2013 leider zu schlechter Ton, bitte entsprechende Aufzeichung aus dem Vorjahr verwenden
Hausaufgaben
1. Aufgabenblatt Lösungsvorschlag2. Aufgabenblatt Lösungsvorschlag
3. Aufgabenblatt Lösungsvorschlag
4. Aufgabenblatt
Compiler-Quellcode
Quellcode des Triangle-Compilers und der virtuellen MaschineANTLR Works für Hausaufgaben
ANTLR für Hausaufgaben
Calc Grammatik für Hausaufgaben 13.02.2013: Beispiel für Calc Programm hinzugefügt