0% ont trouvé ce document utile (0 vote)
4 vues2 pages

Prolog

Prolog est un langage de programmation déclaratif qui se concentre sur la description des faits et des relations plutôt que sur les séquences d'instructions. Il utilise le backtracking pour explorer automatiquement les solutions possibles, ce qui le rend efficace pour des problèmes combinatoires et logiques. Bien qu'il présente des avantages pour la résolution de problèmes complexes, sa syntaxe et son approche peuvent être déroutantes pour les débutants.

Transféré par

ocean.azur15
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues2 pages

Prolog

Prolog est un langage de programmation déclaratif qui se concentre sur la description des faits et des relations plutôt que sur les séquences d'instructions. Il utilise le backtracking pour explorer automatiquement les solutions possibles, ce qui le rend efficace pour des problèmes combinatoires et logiques. Bien qu'il présente des avantages pour la résolution de problèmes complexes, sa syntaxe et son approche peuvent être déroutantes pour les débutants.

Transféré par

ocean.azur15
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd

Script pour exposé : Prolog et le paradigme

déclaratif
Bonjour à tous, aujourd’hui je vais vous parler de Prolog et du paradigme déclaratif. Prolog est un
langage de programmation créé dans les années 1970 et il se distingue des langages classiques
comme Python, Java ou C, car il appartient à ce qu’on appelle le paradigme déclaratif. Mais
qu’est-ce que cela signifie ? Contrairement aux langages impératifs où le programmeur indique
comment faire pour atteindre un résultat, dans Prolog, on décrit ce qui est vrai et les relations
entre les données. Le moteur Prolog se charge de trouver les solutions. C’est un changement de
mentalité, car on ne pense plus en termes de boucles, de variables modifiées étape par étape ou de
séquences d’instructions, mais en termes de faits, de règles et de relations.
Commençons par un exemple simple pour illustrer les faits et les règles. Imaginons un petit arbre
généalogique :
parent(pierre, paul).
parent(pierre, sophie).
parent(anne, pierre).

Ici, nous déclarons que Pierre est le parent de Paul et de Sophie, et qu’Anne est le parent de Pierre.
Ce sont des faits, des vérités simples. Maintenant, si on veut trouver un grand-parent, on peut
définir une règle :
grandparent(X,Y) :- parent(X,Z), parent(Z,Y).

Cette règle dit simplement : X est le grand-parent de Y si X est le parent de Z et Z est le parent de Y.
Et pour poser la question à Prolog, on écrit une requête :
?- grandparent(anne, Y).

Prolog va automatiquement chercher toutes les solutions possibles. Dans ce cas, il nous répond : Y
= Paul et Y = Sophie. Le moteur explore les relations logiques et utilise ce qu’on appelle le
backtracking, ou retour arrière, pour tester toutes les possibilités.
Le backtracking est un concept central en Prolog et explique pourquoi ce langage est
particulièrement adapté aux recherches de solutions. Lorsqu’une requête est posée, Prolog essaie
une option. Si elle mène à un échec, il revient en arrière et essaie une autre possibilité. Il continue
ainsi jusqu’à ce que toutes les solutions soient trouvées ou que le moteur ait exploré toutes les
options. Cela rend Prolog extrêmement efficace pour les problèmes combinatoires, les labyrinthes,
les énigmes, les plannings ou les systèmes experts où il faut tester plusieurs hypothèses.
Prenons un autre exemple classique : vérifier si un élément se trouve dans une liste. En Prolog, on
peut écrire :
member(X, [X|_]).
member(X, [_|T]) :- member(X, T).

Puis poser la requête :


?- member(3, [1,2,3,4]).
Le moteur répondra True pour 3. Ici, il explore la liste automatiquement grâce à la récursion et au
backtracking, sans que nous ayons besoin d’écrire une boucle explicite, comme nous le ferions en
Python ou en C.
Prolog est également efficace pour les calculs récursifs. Par exemple, la factorielle peut être définie
ainsi :
fact(0, 1).
fact(N, F) :- N > 0, N1 is N-1, fact(N1, F1), F is N*F1.

Et la requête ?- fact(5, X). donnera automatiquement X = 120. Ici encore, la logique est
exprimée comme une relation entre N et F, et non comme une série d’instructions séquentielles.
Comparons maintenant Prolog avec les langages impératifs. Dans un langage impératif comme
Python, il faut coder explicitement comment parcourir les structures de données, gérer les boucles
et les conditions pour obtenir la solution. Dans Prolog, on décrit ce qui doit être vrai, et le moteur
s’occupe de l’exploration. Cette approche est très adaptée à des problèmes où toutes les solutions
possibles doivent être envisagées, comme les puzzles, le sudoku ou les problèmes de planification.
C’est la force de Prolog : il combine logique déclarative et recherche automatique de solutions.
Bien sûr, le langage présente aussi des limites. Pour des calculs intensifs ou des applications temps
réel, il peut être moins performant que les langages impératifs. Pour un débutant, la syntaxe et la
façon de penser peuvent être déroutantes, car on n’écrit pas de boucles ni de variables modifiables.
Le backtracking et l’unification demandent un peu de pratique pour être compris et utilisés
correctement. Le débogage peut aussi être complexe, car il faut suivre mentalement toutes les
branches explorées par Prolog.
Pour conclure, Prolog est un langage déclaratif puissant, adapté aux problèmes de logique et de
contraintes, et qui développe une façon de penser différente de celle des langages classiques. Le
paradigme déclaratif privilégie la description de la logique et des relations plutôt que la séquence
d’instructions. Bien maîtrisé, il permet de résoudre des problèmes complexes de manière concise
et élégante. Pour ceux qui aiment la logique, la recherche de solutions et les systèmes intelligents,
Prolog est un outil fascinant et enrichissant.

Vous aimerez peut-être aussi