Logische Programmierung
(mit der Programmiersprache Prolog)
Eine Einführung in grundlegende Möglichkeiten
An einfachen Beispielen sollen die Grundlagen des logischen Programmierens demonstriert werden. Als Grundlage werden die Beispiele herangezogen, die ich auf dem Workshop bzw. dem Praktikum Prolog im Rahmen der MNU-IPTS-Arbeitstagung für Mathematik, Physik, Biologie, Chemie und Informatik am 30. September 1992 präsentiert habe. Dort wurde die Public-Domain-Software A.D.A.-Prolog verwendet, die ohne Weiteres nicht mehr erhältlich ist.
Der oben genannte Prologkurs wird unten in einer leicht bearbeiteten Form für das ADA-Prolog zur Verfügung gestellt. Die Beispielprogramme wurden bisher in der ursprünglichen Form beibehalten. Die Anpassung an aktuelle Prolog-Dialekte sei den Leserinnen und Lesern überlassen. Über weitere Anregungen dazu freue ich mich.
In der Zwischenzeit haben sich zahlreiche neue Prolog-Dialekte und -Bedienoberflächen für verschiedene Betriebssysteme herausgebildet. Eine übersichtliche Bedienoberfläche bietet das SWI-Prolog:
Prologkurs unter A.D.A.-Prolog
Inhaltsverzeichnis
1. Installieren
2. Grundlagen (Fakten, Regeln, Anfragen)
3. Syntax und Semantik von Prolog-Programmen
3.1 Der Aufbau von Prolog-Programmen
3.2 Wie Anfragen beantwortet werden
3.3 Das Problem der Endlosschleifen
4. Listenverarbeitung
4.1 Darstellung von Listen in Prolog
4.2.1 Operationen auf Listen (1)
4.2.2 Operationen auf Listen (2)
4.3 Anwendung: Acht-Damen-Problem
4.3.1 Acht-Damen-Problem (1)
4.3.2 Acht-Damen-Problem (2)
4.3.3 Acht-Damen-Problem (3)
4.3.4 Acht-Damen-Problem (4)
4.4 Anwendung: Das Springer-Problem
4.4.1 Das Springer-Problem (1)
4.4.2 Das Springer-Problem (2)
4.4.3 Das Springer-Problem (3)
4.4.4 Das Springer-Problem (4)
4.4.5 Das Springer-Problem (5)
4.5 Sortierverfahren
4.5.1 Bubblesort
4.5.2 Insertionsort
4.5.3 Sortieren durch Zerlegen
4.5.4 Sortieren durch Mischen (1)
4.5.5 Sortieren durch Mischen (2)
4.5.6 Daten als Programme
4.6 Logeleien, Knobeleien, Rätsel, Denksport
4.6.1 Ein erstes Problem (Logelei)
4.6.2 Ein zweites Problem (Kryptoarithmetik)
4.6.3 Die Türme von Hanoi