À 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 quele 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
Antonymes
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.