Tipus de programació que implica la descripció d’un problema sense especificar els passos necessaris per a arribar a una solució.
El que s’indica al programa són les propietats que ha de tenir el resultat i no la manera d’assolir-lo. S'utilitza en la gestió de bases de dades relacionals i en plantejaments d’intel·ligència artificial.