Lehrstuhl Informatik II   
Sprachen und Beschreibungsstrukturen      
   Home Lehre Sommersemester 09 Vorlesungen Compilerbau login

Compilerbau

Dozent:Prof. Dr. Helmut Seidl
Ort/Zeit:Vorlesung: MI 00.13.009a / Mo 14:00-15:30 und Mi 10:15-11:45. Übung: MI 02.07.014 / Di 12:15-13:45
ModulNummer:IN2044
Beschreibung:    

Die mündlichen Nachprüfungen finden am Donnerstag, den 15. Oktober statt!

  • Anmeldung zur Prüfung über TUMonline
  • Terminvergabe via Aushang am Lehrstuhlssekretariat

Inhalt:

Ein Compiler ist ein wesentlicher Bestandteil der Systemsoftware, dessen Aufgabe darin besteht, Programme einer höheren Programmiersprache - etwa C oder Java - in Folgen von Maschinenbefehlen eines realen Rechners zu übersetzen. Compiler sind relativ komplexe Programme; bei ihrer Konstruktion finden die Ideen und Methoden aus vielen Bereichen ihre Verwendung. Die ersten beiden Phasen etwa, die lexikalische bzw. syntaktische Analyse des Eingabeprogramms sind eine beliebte Spielwiese für Verfahren aus dem Bereich der formalen Sprachen, später während der Codeerzeugung finden bei der Registerverteilung etwa approximative Methoden zur Graphfärbung Verwendung.

Die Vorlesung gliedert sich dabei in folgende Abschnitte:
Nach einer kurzen Übersicht ber die einzelnen Komponenten eines Compilers und deren Aufgaben wenden wir uns den Techniken zu, wie eine Übersetzung realisiert werden kann. Insbesondere behandeln wir die klassischen Gebiete des Compilerbaus, die Methoden zur lexikalischen und syntaktischen Analyse von Programmen.
Anschließend betrachten wir weniger standardisierte Teilaufgaben eines Compilers, wie z.B. Typüberprüfung von Programmen und Typinferenz im Falle, dass die Programmiersprache auch Variablendeklarationen ohne Typangabe zulässt.

Literatur:

  • Aho, Sethi, Ullmann: Compilers. Principles, Techniques and Tools. Addison-Wesley, 1985
  • Wilhelm, Maurer: Übersetzerbau. Theorie, Konstruktion, Generierung. Springer-Lehrbuch, 1992
  • Wilhelm, Seidl: Übersetzerbau: Virtuelle Maschinen. Springer, 2007
  • Steven S. Muchnick: Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997

SCHEINVERGABE / PRÜFUNG / KLAUSUR

Kriterium zur Vergabe eines unbenoteten Scheins:

  • mind. 50% der Punkte der Übungsaufgaben
  • zweimal vorrechnen

Kriterium zur Vergabe eines benoteten Scheins:

  • Bestehen einer mündl. Prüfung oder Klausur (Bachelor/Master)
  • Bonus von 0.3 auf Ergebnis einer bestandenen Prüfung für erfolgreiche Bearbeitung der Aufgaben.

Klausur:

  • Datum: Montag 27. Juli 2009 (voraussichtlich)
  • Uhrzeit:
  • Räume:
  • Anmeldung: TUMonline

Aufzeichnungen:

Die aufgezeichneten Vorlesungen befinden sich im TeleTeachingTool-Archiv.

Tools:

Visualisierungstool für Abstrakten Maschinen VAM

Skript:

Skript 2007 PDF
Skript 2006 PDF


Übung:

Leitung: Vesal Vojdani

 

Übungsblätter:

  1. PDF (rcma.pdf)
  2. PDF (test.c)
  3. PDF
  4. PDF (paper)
  5. PDF
  6. PDF (RandomParser, sol.g)
  7. PDF
  8. PDF
  9. PDF
  10. PDF

Unofficial solutions to some exercises are available here.

 

Zusatzmaterialien:

  • Überblick (PDF) der CMa-Übersetzungsfunktionen
  • Der JFlex Scanner-Generator
  • Das CCKCompiler-Construction-Kit
  • Der CUP Parser-Generator


angehängte Dateien:

    c1.pdf
    c2.pdf
    c3.pdf
    c4.pdf
    c5.pdf
    c6.pdf
    c7.pdf
    c8.pdf
    c9.pdf
    c10.pdf
    c11.pdf
    c12.pdf
    c13.pdf
    c14.pdf
    c15.pdf
    c16.pdf
    c17.pdf
    c18.pdf
    c19.pdf
    c20.pdf
    c21.pdf
    c22.pdf

TUM - Lehrstuhl Informatik II (Sprachen und Beschreibungsstrukturen) Thanks: Tango and TinyMCE     Generationszeit: 12 ms