Логическое программирование - парадигма программирования, а также раздел дискретной математики, изучающий методы и возможности этой парадигмы, основанные на выводе новых фактов из данных фактов согласно заданным логическими правилами. Логическое программирование основано на теории математической логики. Самой известной языке логического программирования является Prolog, являющийся по своей сути универсальной машиной вывода, работающей в предположении замкнутости системы фактов.
Первым языком логического программирования был язык Planner, в которой была заложена возможность автоматического вывода результата из данных и заданных правил перебора вариантов (совокупность которых называлась планом). Planner использовался для того, чтобы снизить требования к вычислительным ресурсам (с помощью метода backtracking) и обеспечить возможность вывода фактов, без активного использования стека. Затем был разработан язык Prolog, которая не требовала плана перебора вариантов и была, в этом смысле, упрощением языка Planner.
От языка Planner также произошли логические языки программирования QA-4, Popler, Conniver, и QLISP. Языки программирования Mercury, Visual Prolog, Oz и Fril строились уже от языка Prolog. На базе языка Planner было разработано также несколько альтернативных языков логического программирования, не основанных на методе backtracking, например, Ether (см. обзор Шапиро [1989]).