[Suivant][Précedent][Fin-Préc.][Fin][Haut]

2 Prolog : un langage « logique » ?

Même si les fondations de Prolog sont construites à partir de la logique, l’identification Prolog = Logique présente une certain nombre de limites.

 

2.1 L’équivalence logique

 

  1. Commentez le programme suivant d’un point de vue logique :

          q(X) :- p(X).
          p(X) :- q(X).
  2. Que se passe-t-il quand on demande le but p(X) ou le but q(X) ?
  3. Qu’en concluez vous ?

 

2.2 L’ordre des litéraux

 

  1. Établir des faits sur les liens de parenté entre des personnes (prédicat parent(X, Y)).
  2. Définir le prédicat ancêtre à partir du prédicat parent.
  3. Concluez sur l’importance de l’ordre des litéraux dans les clauses Prolog.

 

2.3 La négation

La négation logique n’est pas présente en tant que telle dans Prolog. Prolog fait l’hypothèse du « monde clôt », i.e. il considère faux ce qu’il n’arrive pas à démontrer. Pour simuler le faux (prédicat Prolog not), il faut se servir du prédicat fail qui fait toujours échec et de la coupure (le « cut », notée !), que l’on va étudier dans la suite.

 


[Suivant][Précedent][Fin-Préc.][Début][Haut]