Dans la programmation classique ou procédurale, on indique plus que le quoi,.(exemple Prolog).
Avec le concept de programmation déclarative, au lieu d'indiquer pas à pas à la machine les opérations à effectuer (comme en programmation procédurale) ou les éléments à rechercher (comme en programmation non-procédurale) on va plutot lui décrire les propriétés des informations qu'elle va manipuler ainsi que les propriétés des résultats attendus.
A partir de cette description la machine va tenter de constituer tous les objets (groupes d'informations) satisfaisant les propriétés énoncées. Pour celà, elle va faire une exploration systématique de tous l'espace des solutions et ne retenir que celle qui sont compatibles avec les les propriétés.
Ces propriétés sont énoncées sous la forme d'implications logiques entre des objets représentant des relations Ce formalisme permettra de représenter aussi bien les données (relations élémentaires) que les propriétés.
Les mécanismes de recherche des objets satisfaisant les propriétés données sont complétement transparent à l'utilisateur et sont entièrement pris en charge par l'interpréteur du langage.
On comprend mieux maintenant le concept de programmation déclarative: on "déclare" les propriétés des objets qui nous intéressent, en laissant le soin à la machine de les retrouver.
Cette approche rejoint certains concept d'intelligence artificielle dans lesquels nous disposons de faits élémentaires (relations élémentaires dans le domaine étudié) sur lesquels on applique un certain nombre de déductions (implications logiques) pour obtenir une conclusion.