Logisches Programmieren

Semester: WI/4 
Umfang (SWS): 2 + 2 

Inhalt:

1. Einführung 

prozedurale/nichtprozedurale Programmiersprachen, logisches Programmieren, Anwendungsgebiete

2. Grundlegende Struktur eines Prolog-Programmes 

Prädikate, Fakten, Regeln

3. Prädikatenlogik 

Aussagen- und Prädikatenlogik, Horn-Klauseln, Resolutionsprinzip 

4. Abarbeitung von Prolog-Programmen 

Unifikation, Backtracking, Resolution

5. Rekursion 

Rekursion vs. Iteration, tail recursion (elimination), rekursive Struktur einer Liste, Operationen auf Listen

6. Logische Programme mit Randbedingungen (Constraint Logic Programming) 

Optimierungsprobleme: Beispiele

7. Analyse natürlicher Sätze 

Definite Clause Grammar, unifikationsbasierte Grammatiktheorien, ein einfacher Parser

8. Metaprogrammierung und Expertensysteme 

ein einfacher Metainterpreter für Expertensysteme: Erzeugung eines Beweisbaums (Trace-Funktion), Programmierung einer Erklärungskomponente