Grundlagen des Compilerbaus
12 113 11551 Grundlagen des Compilerbaus
Prof. Dr. R. Loogen
Achtung (neu ab Januar 2012):
Di, 16.00 - 18.00 Uhr, HS IV (Lahnberge)
Mi, 15.15 - 16.15 Uhr, SR V (!!!) (Ebene D5, Lahnberge)

Beginn: 18.10.2011
Übungen Mischa Dieterle
ab 27. Oktober: Do, 12.15 - 14.00 Uhr, HS V (Raum 04A23, Ebene A4, Lahnberge)
Achtung: Am 20. Oktober findet die Übung mit einer Einführung in Haskell ausnahmsweise von 16.15 bis 18.00 Uhr im SR XIII (Raum 03C45, Ebene C3, Lahnberge) statt.
Beginn: 20.10.2011
Fachgebiet Klassifikation Semester Leistungspunkte Skript
Informatik Hauptstudium, theoretische Informatik, Systementwicklung
Vertiefungsmodul nach StPO 2004
Aufbaumodul nach StPO 2010
>=3 9 ja

Voraussetzungen: Grundvorlesung Theoretische Informatik (Automatentheorie und Formale Sprachen), Grundkenntnisse in funktionaler Programmierung mit Haskell
Kriterien für die Leistungspunktevergabe:
  1. aktive Teilnahme an den Übungen
  2. erfolgreiche Bearbeitung von mindestens 50 % der Übungsaufgaben, Abgabe in Zweiergruppen ist erlaubt.
  3. Vorbereitung und mündliche Präsentation von mindestens zwei Übungsaufgaben
  4. Bestehen der Abschlussprüfung (Klausur oder mündliche Prüfung)
Prüfungsanmeldung: Eine Anmeldung zur Abschlussprüfung ist bis zum 13. Januar 2012 möglich.


Übungsblätter: ...erscheinen dienstags. Die Aufgaben sind am darauffolgenden Dienstag vor der Vorlesung abzugeben.

Blatt 1, 18.10.2011
Blatt 2, 25.10.2011   (NFAaufg.hs)
Blatt 3, 1.11.2011  
-NFA.hs (Aufgabe 3.1)
-Alex Beispiel aus der Übung: alexstrings.x
-While-Beispielprogramm (Aufgabe 3.2)
Blatt 4, 08.11.2011
Blatt 5, 15.11.2011  
-WhilescanPart.x (Aufgabe 5.2): exportiert AlexPosn
-ProgTypePart.hs (Aufgabe 5.2)
-Wtest2.txt (Aufgabe 5.2)
Blatt 6, 22.11.2011  
-Whilescan.x (Aufgabe 6.1)
-ProgType.hs (Aufgabe 6.1)
-WhileParsecPart.hs (Aufgabe 6.1)
-Wtest3.txt (Aufgabe 6.1)
Blatt 7, 29.11.2011
Blatt 8, 13.12.2011  
-8_3.y (Aufgabe 8.3)
Blatt 9, 10.01.2012  
Blatt 10, 17.01.2012  
Zur 10.1: -Scanner: Whilescan.x
-Parser: WhileParsec.hs
-Syntaxbaum: ProgType.hs
-MA-Maschine: Machine.hs
-Testprogramm: Wtest4.txt
Blatt 11, 24.01.2012  
Blatt 12, 31.01.2012  


Links: Programmiersprache Haskell: (Linux: /app/lang/functional/bin, Windows: M:\2010WS\Loogen\ghc-6.12.3 )

Werkzeuge: Compiler-Entwicklung mit Haskell Compiler-Dinosaurier (Vorbilder für Alex und Happy)

Vorlesungsunterlagen:
Skript: Das Skript zur Vorlesung kann in der Dienstag-Vorlesung der zweiten Vorlesungswoche oder danach im Informatik-Sekretariat auf D5 für 5 EUR erworben werden.
Kapitel 1 steht vorab zur Verfügung.

Literatur:
  • A. Aho, R. Sethi, J. Ullman: Compilers - Principles, Techniques, and Tools Addison-Wesley 1986
  • R. Wilhelm, D. Maurer: Übersetzerbau: Theorie, Konstruktion, Generierung, Springer Verlag 1992.
  • A. Appel: Modern Compiler Implementation in ML/Java/C++, Addison-Wesley 1998.
  • Bauer/Höllerer: Übersetzung objektorientierter Programmiersprachen, Springer Verlag 1998.
  • W. Waite, G. Goos: Compiler construction Springer 1984
  • Watt/Brown: Programming Language Processors in Java, Prentice Hall 2000


Inhalt: Compiler übersetzen Programme aus höheren Programmiersprachen in ausführbaren Maschinencode. In der Vorlesung sollen Konzepte und Methoden, die für die verschiedenen Phasen von Compilern entwickelt wurden, vor- und gegenübergestellt werden. Im einzelnen werden folgende Themen behandelt:
  1. Lexikalische Analyse
  2. Syntaktische Analyse
  3. Semantische Analyse
  4. Zwischencode-Erzeugung
  5. Code-Optimierung
  6. Übersetzung Objekt-orientierter Sprachen
In den begleitenden Übungen werden Compilerteile in Haskell programmiert.


Zuletzt geändert: Wednesday, 18-Jan-2012 14:55:45 CET