Deklarativní programování je paradigma programovacího jazyka, které je založeno na logice a zaměřuje se spíše na to, čeho by měl program dosáhnout, než na podrobný popis toho, jak by toho mělo být dosaženo. To přímo kontrastuje s imperativním programováním, které velmi podrobně popisuje každý krok programovacího příkazu nebo funkce. Deklarativní programovací jazyk bude mít několik základních pokynů založených na logice, aby program mohl fungovat, ale nedává konkrétní příkazy pro každý krok. Místo toho obdrží pokyny k tomu, co je třeba provést (například konečný výsledek části kódu), a program provede logický postup k dokončení tohoto úkolu.
Deklarativní programování patří k jazykům specifickým pro doménu (DSL), nikoli k univerzálním. Jazyky specifické pro doménu se vztahují pouze na jednu konkrétní doménu: HTML je například DSL; vztahuje se pouze na HTML kód pro webové stránky. SQL (Structured Query Language, pro správu databáze) je další. To umožňuje deklarativním programům logicky dokončit úkol - protože program se vztahuje na jednu konkrétní doménu, nemusí být zvlášť flexibilní nebo měnitelný.
Deklarativní programování vs. imperativní programování
Imperativní programování platí pro jazyky jako Java a C, které vyžadují podrobné pokyny pro každou část kódu. Aby se něco změnilo, musí to být nějakým způsobem naprogramováno. To umožňuje vývojářům provádět v případě potřeby změny v programu. Deklarativní programování není tak flexibilní.
Deklarativní programování je však čitelnější a je méně přeplněné. Pro vývojáře může být obtížné pochopit, protože jazyk nevysvětluje, jak byl proces dokončen, ale je to užitečné paradigma pro programy, které patří do jedné konkrétní domény, která má konkrétní logiku.