Programowanie logiczne

Programowanie logiczne (nazywane także programowaniem w logice lub programowaniem w języku logiki) – metoda programowania, będąca odmianą programowania deklaratywnego, w której program podawany jest jako pewien zestaw zależności, a obliczenia są dowodem pewnego twierdzenia w oparciu o te zależności.

Na przykład chcemy stwierdzić, czy w danym grafie skierowanym istnieje ścieżka z pewnego punktu do pewnego innego punktu. Krawędzie zapisane są relacją edge(Skąd, Dokąd). Nasz program wyglądałby w Prologu tak:

path(A,B) :- walk(A,B,[]).

walk(A,B,V) :-
  edge(A,X),
  not(member(X,V)),
  (B = X; walk(X,B,[A|V])).

Co czytamy następująco:

  • istnieje ścieżka z X do Y, jeśli można przejść z A do B
  • istnieje ścieżka z X do Y, jeśli dla jakiegoś Z istnieje krawędź z X do Z, oraz ścieżka z Z do Y

Programowanie logiczne umożliwia łatwy zapis wielu algorytmów, a programy logiczne w przeciwieństwie do imperatywnych łatwo też wykonywać równolegle.