1 / 13

PROLOG : PROgrammation en LOGique ” Programmer c'est Démontrer ”

PROLOG : PROgrammation en LOGique ” Programmer c'est Démontrer ”. BIBLIOGRAPHIE. Programmation : 1.  ” Programming in Prolog ”, Springer Verlag, 1981, W.F.Clocksin & al. Traduction Francaise :” Programmer en Prolog” Editions Eyrolles, 1985.

knox
Télécharger la présentation

PROLOG : PROgrammation en LOGique ” Programmer c'est Démontrer ”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PROLOG : PROgrammation en LOGique ” Programmer c'est Démontrer ”

  2. BIBLIOGRAPHIE Programmation : 1.  ” Programming in Prolog ”, Springer Verlag, 1981, W.F.Clocksin & al. Traduction Francaise :” Programmer en Prolog” Editions Eyrolles, 1985. 2. ” Prolog”, InterEditions, 1985, F. Giannesini, H. Kanoui, R. Pasero, M. Van Caneguem. 3. ” Prolog Programming for artificial intelligence”, Addisson Wesley Pub. Comp., 1986, I. Bratko Théorie et implémentation : 1.  ” Logic for Problem Solving ”, Elsevier North Holland, 1979, R.A. Kowalsky 2. ” Anatomie de Prolog”, InterEditions, 1986, M. Van Caneguem. 3. ” Introduction to Logic Programming ”, Academic Press, 1985, C.J. Hogger. ” Ouvrages de Synthèses : 1.  ” Prolog fondements et Applications ”, AFCET, 1985, Dunod, Condillac. 2. ” The Art of Prolog, Advanced Programming Techniques”, M.I.T. Press, 1986, L. Sterling, E. Shapiro.

  3. HISTORIQUE 1972 : Prolog I Alain COLMERAUER (Université Aix-Marseille) (découverte de la programmation logique et premier interpréteur) et Robert A. KOWALSKY (Edinburgh University) (cadre théorique et premier compilateur) 1982 : Prolog II M. Van Caneguem, et al. (base du programme japonais de 5ème génération, version améliorée commercialisée par Prolog IA) EXPLOSION : Plusieurs Prolog, Plusieurs Machines (Avec peu de nouveautes) - Prolog/CENT -> Prolog-P - Foll-Prolog - Prolog- CRISS - Xlog ou XILog - Hybrides : LisLog, POPLog, -Prolog, etc.. 1990 : Prolog III Jacky LEGRAND Le langage PROLOG TECHNIP, etc... 1996 : Prolog IV -> SWI-Prolog Jan Wielemaker, University of Amsterdam, The Netherlands (Version 3.1, 1998, jan@swi.psy.uva.nl)

  4. APPLICATIONS - Prolog Vendors Group (Boeing, Dassault, IBM, Siemens, ...) - Compulog Net (ESPRIT Network of Excellence in Compu. Logic) - Conférences Practical Applications of Prolog PRODUITS standard ISO Turbo Prolog (Borland) IF-Prolog (Siemens Nixdorf) Delphia Prolog (Siglos) Prolog III (PrologIA) Visual Prolog (Prolog Development Center A/S) BIM Prolog (Integral Solutions Limited) Win-Prolog (Logic Programming Associates) PDC Prolog (Prolog Development Center) Quintus Prolog (AI International Limited) SWI-Prolog (Dept.of Social Science Informatics)

  5. LES DIFFERENTS MODES DE PROGRAMMATION • L'exécution d'une tâche par une machine nécessite sa programmation, quelques soient les techniques utilisées et les surenchères de • vocabulaire associées. • La programmation logique constitue une révolution dans le domaine • difficile d'en faire la description en se référant à des structures usuelles • LA PROGRAMMATION IMPERATIVE • Nécessite l'expression, par le détail, du "comment ». • Traduction d'une démarche algorithmique où le passage des données vers les résultats est décrit comme une suite d'actions. • LA PROGRAMMATION FONCTIONNELLE • Description du résultat comme une composition de fonctions, agissant sur les objets. Relève aussi d'un mode de pensée algorithmique. • Connue par Lisp, le langage de prédilection des premiers chercheurs • en Intelligence Artificielle.

  6. LA PROGRAMMATION LOGIQUE • Délégation de la charge du "comment" au langage lui-même • Description du problème à résoudre à partir de l'inventaire des objets concernés et des propriétés et relations qu'ils vérifient. • Rapprochement usuel de Prolog avec la logique du premier ordre. • Expression formelle de la connaissance qui porte à la fois des • éléments implicites et le moyen de les rendre explicites. • Mécanisme général et universel, moteur intégré au langage qui • simule une partie de nos facultés de raisonnement. • Facteur de non déterminisme qui conduit à entreprendre des actions • qui ne conduisent pas forcément au résultat ou peuvent conduire à • plusieurs résultats

  7. LA PROGRAMMATION ORIENTEE-OBJET • Plus qu'une simple technique d'implantation, représente la • synthèse idéale de tous les progrès en matière de programmation. • Structure : démarche de conception qui donne la priorité à la • description des invariants des processus • Traitement : décentralisation du déclenchement des actions, • modules communiquants et faiblement couplés • Langage : mélange de techniques déclaratives et procédurales

  8. PROLOG UN LANGAGE • ” SURPRENANT ” • CAR • Pas de séparation programme/données. • Pas de mots-clés. • Peu de symboles spéciaux : ceux de la langue française {. , ; : ! ? ( ) }. • Pas de variables (au sens allocation d ’une case). • Pas de structure de Contrôle. • Pas de tableaux. • Pas de pointeurs. • Pas de fonctions (paramètres entrants ou sortant, résultats). • Longueur des programmes diminue • BREF • C'est une opportunité de programmer pour non informaticiens • MAIS • Des arbres (listes) • Opération implicite : UNIFICATION • Un seul algorithme prédéfini : RESOLUTION (moteur d ’inférence) • La notion d ’inconnus • Réversibilité (analyse/synthèse) • Non-déterminisme • Uniformité (programme/données)

  9. APPLICATION • TRAITEMENTS SYMBOLIQUES • intégration, système de calcul formel • développement de compilateurs • BASE DE DONNEES • description, interrogation • LANGAGES NATURELS • SYSTEMES DE DEDUCTION • systèmes experts • génération de plans • génération de gammes d ’outillages • CAO • EAO • GENIE LOGICIEL • outil de preuve, de maquettage, de prototypage, d ’aide • à la spécification formelle

  10. REPRESENTATION DES CONNAISSANCES LES OBJETS (Termes) ce dont on a quelque chose à dire. Les identifier et en faire la description pour aboutir à une représentation abstraite, purement syntaxique. LES PREDICATS ce que l'on dit des objets Qualifient ou décrivent les relations dans lesquelles les objets sont impliqués. LES FAITS L'affirmation d'une qualité ou d'une relation à l'aide d'une formule atomique est une assertion ou un fait. LES REGLES les règles sont les germes du raisonnement elles portent la connaissance implicite et leur utilisation permet de la restituer Une règle utilise la forme si…..alors

  11. LOGIQUE DU 1er ORDRE ET PROLOG LES OBJETS objets simples représentés par un symbole constant (commencés par une minuscule) : unix, Espagne, jaune, géranium, tennis, 1922 objets complexes, description à l'aide d'un terme composé : (symbole fonctionnel suivi de la liste parenthèsée des arguments) jugement(Jo,meurtre,1871,travaux_forcés) vin(bordeaux,rouge,saint_émilion,1985) arguments sont des termes correspondant à des objets simples ou complexes : ordinateur(nom(start,st386_25),unix,intel_80386,4, dk_5_25_1200,dd(control_data,180,18)) Un symbole variable est un terme qui figure l'emplacement d'un ou plusieurs individus arbitraires non désignés (commencés par une lettre capitale): X, Y, Fleur, Femme, Couleur.

  12. LES FAITS • Formules atomiques avec un symbole de prédicat suivi de la liste • ordonnée et parenthèsée des arguments : • riche(paul), criminel(jo), offre(don_juan, fuchsia, ada) • les arguments sont des objets simples ou complexes : • occasion(ordinateur(start_386_25,unix,intel_80386, ..)) • LES REGLES • Formules composées construites avec les formules atomiques • en utilisant : • NB : (toutes les formules ne sont pas des règles) • les connecteurs logiques et, ou, implique, non • { , , , } • les quantificateurs existentiel et universel • {, } • Une règle exprime qu'un certain nombre de conséquences ou • conclusions sont vraies lorsque les hypothèses ou conditions • sont vraies.

  13. EXEMPLE En Français Si un médecin soigne une personne et qu'il est compétent pour l'affection dont elle souffre alors cette personne va guérir. En Logique des Predicats (quelque soit X Y Z)((personne(X) et affection(Y) et médecin(Z) et compétent(Z,Y) et soigne(Z,X)) implique guérir(X,Y)).

More Related