Praktische Informatik III – Compilerbau
Kurzbeschreibung
Die Lehrveranstaltung bietet eine Einführung in den Compilerbau, wobei folgende Themen behandelt werden: Grammatiken, lexikalische, syntaktische und semantische Analyse, Codegenerierung, Fehlerbehandlung, Aspekte der Softwaretechnik.
Zur Kommunikation zwischen Veranstaltungsleitern und -teilnehmern außerhalb der Veranstaltungen wurde die Newsgroup local.lehre.ws2008.pi3 eingerichtet. Diese ist, da lokal, nur auf dem Newsserver des Institutes zu finden. Alle Details zum Zugang und weitere Informationen sind auf den Infoseiten des Newsservers zu finden.
Klausur
Die Klausurergebnisse sind nun verfügbar. Eine
Einsicht in die Klausur kann, am 23. März in der Zeit von 15:00 bis 17:00 Uhr in Raum 3.328 vorgenommen werden.
Die Nachklausurergebnisse sind nun ebenfalls verfügbar.
Vorlesungsmaterialien
Vorlesungsfolien
- I: Einführung (Compilerbau im Überblick): 1.Vorlesung, 15.10.2008
- II: Einführung in C (Teil 1): 2. Vorlesung, 20.10.2008
- II: Einführung in C (Teil 2): 3. Vorlesung, 22.10.2008
- II: Einführung in C (Teil 3): 4. Vorlesung, 27.10.2008
- II: Einführung in C (Teil 4): 5. Vorlesung, 29.10.2008
- III.1: Formalismen (Sprachen, Grammatiken): 6. Vorlesung, 03.11.2008
- III.2. Lexikalische Analyse (Scannerbau, tabellengesteuerter DFA): 7. Vorlesung, 05.11.2008
- III.2. Lexikalische Analyse (RA-->NFA-->DFA): 8. Vorlesung, 10.11.2008
- III.2. Lexikalische Analyse (Lex-Werkzeug): 9. Vorlesung, 12.11.2008
- III.3. Syntaktische Analyse (rekursiver Abstieg, det.kontextfreie Sprachen, Mehrdeutigkeit von Grammatiken): 10. Vorlesung, 17.11.2008
- III.3. Syntaktische Analyse (Grammatik-Restrukturierung, Prädiktive Parser, First-Menge): 11. Vorlesung, 19.11.2008
- III.3. Syntaktische Analyse (Follow-Menge, LL(k)-Grammatiken): 12. Vorlesung, 24.11.2008
- III.3. Syntaktische Analyse (tabellengesteuerter LL(1)-Parser): 13. Vorlesung, 26.11.2008
- III.3. Syntaktische Analyse (Operatorpräzedenzanalyse) 14. Vorlesung, 15.12.2008
- III.3. Syntaktische Analyse (allgemeine LR-Verfahren, LR-0 Verfahren) 15. Vorlesung, 18.12.2008
- III.3. Syntaktische Analyse (SLR(1)-und LR(1)-Verfahren) 16. Vorlesung, 05.01.2009
- III.3. Syntaktische Analyse (LALR(1)- u. LR(k)-Verfahren) 17. Vorlesung, 07.01.2009
- III.4. Parser-Generatoren (Bison), 18. Vorlesung, 08.01.2009
- III.4. Parser-Generatoren (Bison), 19. Vorlesung, 15.01.2009
- III.5. Semantische Aktionen, 20. Vorlesung, 19.01.2009
- III.5. Semantische Aktionen, 6. SYmboltabelle, 21. Vorlesung, 21.01.2009
- III.7. Zwischencodeerzeugung, Typ-Checker, 22. Vorlesung, 26.01.2009
- III.7. Klausurhinweis, Zwischencodeerzeugung, Typ-Checker, 23. Vorlesung, 28.01.2009
- III.7. Jasmin, 24. Vorlesung, 02.02.2009
- III.8. Laufzeitumgebungen, 25. Vorlesung, 04.02.2009
- III.9. Codegenerierung, 26. Vorlesung, 09.02.2009
Zusatzmaterial (Beispiele)
Praktikum
Bei sämtlichen Fragen zum Praktikum wenden Sie sich bitte ausschließlich an die oben genannte Newsgroup, in der wir Veranstaltungsleiter regelmäßig mitlesen/mitschreiben werden (sollten Sie über keine Usenet-Erfahrungen verfügen, empfiehlt sich ein Besuch der ersten Praktikumsveranstaltungen). Wir haben übrigens auch kein Problem damit (wir würden uns sogar eher darüber freuen), wenn Sie sich auch selbst über die Newsgroup gegenseitig helfen. Bitte greifen Sie nur dann zum Mailprogramm, wenn es sich um Fragen/Probleme handelt, die Sie persönlich betreffen (etwa Punktabzüge).
Es gibt voraussichtlich 6 Praktikumsaufgaben mit insgesamt 550 Punkten. Um den Praktikumsschein zu erwerben, müssen 70% der maximal möglichen Punktzahl erreicht werden.
Praktikumsaufgaben
-
Aufgabe 1 und 2 zum 16.11.2008, 20:00 Uhr
C (Stack und Stringbuffer)
-
Aufgabe 3 und 4 zum 30.11.2008, 20:00 Uhr
Scanner (C0- und URL-Scanner)
-
Aufgabe 5 zum 14.12.2008, 20:00 Uhr
Handgeschriebener Parser
-
Aufgabe 6 zum 18.01.2009, 20:00 Uhr
Parser mit Bison
-
Aufgabe 7 zum 01.02.2009, 20:00 Uhr
Semantische Analyse
-
Aufgabe 8 zum 18.02.2007, 20:00 Uhr
Codegenerierung
Dateien aus den Praktikumsveranstaltungen u.ä.
- 2. Praktikum, Dr. Ahrens, 03.11.2008
- 3. Praktikum, Dr. Ahrens, 19.11.2008
- 4. Praktikum, Dr. Ahrens, 19.11.2008
- 10. Praktikum (calc und calcVar), 26.01.2009
- D-Java Quellen zum 'Selberbauen', K. Ahrens, 05.02.2009
- 11. Praktikum (codegen für if), K. Ahrens, 06.02.2009
C-Zusatzpraktikum
Die Lösung der C-Übungsaufgaben und die Teilnahme am C-Zusatzpraktikum sind freiwillig. Der vermittelte Stoff wird aber im Rest der Lehrveranstaltung vorausgesetzt.
Voraussetzung für eine erfolgreiche Teilnahme an der Lehrveranstaltung sind gute Kenntnisse in der Programmiersprache C. Die ersten vier Vorlesungen (nach der Einführungsvorlesung) werden sich daher ausschließlich mit dieser Programmiersprache beschäftigen. Des Weiteren werden parallel (nicht abzugebende) Programmieraufgaben gestellt, die der Übung dienen.
Die zu lösenden Aufgaben befinden sich auf den folgenden Seiten:
Letzte Änderung: 06.10.2009