Nächste Seite:
Einleitung
Compilerbau
Vorlesung
Wintersemester 2008
Johannes Waldmann, HTWK Leipzig
Einleitung
.
Beispiel
Inhalt
Inhalt (Einzelheiten)
Sprachverarbeitung
Compiler und andere Werkzeuge
Phasen eines Compilers
Methoden und Modelle
Anwendungen von Techniken des Compilerbaus
Literatur
Organisation
Hausaufgaben
Algebraische Datentypen
Entwurfsmuster Compositum
Algebraischer Datentyp
Termalgebra
Termalgebra (mehrsortig)
Beispiele f. Algebr. Datentypen
Funktionen auf Alg. Datentypen
Funktionen
Blöcke (let)
Layout-Regeln
Beispielcode (Übungen
Interpretation von Programmen
Abstrakte Syntax (Ausdrücke)
Abstrakte Syntax (Anweisungen)
Semantik (Anweisungen)
Semantik (mit Maybe)
Typklassen, Monaden
Typklassen, Beispiel: Show
Vergleich Typklassen/Interfaces
Generische Instanzen
Beziehungen zwischen Klassen
Konstruktorklassen (Functor)
Gesetze für Funktoren (I)
Gesetze für Funktoren (II)
Die Konstruktorklasse Monad
Anwendung der Maybe-Monade
Do-Notation für Monaden
List als Monade
Monaden mit Null
Aufgaben zur List-Monade
Gesetze für Monaden (I)
Gesetze für Monaden (II)
Funktoren und Monaden
Die IO-Monade
Die Zustands-Monade
Kombinator-Parser
Parser als Monade
Parser als Monade (Implementierung)
Elementare Parser (I)
Elementare Parser (II)
Kombinatoren für Parser (I)
Kombinator-Parser und Grammatiken
Eindeutigkeit/Determinismus
Operator-Präzendenz-Parser
Op-P-P (Implementierung)
Robuste Parser-Bibliotheken
Linq
Linq: Beispiel
Linq und Monaden: Notation
Linq und Monaden: Semantik
Linq und Haskell: gut zu wissen
Projekte Compilerbau (autotool)
Projekte Compilerbau (Refactoring)
Semantik
Interpreter
Umgebungen
Unterprogramme
Lokale Funktionen
Implementierung der statischen Bindung
Lokale Funktionen in C#
Lokale Funktionen in Java
Currying
Rekursive Bindungen
Lambda-Kalkül
Motivation
Der Lambda-Kalkül
Lambda-Terme
verkürzte Notation
Mehrstellige Funktionen
Ableitungen (Ansatz)
Das falsche Binden von Variablen
Gebundene Umbenennungen
Eigenschaften der Reduktion
Rechnen mit simulierten Zahlen
Erweiterungen, Anwendungen
Lambda-Kalkül und Computeralgebra
Typen
Grundlagen
Deklaration und Inferenz
Polymorphie
Inferenz Polymorpher Typen
Unifikation--Begriffe
Unifikation--Definition
Unifikation--Algorithmus
Beispiel zur Polymorphie (I)
Beispiel zur Polymorphie (II)
System F
Rang-(2/N)-Polymorphie in GHC
Eigenschaften polym. Typsyst.
Unifikation höherer Ordnung
Typen und Terme
Kompilation für OO-Sprachen
Plan
Daten-Layout
Laufzeit-Polymorphie
Typconstraints (Haskell)
Vergleich Constraints/Interfaces
(Co-)Varianz von Typparametern
Über dieses Dokument ...
2009-11-20