Le Programmateur

Les programmes du Programmateur !

Aller au contenu | Aller au menu | Aller à la recherche

Prolog

Prolog est l'un des principaux langages de programmation logique. Le nom Prolog est un acronyme de PROgrammation LOGique. Il a été créé par Alain Colmerauer et Philippe Roussel vers 1972. Le but était de faire un langage de programmation qui permettait d'utiliser l'expressivité de la logique au lieu de définir pas à pas la succession d'instructions que doit exécuter un ordinateur.

Prolog est utilisé dans de nombreux programmes d'intelligence artificielle et dans le traitement de la linguistique par ordinateur (surtout ceux concernant les langages naturels). Ses syntaxe et sémantique sont considérées comme très simples et claires (le but original était de procurer un outil pour les linguistes ignorant l'informatique). Beaucoup de recherches menant à l'implémentation actuelle de prolog vinrent des effets du projet pour les ordinateurs de la cinquième génération qui utilisaient comme base une variante.

Prolog est basé sur le calcul des prédicats du premier ordre ; cependant il est restreint à n'accepter que les clauses de Horn. L'exécution d'un programme Prolog est effectivement une application du théorème prouvant par résolution du premier ordre. Les concepts fondamentaux sont l'unification, la récursivité et le retour sur trace.

Une des particularités de prolog est que l'on peut construire une base de connaissance dans un ordre indéterminé. Prolog résoudra ensuite des séries de problèmes logiques.

Fil des billets - Fil des commentaires

21nov.

Lecture et Ecriture dans un fichier en Prolog

Voici un exemple d'I/O en Prolog :

% Exemple 8 : utilisation de read/1 et write/1
addition:- write('Entrez un nombre :'),read(A),write('Entrez un autre nombre:'),read(B), Z is A+B, nl, write(A), write('+'),write(B),write('='), write(Z).
 
% Exemple 9 : utilisation de read/2 , write/2, close et open
addition:- open('Fichier.txt',append,Stream),write(Stream,'3'),
write(Stream, '+'), write(Stream, '4'),
write(Stream, '='), write(Stream,'7 '), close(Stream).

21nov.

Les listes en Prolog

Voici un petit fichier commenté sur la gestion des listes en Prolog :

  1. % Exemple 3 : Listes
  2. appartient(X,[X|Y]).
  3. appartient(X,[Z|Y]):- appartient(X,Y).

Lire la suite

21nov.

Ecrire des règles

Voici quelques règles toutes simples, pour comprendre l'idée du Prolog.

convient_physiquement(X,Y):- homme(Y,T,C,A) , recherche(X,T,C,A).
convient_physiquement(X,Y):- femme(Y,T,C,A) , recherche(X,T,C,A).
 
ont_memes_gouts(X,Y):- gout(X,M,L,S) , gout(Y,M,L,S).