Programowanie deklaratywne — rodzina paradygmatów programowania, które nie są z natury imperatywne. W przeciwieństwie do programów napisanych imperatywnie, programista opisuje warunki, jakie musi spełniać końcowe rozwiązanie (co chcemy osiągnąć), a nie szczegółową sekwencję kroków, które do niego prowadzą (jak to zrobić). Programowanie deklaratywne często traktuje programy jako pewne hipotezy wyrażone w logice formalnej, a wykonywanie obliczeń jako ich dowodzenie. Programowanie deklaratywne jest szczególnym przedmiotem zainteresowania naukowców, gdyż dzięki minimalizacji lub eliminacji skutków ubocznych może znacząco uprościć tworzenie programów współbieżnych. Paradygmat programowania deklaratywnego obejmuje szeroką gamę języków programowania i bardziej szczegółowych paradygmatów podrzędnych.

Definicja Peter Van Roy oraz Serif Haridi podają następujące warunki, jakie musi spełniać program, aby mógł być uznany za deklaratywny:

niezależny — wynik końcowy nie zależy od żadnego zewnętrznego stanu, bezstanowy — nie posiada stanu wewnętrznego, który jest zachowywany między wywołaniami, deterministyczny — dla takich samych argumentów wejściowych zawsze daje ten sam wynik.