VL: Grundlagen des Compilerbaus
VL 12068 Grundlagen des Compilerbaus
Prof. Dr. R. Loogen
Mi, 16.05-18.00 Uhr, HS B der Chemie (neu!) (Lahnberge)
Do, 9.15 - 11.00 Uhr, ab 10.11.: HG 113 (Biegenstraße)
Beginn: 26.10.2005
UE 12069
Tutor/inTerminRaumE-Mail
Michael HeidtMo, 11.15-12.45 Uhr Hörsaal IV (Ebene D4, Lahnberge) michael.heidt at gmx.de
Jost Berthold Mo, 11.30-13.00 UhrHörsaal I (Ebene D3, Lahnberge) berthold at mathematik.uni-marburg.de
Valeri Kuznecov Di, 11.15-12.45 UhrHörsaal I (Ebene D3, Lahnberge) kuznecov at mathematik.uni-marburg.de
Beginn: 31.10.2005 bzw. 1.11.2005
Fachgebiet Klassifikation Semester Fortsetzung Skript
Informatik Hauptstudium, theor. Inform. und prakt. Inform. >=3 - Teil I erhältlich im Informatik-Sekretariat auf D5!

Voraussetzungen: Grundvorlesung Theoretische Informatik (Automatentheorie und Formale Sprachen), Grundkenntnisse in funktionaler Programmierung mit Haskell
Scheinkriterien: Voraussetzungen für einen unbenoteten Schein:
  1. aktive Teilnahme an den Übungen
  2. erfolgreiche Bearbeitung von mindestens 50 % der Übungsaufgaben
  3. Vorbereitung und Präsentation von mindestens einer mündlichen Übungsaufgabe
Für einen benoteten Schein muss zusätzlich eine Klausur bestanden werden.


Klausurtermin: Donnerstag, 16.02.2006, 9.15-11.00 Uhr, HG 113 (Biegenstraße)
Klausurergebnis: Aushang auf Ebene D5 gegenüber dem Informatik-Sekretariat
Notenskala:
| >= 64 | >= 60 | >= 57 || >= 54 | >= 50 | >= 47 || >= 44 | >= 40 | >= 37 || >= 34 | >= 30 |  < 30 | 
|-------|-------|-------||-------|-------|-------||-------|-------|-------||-------|---------------|
|  0,7  |  1,0  |  1,3  ||  1,7  |  2,0  |  2,3  ||  2,7  |  3,0  |  3,3  ||  3,7  |  4,0  |  5,0  | 
    
Klausureinsicht und -rückgabe: Mittwoch, 22.02.2006, 11.00 - 12.00 Uhr, SR V (Lahnberge)
Nachholklausur: Freitag, 07.04.2006, 9.00 - 11.00 Uhr, HG 113, Hörsaalgebäude Biegenstraße

Übungsblätter: ...erscheinen donnerstags und bestehen aus mündlichen und schriftlichen Aufgaben.
Mündliche Aufgaben sind zum darauffolgenden Tutorium zur Präsentation vorzubereiten.
Schriftliche Aufgaben sind am darauffolgenden Donnerstag abzugeben.

Blatt 1, 27.10.2005 (Postscript, PDF)
Blatt 2, 03.11.2005 (Postscript, PDF)   Typdefinition und Anzeigefunktion für NFAs: NFA.hs
Blatt 3, 10.11.2005 (Postscript, PDF)
Blatt 4, 17.11.2005 (Postscript, PDF)
Blatt 5, 24.11.2005 (Postscript, PDF)
Blatt 6, 01.12.2005 (Postscript, PDF)
 Datentypen für Syntaxbaum: ProgType.hs,  While-Scanner: ScanWhile.hs
 Testprogramme (mit Fehlern): Wtest,  Werror
 Parser für arithmetische Ausdrücke, mit abstraktem Syntaxbaum: AETree.hs
Blatt 7, 08.12.2005 (Postscript, PDF)
Blatt 8, 15.12.2005 (Postscript, PDF) verlängerte Bearbeitungszeit
    XML-Scanner: XMLSX.x, korrigierte Version (Attributerkennung) XMLSX_.x
    Testeingaben: test1.xml,  test2.xml
Blatt 9, 12.01.2006 (Postscript, PDF)
Blatt 10, 19.01.2006 (Postscript, PDF)
 MA-Implementierung: Machine.hs  While-Parser: WhileParse.hs
Blatt 11, 26.01.2006 (Postscript, PDF)
Blatt 12, 02.02.2006 (Postscript, PDF) letztes Übungsblatt
Aufgabe 12.4 / Scriptkorrektur S.113
Wiederholungsblatt, 08.02.2006 (Postscript, PDF)
Aufgaben können im Tutorium präsentiert werden


Links: Programmiersprache Haskell: (Linux: /app/lang/functional/bin, Windows: M:\2005WS\Loogen\ )


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

Vorlesungsunterlagen:
Skript (2. Teil): Übersetzung objekt-orientierter Sprachen

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. Übersetzung Objekt-orientierter Sprachen
  6. Code-Optimierung
In den begleitenden Übungen werden Compilerteile in Haskell programmiert.


Zuletzt geändert: Wednesday, 31-May-2006 15:55:23 CEST