|
- Dozent: Prof. Dr. Peter Padawitz
- Wahlpflichtveranstaltung INF-BSc-212 im WiSe 2017/18 für Studierende der Bachelorstudiengänge Informatik und Angewandte Informatik sowie Pflicht- bzw. Wahlveranstaltung im Hauptstudium des Diplomstudiengangs Informatik bzw. Angewandte Informatik
- 2 SWS Vorlesung + 1 SWS Übung = 4 Credits
- Zur Teilnahme an der Übung bitte auf der Moodle-Seite dieser LV anmelden. Dort stehen alle laufenden Infos, Übungstermine und -aufgaben.
- Übungsleiter: Andrej Dudenhefner
- Vorlesungstermin: Mo 10:15-11:45 im OH 14, Hörsaal E 23
- Beginn: 09. 10. 2017
- Zeitplan:
- 09. 10. 2017 Mathematische Grundlagen: Mengen, Funktionen, Typen
- 16. 10. 2017 Mathematische Grundlagen: Signaturen, Terme, Algebren, Faltung und Entfaltung
- 23. 10. 2017 dto.
- 30. 10. 2017 Kontextfreie Grammatiken, abstrakte Syntax, JavaLight, JavaState
- 06. 11. 2017 dto.
- 13. 11. 2017
Funktoren, Monaden, Parser, generische Compiler
- 20. 11. 2017 dto.
- 27. 11. 2017
LL-Compiler
- 04. 12. 2017
LR-Compiler
- 11. 12. 2017 Algebren in Haskell, StackCom, JavaStack
- 18. 12. 2017 dto.
- 08. 01. 2018
JavaLight + I/O + Deklarationen + Prozeduren
- 15. 01. 2018 dto.
- 22. 01. 2018 Monadische Compiler
- 29. 01. 2018
dto.
- Kompetenzen: Es werden grundlegende Entwurfs- und Implementierungstechniken zur Erkennung der hierarchischen Struktur symbolischer Objekte und deren semantikerhaltender Übersetzung vermittelt. In diesem Kerngebiet der Informatik haben sich Theorie und Praxis schon immer stark gegenseitig beeinflusst. Während die Theorie formaler Sprachen vor allem die Entwicklung von Parsern vorangetrieben hat, sind es die zentralen Konzepte der universellen Algebra und funktionalen Programmierung, die es erlauben, komplette Compiler modular und generisch aufzubauen. Deren Prinzipien, Handhabung und Anpassbarkeit bilden das vorrangige Lernziel.
- Folien-Skript
- weitere Materialien
- Literaturempfehlungen (Compiler und Formale Sprachen)
- Wilhelm, Seidl, Übersetzerbau - Virtuelle Maschinen, Springer 2007
- Seidl, Wilhelm, Hack, Übersetzerbau - Analyse und Transformation, Springer 2010
- Wilhelm, Seidl, Hack, Übersetzerbau - Syntaktische und semantische Analyse, Springer 2012
- Seidl, Wilhelm, Hack, Übersetzerbau - Codeerzeugung und maschinennahe Optimierung, Springer 2019
- Andrew Appel, Modern Compiler Implementation in ML, Cambridge University Press 1998
- Hopcroft, Motwani, Ullman, Einführung in die Automatentheorie, Formale Sprachen und Komplexität,
Pearson Studium 2002
- Vossen, Witt, Grundkurs Theoretische Informatik, Vieweg+Teubner 2006
- Literaturempfehlungen (Algebra in der Informatik)
- Ehrig, Mahr, Cornelius, Große-Rhode, Zeitz, Mathematisch-strukturelle Grundlagen der Informatik, Springer-Verlag 1999 (in der Lehrbuchsammlung unter L Sr 436/2)
- Einige für den algebraischen Zugang zum Compilerbau grundlegende Arbeiten sind am Ende der Folien Übersetzerbau aufgelistet.
- Einführende Arbeiten über Coalgebren sind hier zu finden.
- Haskell-Lehrbücher und -Tutorials: siehe LV Funktionale Programmierung
- hackageDB: Haskell-Bibliotheken und -Werkzeuge
- Haskell-Module (werden zum Teil in der Vorlesung behandelt)
- Painter: Funktionen zur graphischen - auch animierten - Wiedergabe von Texten, Bäumen und Graphen in SVG- bzw. HTML-Dateien. Zur Einführung in SVG werden die Folien von Thomas Meinike sowie selfsvg empfohlen.
- Compiler.hs: Compiler, binäre Bäume, reguläre Ausdrücke, Moore-Automaten, Compiler für reguläre Ausdrücke, Parser für reguläre Sprachen und CFGs, Compiler für SAB und XMLstore (gehört zum Painter-Paket)
- Java.hs: JavaLight-Compiler und -Zielsprachen
- Java2.hs: JavaLight+-Compiler und die Zielsprache StackCom* mit I/O und Kelleradressierung
- Examples.hs: Verschiedenes
- PreludeHugs.hs: Prelude des hugs-Interpreters (stimmt größtenteils mit dem ghci-Prelude überein)
- Cbau.hs: Programme aus dem alten Skript
- Vorlesungsfolien von 2007
- Vorlesungsfolien von 2005 bzw. 2006: Kap. 1+2 Kap. 3 Kap. 4 Kap. 5 Kap. 6 des alten Skripts
- JFLAP: a tool for experimenting with formal languages
|
|