1 / 27

YAFOOL?

YAFOOL?. Amélie Cordier – 09 Novembre 2004. Plan de la présentation. Yafool? Les paradigmes de programmation Principes d'implantation En pratique… Programmer en Yafool Liens. YAFOOL?. Historique Définition. Yafool? - Historique.

Download Presentation

YAFOOL?

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. YAFOOL? Amélie Cordier – 09 Novembre 2004

  2. Plan de la présentation • Yafool? • Les paradigmes de programmation • Principes d'implantation • En pratique… • Programmer en Yafool • Liens YAFOOL ? - Amélie Cordier

  3. YAFOOL? Historique Définition

  4. Yafool? - Historique • YAFOOL : Yet Another Frame-based Object-Oriented Language • Créé en 1985 par Roland Ducournau, à l’INRIA • Objectif : développer un outil de représentation des connaissances pour des systèmes experts. YAFOOL ? - Amélie Cordier

  5. Yafool? - Définitions • “Langage” orienté objet, de type frames • C'est un ensemble de primitives plus qu'un langage. • Ecrit en Le_Lisp. L'accès à LISP est total et immédiat • Combine programmation procédurale et programmation objet YAFOOL ? - Amélie Cordier

  6. Les paradigmes de programmation Les 4 paradigmes de programmation Positionnement de Yafool

  7. Les 4 paradigmes de programmation (1/2) • Orientée procédures : • Les procédures sont actives • Les données sont passives Exemple: LISP, C, Basic, etc. • Orientée objets : • L'objet est un ensemble données (attributs) + procédures (comportements) • Les actions se traduisent par des messages interprétés par les objets • La notion d'héritage permet de structurer les objets en classes et sous-classes Exemple: SIMULA, SMALLTALK, Java selon Bobrow et Stefik - 1983 YAFOOL ? - Amélie Cordier

  8. Les 4 paradigmes de programmation (2/2) • Orientée données : • Les actions réflexes lient les données aux procédures • Les réflexes sont déclenchés lors d'accès spécifiques aux données (lecture, écriture, etc.) Exemples : KRL, Shirka • Par les règles (programmation logique) : • Le comportement du système est dicté par des ensembles de couples conditions/actions. • L'invocation d'une règle est guidée par filtrage (pattern matching) sur les données. YAFOOL ? - Amélie Cordier

  9. Positionnement de Yafool Programmation orientée objets + données (LOOD) • De l'objet : • Notion d'objet, attribut, comportement (slot) • Lien d'héritage est-un (inclusion et appartenance) • Des données : • Notion de réflexe • Principe de base d'implantation des frames YAFOOL ? - Amélie Cordier

  10. Frames et objets Distinction entre les frames et les objets: • Un objet possède des procédures • Un frame ne possède pas de procédures propres MAIS ses attributs en possèdent YAFOOL ? - Amélie Cordier

  11. Implantation de Yafool Représentation des frames Les concepts du langage La notion d'objet, l'héritage

  12. Représentation des frames • Liste d'association à deux niveau. (objet (slot-1 (facet-11, val-11) … (facet-1k, val-1k)) … (slot-i (facet-i1, val-i1) … (slot-n …)) • Les facettes définissent des modalités sur les attributs : valeur, contrainte, réflexe, etc. • Le triplet frame-slot-facette permet d'obtenir une valeur YAFOOL ? - Amélie Cordier

  13. Les concepts du langage (1/2) • Deux entités : • Noyau dur • Primitives du système (fonctions d'accès élémentaires au triplets, création, lecture écriture effacement) • Gestion des mécanismes d'héritage • Déclenchement des attachement procéduraux (réflexes et comportement) • ... YAFOOL ? - Amélie Cordier

  14. Les concepts du langage (2/2) • Noyau mou • Autorise une syntaxe plus souple et plus elliptique • Définit l'ensemble des objets du noyau dur qui seront utilisés de façon standard • Extensible et/ou modifiables au niveau de la syntaxe, des concepts, des objets systèmes et des utilitaires. YAFOOL ? - Amélie Cordier

  15. Niveaux d'utilisation de Yafool • Utilisateur de base : • noyau mou seulement • Utilisateur évolué (qui étend le langage) : • noyaux dur et mou • Utilisateur haut niveau : • accès au source YAFOOL ? - Amélie Cordier

  16. La notion d'objet • Le nombre de facettes et de slots est illimité • Tous les concepts YAFOOL sont des objets, même les slots et les facettes. • Il existe un mécanisme d’héritage entre les objets donc : => Les slots et les facettes peuvent donc être hiérarchisés. YAFOOL ? - Amélie Cordier

  17. La notion d'héritage • L'héritage : un des élément clé de la POO • L'héritage dans YAFOOL : • Par délégation : si un objet ne peut répondre à un message, il délègue le message à ses successeurs (ancêtres) dans le graphe d'héritage. • Multiple, gère les exceptions. • Pas de différence entre relation d'instanciation et relation de spécification. YAFOOL ? - Amélie Cordier

  18. En pratique… Applications utilisant YAFOOL YAFOOL aujourd’hui

  19. Applications utilisant YAFOOL • Plate-forme Cassis (K6) du CNET: • CNET : France Télécom Recherche • Modélisation des réseaux téléphoniques • Système ReSyn : • Aide à la synthèse en chimie organique • Développée par Framentec et le LIRMM pour Roussel-UCLAF • Utilisée dans le cadre du GDR CNRS TICCO (Traitement Informatique de la Connaissance en Chimie Organique). YAFOOL ? - Amélie Cordier

  20. YAFOOL aujourd’hui • La version la plus à jour de YAFOOL : • Version 3.22 • Automne 1991 • Selon son concepteur, YAFOOL est « mort » à cause de : • L’abandon du langage Le_LISP v15 par l’INRIA • L’échec de son successeur, développé par ILOG YAFOOL ? - Amélie Cordier

  21. Programmer en Yafool … un exemple “simple”

  22. Un exemple “simple” Création de la racine de l’univers: (big-bang avant-JC (bla-bla toute la gaule est occupee… (toute? non car un petit village…) d apres goscinny et uderzo)) Description d’une instance de l’univers : ? (creation lieu ‘rome ()) = rome ? (creation personnage ‘cesar ‘((bercail rome))) = cesar YAFOOL ? - Amélie Cordier

  23. Un exemple “simple” Observation du contenu d’un objet : ? ^Vcesar (cesar (est-un (value personnage) (herit personnage avant-JC objet-ideal)) (instance-de (value personnage)) (bercail (value rome))) = cesar Lecture de l’attribut d’un objet, définition d’une valeur : ? (bercail cesar) = rome ? (:= lieu-actuel cesar rome) = rome YAFOOL ? - Amélie Cordier

  24. Un exemple “simple” Les réflexes ont bien fonctionné : ? (lieu-actuel cesar) = rome ? (presents rome) = (cesar) Vérification de la présence de quelqu’un : ? (:? Lieu-actuel cesar ‘bologne) = () ? (:? Lieu-actuel cesar rome) = rome YAFOOL ? - Amélie Cordier

  25. Un exemple “simple” Suppression et ajout d’éléments : ? (:- presents rome) = (cesar) ? (lieu-actuel cesar) = () ? (:+ presents rome cesar) = cesar ? (:+ presents rome ‘(neron cesar)) = neron ? (presents rome) = (cesar neron) YAFOOL ? - Amélie Cordier

  26. Un exemple “simple” Comportement : (personnage (aller-en-foret (methode () when (:? lieu-actuel (bercail)) (:= lieu-actuel foret)))) (saluer (methode))) ----------------------------------------------------------------------------------------------------------- ? (aller-en-foret cesar) Il n y a pas de methode saluer pour cesar avec (()) = foret ? (presents rome) = (neron) ? (presents foret) =(cesar) YAFOOL ? - Amélie Cordier

  27. Liens http://liris.cnrs.fr/amelie.cordier/recherche/Yafool/biblio.html Source de la présentation : Ducournau, R. - Quinqueton, J. YAFOOL : encore un langage objet a base de frames! Version 2.1. Rapport technique de l'INRIA-Rocquencourt

More Related