Universitaet Koblenz-Landau
Institut für Softwaretechnik
Impressum

Vorlesung Compilerbau - Sommersemester 2010

NeuerTermin: Mi   10.15-11.45 E412
Neuer Raum   Di   16.00-17.30 E313 (Achtung nochmal geändert )
Die Vorlesung beginnt am Mittwoch den 14.4 .
Die Vorlesung ist 3 stündig mit einer 1-stündigen Übung. Alle 14 Tage findet daher statt der Vorlesung eine Übung statt


Thema der Vorlesung sind die Techniken bei einem Compiler bzw. bei anderen Programmen, um Eingaben syntaktisch zu interpretieren oder zu transformieren.

Übung zum Compilerbau

Etwa eine Woche vor jeder Übung erscheint auf dieser Seite ein Übungsblatt. Bitte lösen Sie dieses Übungsblatt vor der Übung. Eine Abgabe Ihrer Lösung ist nicht erforderlich. Am besten löst man solche Aufgaben in Lerngruppen zu 2, allenfalls 3 Personen. In der Übungsstunde wird das Übungsblatt besprochen und Lösungen vorgestellt. Diese Lösungen werden nicht veröffentlicht.

Klausur
Am Semesterende wird eine Klausur geschrieben.
Hier geht es direkt zur MeToo-Anmeldung.
Bitte melden Sie sich bis zum 13.7 an.
Wer die Klausur besteht, bekommt einen benoteten Schein. Wer die Klausur nicht besteht, erhält die Chance zu einer mündlichen Nachprüfung. Eine "Nachklasur" findet also nicht statt.
Der Termin der Klausur ist Mi. 14.7. 10.15-11.45 Uhr

Übungen Blatt1 (bis 28.4. bearbeiten)

Übungen Blatt2 (bis 4.5. bearbeiten)

Übungen Blatt3 (bis 17.5. bearbeiten)

Übungen Blatt3 Lösungen

Übungen Blatt4 (bis 1.6. bearbeiten)

YACC Dateien Hierzu: Regexp4.y Regexp5.y

Übungen Blatt5 (bis 15.6. bearbeiten)

YACC Dateien Hierzu: Uebung5a.y  Praeorder Uebung5b.y  Postorder  Uebung5in.y  Inorder

Uebung5c.y  Differenz Anzahl der Knoten

Uebung5d.y  DifferenzTiefe der UNterbäume Uebung5e.y  Anzahl der Knoten der Unterbäume

Übungen Blatt6 (In der Vorlesung behandelt) 

YACC Dateien Hierzu: LEX-Datei:Uebung6a.l  YACC-Datei:Uebung6a.y 

Übungen Blatt7 (bis 29.6. bearbeiten)

Übungen Blatt8 (bis 6.7. bearbeiten)

Übungen Blatt9 (bis 13.7. bearbeiten)

Literatur

Jeffrey D. Ullman / Monica S. Lam / Ravi Sethi / Alfred V. Aho
Compiler, Prinzipien, Techniken und Werkzeuge
Addison Wesley
ISBN: 978-3-8273-7097-6
Link zum Drachenbuch

Der Inhalt der Vorlesung wird sich sich an obigem Buch ausrichten..
Geplant sind Kapitel 1 und die Kapitel 3-9

Die  Lehrbücher zur Vorlesung finden sich in der Bibliothek im Semesterapperat Rosendahl

Links

 Compilerbau , Eine Einführung von Ulrich Helmich
Einfacher knapper Kurs zur Einführung in den Compilerbau

 www.combo.org
Seite mit Verweisen zu Techniken des Compilerbaus inbesondere:

 The Lex & Yacc Page
Verweise zu Lex, Yacc, Flex, Bison, Tools

 Link zu BISON (GNU Projekt als Variante zu YACC)

Materialien

MinGW (Flex, Bison, GCC Compiler)

Zip Datei enthält Scanner Generator Flex, Yacc Version Bison und C-Compiler System
Entpacken und in der DOS Box ins Unterverzeichnis bin gehen.

DYACC (Flex, YACC für Delphi)

Zip Datei enthält Scanner Generator DFlex, Yacc Version DYACC für Delphi

 Beschreibung zu Lex (Textdatei)
 Beschreibung von FLex (Postscript)
 Beschreibung von BISON (Postscript)


LEX-Beispiele
JAVAFloat2.l(Übung 1)
JAVAFloatInt.l

YACC-Beispiele

 Rechner3.y
 Rechner4.y
 Rechner5.y
 Rechner5.l

Code-Generierung bei Arrayzugriffen
Übersetzungsschema für Array Adressierung

Code-Generierung bei Recordtypen
Übersetzungsschema für Recordtypen

Code-Generierung bei Prozeduren
Pascal-Prozedur

C-Prozedur

Folien
 Lex-Beispiel(Folie1)
 Lex-Beispiel(Folie2)
 Lex-Beispiel(Folie3)

Vorlesungsfolien

Die Skripten zur Vorlesung können von Studierenden mit gültiger Uni-Benutzerkennung abgerufen werden (Passwort erforderlich!). Die Texte sind als Seiten in PDF-Dateien aufbereitet worden, was einen problemlosen Ausdruck ermöglichen sollte. Die Verwendung der Dokumente ist ausschließlich für Studienzwecke zugelassen, insbesondere das Kopieren der Daten auf andere Server ist untersagt.  

Die Skripten sind nicht als Ersatz der Vorlesung gedacht, sondern sollen das Mitschreiben während der Vorlesung ersetzen.

1

 Einführung

2

Lexikalische Analyse

3

Syntax-Analyse

4

Top Down Syntaxanalyse
5 Bottom-Up Syntaxanalyse

6

Parser Generator YACC

7

Syntaxgesteuerte Übersetzung

8

Zwischencode Generierung

9

Laufzeitumgebungen

10

Codegenerierung

11

Maschinenunabhängige Optimierung
12 Maschinenabhängige Optimierung
Informtionen zur Diplom-Prüfung