Programmation logique

Définition, exemples et bonnes pratiques

À retenir

  • On décrit le quoi (le problème) plutôt que le comment (la solution).
  • Repose sur un moteur d'inférence qui « réfléchit » pour nous.
  • C'est le fondement des langages dits déclaratifs.

La programmation logique est une manière de coder où l'on ne donne pas d'ordres précis à l'ordinateur, mais où l'on lui décrit des faits et des règles. C'est comme si vous donniez à un détective une liste d'indices et les lois de la logique : au lieu de lui dire comment chercher, vous lui demandez de trouver la solution à partir des informations fournies.

Étymologie

Le terme vient de l'association de la logique mathématique (l'étude du raisonnement) et de la programmation. Il est apparu dans les années 1970, notamment avec la création du langage Prolog (acronyme de PROgrammation en LOGique) par Alain Colmerauer et Robert Kowalski.

Exemples d'usage

  • Généalogie : On définit que Jean est le père de Marc (fait) et que le père du père est le grand-père (règle). L'ordinateur peut alors déduire tout seul qui est le grand-père de qui.
  • Systèmes experts : Un logiciel médical à qui on donne des symptômes (faits) et des liens entre symptômes et maladies (règles) pour établir un diagnostic.

Cas d'usage

Ce paradigme est principalement utilisé dans l'intelligence artificielle, le traitement du langage naturel, la résolution de problèmes complexes (puzzles, planification) et les bases de données relationnelles avancées.

Bonnes pratiques

Il est crucial de bien définir les conditions d'arrêt dans les règles (pour éviter que l'ordinateur ne cherche à l'infini) et de veiller à la cohérence des faits pour éviter les contradictions logiques.

Synonymes

programmation déclarative programmation par contraintes

Antonymes

programmation impérative programmation procédurale

Conseil

Pour bien débuter, oubliez les boucles 'for' ou 'while' habituelles. Entraînez-vous à penser en termes de relations : 'Si A est vrai et que B est lié à A, alors B est-il vrai ?'. C'est un excellent exercice pour structurer son esprit logique.

Questions fréquentes

Est-ce que c'est la même chose que la programmation classique ?

Non. En programmation classique (impérative), on liste des étapes. En programmation logique, on déclare des vérités et on laisse l'ordinateur déduire le résultat.

Quel est le langage le plus connu ?

Prolog est le langage emblématique de ce domaine, bien qu'il existe aussi des variantes comme Datalog.