• Document: Prolog: l histoire. ECLiPSe. Programmation declarative. Deux exemples de programme. Syntaxe de Prolog. Sémantique (opérationnelle) Prolog
  • Size: 1.15 MB
  • Uploaded: 2018-12-08 21:16:05
  • Status: Successfully converted


Some snippets from your converted document:

PROgrammation LOGique Prolog: l’histoire • Les origines du Prolog (vers 1970): ECLiPSe • A. Colmerauer et al., Univ. d’Aix-Marseille. Programmation Un système de communication homme-machine en français declarative • R. A. Kowalski, Imperial College, London. Deux exemples de programme Predicate logic as a programming languages Syntaxe de • L’age d’or (1982-1992): projet de recherche “Ordinateurs de Prolog Sémantique 5ème génération” au Japon. (opéra- • La Programmation par Contraintes (dépuis 1987): extension de tionnelle) de Prolog Prolog. Applications industrielles et intérêt académique. Les nombres en Prolog Résumé Prolog: l’histoire ECLiPSe Programmation declarative Deux exemples Un grand nombre d’implementations disponibles. Voir par exemple: de programme Syntaxe de http://fr.wikipedia.org/wiki/Prolog Prolog La version que nous allons utiliser: Sémantique (opéra- ECLiPSe http://eclipseclp.org/ tionnelle) de Prolog Principale avantage d’ECLiPSe par rapport à d’autres Les nombres implémentations libres (GNU prolog, SWIProlog, YAP, . . . ), pour ce en Prolog cours: traitement satisfaisant de la Programmation par Contraintes. Résumé The user states the problem, Prolog: l’histoire the computer solves it ECLiPSe Programmation declarative Exemple: trier la liste L revient à produire une liste G ayant les Deux exemples de programme mêmes éléments que L et qui soit triée. Syntaxe de Prolog tri(L,G) :- meme_elts(L,G),triee(G). Sémantique (opéra- tionnelle) de Prolog La liste G est triée si chaque élément de G est plus petit que Les nombres l’élément qui le suit (version itérative). en Prolog La liste G est triée si son premier élément est plus petit que son Résumé deuxième (à condition qu’ils existent), et si la sous-liste commençant au deuxième élément est elle-même triée (version récursive). triee([]). triee([_]). triee([X,Y|L]) :- X=<Y, triee([Y|L]). L et G ont les mêmes éléments si . . . Un programme prolog: assertions et Prolog: l’histoire règles ECLiPSe Programmation declarative Deux exemples de programme Syntaxe de Prolog /*bio(nom,sexe,ne_en,dcd_en,pere,mere)*/ Sémantique (opéra- bio(louis13,h,1601,1643,henri4,marie_medicis). tionnelle) de Prolog bio(elisabeth_france,f,1603,1644,henri4,marie_medicis). Les nombres bio(louis14,h,1638,1715,louis13,anne_autriche). en Prolog /*pere(pere,enfant)*/ Résumé pere(X,Y):- bio(Y,_,_,_,X,_). /*age(personne,age)*/ age(X,Y):-bio(X,_,Z,T,_,_),Y is T-Z. On interroge le programme: buts Prolog: l’histoire ECLiPSe Programmation declarative Deux exemples de programme Quel est la date de naissance de Louis XIV? Syntaxe de bio(louis14,_,X,_,_,_). Prolog Qui est le père de Louis XIII? Sémantique (opéra- pere(X,louis13). tionnelle) de Prolog ...mais aussi... Les nombres bio(louis13,_,_,_,X,_). en Prolog Combien d’année Louis XIV a survecu à son père? Résumé bio(louis14,_,_,Y,Z,_),bio(Z,_,_,T,_,_),R is Y-T. Parmi les personnes dont on dispose de la “biographie”, qui sont les hommes? bio(X,h,_,_,_,_). Interaction au top level: eclipse Prolog: l’histoire ECLiPSe /* bio.pl */ Programmation declarative bio(louis13,h,1601,1643,henri4,marie_medicis). Deux exemples de programme bio(elisabeth_france,f,1603,1644,henri4,marie_medicis). Syntaxe de bio(louis14,h,1638,1715,louis13,anne_autriche). Prolog pere(X,Y):-bio(Y,_,_,_,X,_). Sémantique (opéra- age(X,Y):-bio(X,_,T,Z,_,_), Y is Z-T. tionnelle) de Prolog # eclipse Les nombres [eclipse 1]: compile(bio). en Prolog bio.pl compiled 1744 bytes in 0.00 seconds Résumé Yes (0.07s cpu) [eclipse 2]: bio(louis14,_,X,_,_,_). X = 1638 Yes (0.00s cpu) [eclipse 3]: pere(X,louis13). X = henri4 Yes (0.00s cpu) Interaction au top level: Prolog: l’histoire tkeclipse ECLiPSe Programmation # tkeclipse& declarative Deux exemples de programme Syntaxe de Prolog Sémantique (opéra- tion

Recently converted files (publicly available):