Datum | Nachricht |
---|---|
19.04.2010 | Die Ergebnisse der studentischen Evaluation der Vorlesung für das WS 2009/2010 sind hier verfügbar. |
26.03.2010 | Klausureinsicht |
04.02.2010 | Informationen zur Klausur jetzt online. |
25.01.2010 | Der Compilerbau-Pentacast des Chaos Computer Club Dresden. |
23.11.2009 | BISON-Demo zur Syntaktischen Analyse online. |
10.11.2009 | FLEX-Demo zur Lexikalischen Analyse online. |
07.10.2009 | Raumänderungen: Beide Vorlesungstermine finden im Raum INF/E009 statt! |
23.09.2009 | Vorlesung "Compilerbau" startet am Dienstag, 13.10.2009 um 13:00 in BAR/I-53. |
Wichtig: Diese Vorlesung wird nicht in Dortmund angeboten, sondern an der TU Dresden!
Dienstags, 13.00 - 14.30
INF/E009
Dienstags, 14.50 - 16.20
INF/E009
Alle zwei Wochen an folgenden Tagen:
Dr. Heiko Falk
Lehrstuhl Informatik 12
Entwurfsautomatisierung für Eingebettete Systeme
Technische Universität Dortmund
Compiler spielen in der Informatik eine zentrale Rolle. Zum einen ist in den vergangenen Jahrzehnten zu beobachten gewesen, dass das Abstraktionsniveau, auf dem Computer programmiert werden, kontinuierlich angestiegen ist: wurden Rechner zunächst auf Maschinen- oder Assemblercode-Niveau programmiert, setzten sich anschliessend interpretierte Sprachen wie z.B. Basic durch. Diese wurden letztlich von übersetzten Sprachen wie z.B. C oder Pascal abgelöst. Heute wird im wesentlichen objektorientiert in C++ oder Java programmiert.
Zum anderen ist in den vergangenen Jahrzehnten zu beobachten gewesen, dass programmierbare Prozessoren bedeutend komplexer, mächtiger und auf Spezialzwecke ausgerichtet wurden. Beispiele dieser Entwicklung sind Befehlssatzerweiterungen für Gleitkommazahlen oder zur Beschleunigung von Multimedia-Anwendungen (bspw. Intel MMX).
Diese beiden Trends des steigenden Abstraktionsniveaus von Programmiersprachen und der zunehmenden Spezialisierung von Prozessoren divergieren. D.h., zwischen den Programmiersprachen, die heutzutage eingesetzt werden, und den Befehlssätzen moderner Prozessoren klafft eine semantische Lücke, welche stetig wächst. Diese Lücke ist durch Compiler zu schließen, die die Programmiersprache in Maschinencode übersetzen sollen. Zudem soll ein Compiler nicht nur irgend eine funktionierende Übersetzung vornehmen, sondern der erzeugte Maschinencode soll auch noch sehr effizient sein. Dies bedeutet, dass die Aufgaben eines Compilers einerseits aus der Code-Übersetzung und andererseits aus der Code-Optimierung bestehen.
Diese Vorlesung führt auf praxisnahe und algorithmische Weise in sämtliche Teilbereiche des Compilerbaus ein. Im Gegensatz zu klassischen Vorlesungen über Compilerbau wird das Schwergewicht hier nicht nur auf lexikalische, syntaktische und semantische Analyse gelegt. Vielmehr werden forschungsnahe Fragestellungen aus den Bereichen der Instruktionsauswahl, Register-Allokation und Code-Optimierung aufgegriffen. Die Vorlesung soll
Das Schwergewicht der Veranstaltung liegt klar auf dem letzten obigen Punkt. Da Compiler oft verschiedene Zielfunktionen optimieren sollen (z.B. durchschnittliche oder worst-case Laufzeit, Energieverbrauch, Code-Größe), soll der Einfluß von Optimierungstechniken auf diese verschiedenen Zielfunktionen deutlich gemacht werden.
Für Nicht-ISTler: per Email an den Veranstalter unter Angabe von Vorname, Nachname, Matrikelnummer und Studiengang.
Wichtig: Wenn Sie die in der Klausur "Compilerbau" erworbene Note als Teilprüfungsleistung in eine Komplexprüfung einbringen möchten, so müssen Sie dies unbedingt selbständig vor der Klausur "Compilerbau" mit dem Hauptprüfer Ihrer Komplexprüfung klären!