Vous êtes sur la page 1sur 11

Prolog

Présentation
Le langage PROLOG (PROgrammation en LOGique) fut introduit en 1972 par
Alain COLMERAUER. Ce langage permet d'écrire des programmes sous une forme très
proche de la logique des prédicats du premier ordre.C'est un langage :
•déclaratif (contrairement aux langages impératifs comme Java, C++, Python, etc.) : il
permet de déclarer des connaissances, sans expliciter leur traitement  ;
•indéterministe : il permet le traitement de problèmes comportant plusieurs solutions.
•Dans un programme PROLOG, on retrouve toujours :Des connaissances, décrivant des
faits, regroupés dans une base de faits (BF),
• Des règles applicables aux faits, regroupés dans une base de règles (BR).BF + BR = BC
(Base de connaissances)
•Un moteur d'inference (M.I.) intégré dans le langage, qui permet d'"appliquer" les règles
aux faits
Implémentation
Parmi les outils permettant de programmer en PROLOG, on peut citer:
• SWI PROLOG : possède un débuggeur graphique ainsi que plusieurs solveurs de
• contraintes, développé par l'Université d'Amsterdam(http://www.swi-prolog.org/).
• GNU PROLOG : développé par l'INRIA, propose un solveur de contraintes sur
• domaine fini(http://gnu-prolog.inria.fr/).
• Sicstus PROLOG(payant): possède des extensions en plus, dont plusieurs solveurs
• de contraintes(www.sics.se/sicstus) .
• Turbo PROLOG par Borland, désormais abandonné.
• Open PROLOG(http://www.cs.tcd.ie/open-prolog/).
• Visual PROLOG(http://www.visual-prolog.com/).
• Prologia PROLOG II+ : est une version améliorée de PROLOG II, avec aide
• conséquente consultable (http://www.prologia.fr/).
• Ciao Prolog.
• Prolog.NET, développé à l'Institut de Technologie de l'Oregon.
• Qu-Prolog, un prolog multithread développé par l'Université du Queensland.
• Quintus Prolog, développé par le Swedish Institute for Computer Science.
• Rebol Prolog.
• Strawberry Prolog………
Comment installer Prolog ?
Sous Windows : télécharger l'un des programmes mentionnés précédemment et l'installer.

.
Comment installer Prolog ?
• Sous Debian/Ubuntu : en root : apt-get install swi-prologou bien :apt-get install gprolog
• Autres distributions Linux : voir la gestion des packages pour votre distribution (RPM, emerge…)
ou pour compiler à partir des sources.
Comment éditer un programme Prolog ?
C'est simple: avec votre éditeur de texte préféré !
Comment exécuter un programme Prolog ?
Lancez votre interpréteur Prolog :

Chargez votre programme grâce à la commande consult :


Exemples de programmes Prolog
Les éléments fondamentaux du Prolog

nous renvoie :

Inversement, l'opération :
Les éléments fondamentaux du Prolog

Requetés

Permet d'obtenir de l’information d’un programme logique. En demandant P?, on demande si un but P
est vrai
Une requête sera préfixée par ?-.
Répondre a une requête en fonction d’un programme consiste à déterminer si elle est une
conséquence logique du programme a partir de règles de déduction. Trois principales règles
sont utilisées :
L'identité : vérifie si un bit correspond a` un des faits présents dans la base de faits :
?-father(abraham,isaac). yes
?-father(abraham,lot). no
Les éléments fondamentaux du Prolog

La généralisation : Pour exploiter cette règle de d´éduction, on doit introduire le concept de variable.
Les variables sont le moyen de résumer plusieurs requetés. Une variable est une entité unique mais non
définie (pas de type). On identifie une
variable en employant la majuscule comme première lettre, a` l’inverse de la convention utilis´ee dans
le volume de Russell et Norvig. La généralisation consiste a` effectuer une
requête vérifiant l’existence (quantificateur existentiel) d’une substitution valide pour la variable,
permettant de rendre vraie la requête.
?-father(abraham,X). X = isaac
?-father(haran,X). X = lot, X = milcah, X = yiscah

Il est a` noter que Prolog peut instancier temporairement des variables dans l’espoir qu’elles pourront l’
ˆêtre plus tard avec des ´éléments de la base de connaissances. Ces variables sont présentées sous le
format _# (i.e., _ suivi d’un numéro de variable, par exemple : X=_143). S’il ne peut instancier ces
variables, c’est un signe qu’une erreur est présente dans la base de connaissances.

Vous aimerez peut-être aussi