Deklarative Programmierung
Funktionale Programmierung
Funktionale Programmierung wurde entwickelt, um Programme durchschaubarer zu gestalten. Funktionale Programmierung verzichtet hierzu auf einige Konzepte, die in der imperativen und der hierauf basierenden objektorientierten Programierung zum Standard gehören. Als Folge ergibt sich ein Programmieransatz, der sich vom klassischen imperativen unterscheidet: Anstatt Programme (Algorithmen) zu entwickeln, die schrittweise vorschreiben, wie man zur Lösung gelangt, versucht man, das Problem mit Hilfe von Funktionen möglichst präzise zu erfassen.
Logische Programmierung
Logische Programmierung unterscheidet sich deutlich von imperativer und hierauf basierender objektorientierter Programierung. Probleme werden hier nicht mit Hilfe von Algorithmen gelöst, die schrittweise vorschreiben, wie man zur Lösung gelangt. Vielmehr versucht man, das Problem mit Hilfe von Prädikatenlogik möglichst so zu erfassen, dass ein "Logik-Interpreter" aus der Problembeschreibung die Lösung generieren kann.