Programarea logică constă în utilizarea logicii matematice pentru a scrie programe de calculator. Există limbaje de programare specializate în care utilizatorul poate introduce direct declarații logice. Probabil că cel mai cunoscut dintre aceste limbaje se numește Prolog. Alonzo Church a folosit o formă de programare logică în ceea ce astăzi este cunoscut sub numele de lambda calculus. Programarea logică a fost utilizată și în LISP.

Programele constau dintr-un set de reguli și fapte. În cele mai multe cazuri, programarea logică utilizează ceea ce se numește negație ca eșec sau negație slabă: Aceasta înseamnă că, dacă nu este posibilă derivarea unei anumite clauze p {\displaystyle p} {\displaystyle p}din fapte și reguli, sistemul va presupune că negația acesteia este adevărată.