Home

Logikprogrammierung

Logikprogrammierung ist ein Paradigma der Programmierung, das Programme als Mengen von Prädikaten und Regeln definiert, aus denen neue Fakten logisch abgeleitet werden. Typische Programme bestehen aus Fakten, Regeln und Abfragen. Die Ausführung besteht darin, eine gegebene Abfrage aus dem Wissensbestand abzuleiten, indem logische Inferenz herangezogen und Variablen durch Unifikation gebunden werden.

Die Wurzeln liegen in der Entwicklung von Prolog in den 1970er-Jahren an der Universität Marseille durch Colmerauer

Kernkonzepte umfassen Fakten, Regeln und Abfragen, sowie Klauseln, Unifikation, Backtracking und logische Inferenz. In Prolog wird

Wichtige Sprachen und Systeme sind Prolog (SWI-Prolog, GNU Prolog, YAP), Mercury, Datalog-Implementierungen und ASP-Sprachen wie clingo.

Zu den Vorteilen zählen deklarative Spezifikation, klare Trennung von Logik und Steuerfluss sowie leistungsfähige Inferenzwerkzeuge. Nachteile

und
Roussel.
Prolog
basiert
auf
Horn-Klauseln
und
verwendet
Unifikation,
Backtracking
und
SLD-Resolution,
um
Abfragen
zu
beweisen.
Datalog
ist
eine
eingeschränkte,
rein
datalogische
Teilmenge;
Answer
Set
Programming
erweitert
dies
um
nichtmonotone
Begründung.
oft
Negation
als
Failure
verwendet;
Datalog
arbeitet
mit
einer
geschlossenen
Welt
und
rekursiven
Abfragen.
ASP-Ansätze
nutzen
nichtmonotone
Logik
und
liefern
Modelle
(Answer
Sets)
statt
einzelner
Beweise.
Typische
Entwicklungsumgebungen
unterstützen
deklarative
Programmierung,
Debugging
und
integrierte
Inferenz.
Anwendungen
reichen
von
Künstlicher
Intelligenz
über
Wissensrepräsentation
und
Planen
bis
zu
regelbasierten
Datenbankabfragen.
sind
Performance-
und
Skalierbarkeitsprobleme,
Lernkurve
sowie
Einschränkungen
durch
Nichtmonotonie
und
teils
schwierige
Integration
in
imperative
Umgebungen.