Proglang

Spezialvorlesung Compilerbau, WS2006/2007

Allgemeines

Vorlesung Übung
Durchführung Prof. Dr. Peter Thiemann Stefan Wehr
E-mail siehe pers. Homepage siehe pers. Homepage
Zeit Mo 16-18, Mi 16-17 Mi 17-18
Ort SR 00-010/14 Geb. 101 SR 00-010/14 Geb. 101

Die Auswertung der Evaluation ist verfügbar.

Achtung: Vorlesung und Übung fallen in der Woche vom 29.1.2007 bis zum 2.2.2007 aus. Als Ersatz geht die Vorlesung am Mittwoch ab sofort bis 18 Uhr; die Übung findet dann im Anschluss daran statt.

Vorlesung

Übungen

Material

Inhalt

Die zentrale Aufgabe des Compilerbaus ist die Entwicklung und Implementierung von Übersetzungen von höheren Programmiersprachen in Maschinenkode. Diese Aufgabe berührt viele wichtige Probleme von allgemeinem Interesse.

Da der Compilerbau eine lange Tradition hat, ist die Struktur von Compilern wohldurchdacht. Somit kann ein Compiler als Beispiel für ein gut strukturiertes Softwaresystem dienen. "Wer einen Compiler schreiben kann, kann jedes Programm schreiben."

Die Techniken des Compilerbau kommen auch an vielen anderen Stellen zum Einsatz. Zum Beispiel vereinfachen Verfahren der Syntaxanalyse das Lesen von Konfigurationsdateien und textlichen Benutzereingaben, sowie die Definition von Mini-Sprachen erheblich.

Wissen über das Speichermodell ist hilfreich bei der Fehlersuche in systemnahen Programmiersprachen (C, C++).

OCaml

Die Kodebeispiele im Skript sind in der Programmiersprache Objective Caml (OCaml) geschrieben. OCaml ist eine objekt-orientierte und funktionale Sprache mit polymorphem Typsystem, Patternmatching, sowie einem mächtigen Modulsystem. Aufgrund dieser Eigenschaften ist OCaml sehr gut geeignet zum Schreiben von Compilern.

Referenzen

  1.   Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers Principles, Techniques, and Tools. Addison-Wesley, 1986.
  2.   Andrew W. Appel. Compiling with Continuations. Cambridge University Press, 1992.
  3.   Andrew W. Appel. Modern Compiler Implementation in ML. Cambridge University Press, 1998.
  4.   Guy Cousineau and Michel Mauny. The Functional Approach to Programming. Cambridge University Press, 1998.
  5.   Christopher W. Fraser and David R. Hanson. A Retargetable C Compiler: Design and Implementation. Benjamin/Cummings, 1995.
  6.   Rene Leermakers. The Functional Treatment of Parsing. Kluwer Academic Publishers, Boston, 1993.
  7.   Xavier Leroy. The Objective Caml system release 3.02, Documentation and user's manual. INRIA, France, July 2001. From http://pauillac.inria.fr/caml.
  8.   Reinhard Wilhelm and Dieter Maurer. Übersetzerbau -- Theorie, Konstruktion, Generierung -- 2 Auflage. Lehrbuch. Springer-Verlag, Berlin, Heidelberg, 1996.