Logisches Programmieren WS 94/95
Vorlesung gehalten im Wintersemester 1994/95
von Prof. Gert Smolka, Universität des Saarlandes, FB 14
Material
Beschreibung der Vorlesung
Die Vorlesung wird sich mit grundlegenden Aspekten problemnaher
Programmiersprachen befassen. Im Mittelpunkt steht dabei Oz, eine
neuartige am DFKI entwickelte Programmiersprache, die Konzepte aus
funktionalen, logischen, objektorientierten und nebenläufigen Sprachen
in einem einheitlichen Berechnungsmodell vereinigt. Wir werden uns
mit Programmiertechniken, konkreten Programmiersprachen, abstrakten
Berechnungsmodellen, formalen Beschreibungstechniken sowie
Implementierungsmodellen befassen. Programmierübungen werden mit dem
interaktiven Oz System durchgeführt.
Stichworte zum Inhalt
Interaktives Programmieren; Bäume als Datenstrukturen, Beschreibung
von Werten durch Constraints, Rechnen mit partieller Information,
nebenläufiges Konditional, zeitgesteuerte Ereignisse, prozedurale
Abstraktion, Strikte und nichtstrikte Funktionen, Daten als
Funktionen, Rekursion als Selbstanwendung.
Berechnungsmodelle; Gamma-Kalkül, abstrakte Syntax, Variablenbinder,
Substitution, strukturelle Kongruenz, Kontexte und
Reduktion. Pi-Kalkül. Lambda-Kalküll.
Nebenläufiger Zustand und Zellen; Methoden, Objekte und Vererbung;
Kommunikation, Synchronisation und Verklemmung; Programmieren
graphisher Benutzerschnittstellen mit Oz und Tcl/Tk. Nebenläufige
Simulationen.
Suchprobleme; Suche und Constraints; deklarative Semantik; lokale
Berechnungsrä ume und Abstraktion von Alternativen; endliche Bereiche
und virtuelle Constraints; Branch-and-Bound Suche,
Heuristiken. Constraint-Grammatiken für Analyse und Generierung
natürlich sprachlicher Sätze. SLD-Resolution und Prolog.
Formale Definition rationaler Bäume. Unifikation, Simplifikation und
relative Simplifikation. Effiziente Implementierung mittels
abstrakter Maschine. Vollständige Axiomatisierung und
Unentscheidbarkeitsergebnisse.
Literatur
Als
Script
dienten Originalarbeiten, die
in der Vorlesung verteilt wurden.
Teilgebiet
Hauptstudium; praktische Informatik mit theoretischen Grundlagen;
Vertiefungsvorlesung im Bereich Programmiersprachen und Logik.
Vorkenntnisse
Vordiplom; etwas Logik und/oder Semantik ist hilfreich.
Zurück zu "Unterlagen..."
Martin Henz