A programozási nyelveket alapvetően két csoportba sorolhatjuk. A legtöbb nyelv az ún. imperatív nyelvek családjába tartozik, jellemzőjük, hogy felszólító dban, parancsok, utasítások segítségével írjuk le az elvégzendő feladatot, ebbe a csoportba sorolható az Assembly, Pascal, C, C++, Java, Perl, PHP, stb... nyelvek. Ezzel szemben a deklaratív nyelvekben egyenleteket, állításokat írunk le, alapvetően kijelentő módban programozunk. Deklaratív nyelv a LISP, Ericsson, stb...
A Prolog (programmation en Logique) a deklaratív nyelvek, ezen belül a logikai programnyelvek családjába tartozik. A deklaratív nyelvek nem utasításokból, hanem függvénykapcsolatokból (funkcionális nyelvek) illetve relációkból (logikai nyelvek) épülnek fel; alapgondolatuk, hogy a programozó csak azt mondja meg, mit kell csinálni, a megoldás módját a program maga keresi meg. Jellegzetességük a matematikai változófogalom használata: egy változó a program futása során nem vehet fel különböző értékeket. A nyelvet 1972 körül készítette Alain Colmerauer, Philippe Roussel és Robert Kowalski, alternatívaként az amerikai LISP-nyelvekre. Több, a modern Prologban megtalálható elem ötlete az ötödik generációs számítógépek kernelének fejlesztéséből származik.