27
YAFOOL? Amélie Cordier – 09 Novembre 2004

YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

Embed Size (px)

Citation preview

Page 1: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL?

Amélie Cordier – 09 Novembre 2004

Page 2: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 209 Novembre 2004

Plan de la présentation

Yafool? Les paradigmes de programmation Principes d'implantation En pratique… Programmer en Yafool Liens

Page 3: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL?

• Historique• Définition

Page 4: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 409 Novembre 2004

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.

Page 5: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 509 Novembre 2004

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

Page 6: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

Les paradigmes de programmation

• Les 4 paradigmes de programmation• Positionnement de Yafool

Page 7: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 709 Novembre 2004

Les 4 paradigmes de programmation (1/2)

Orientée procédures : Les procédures sont actives Les données sont passivesExemple: 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-classesExemple: SIMULA, SMALLTALK, Java

selon Bobrow et Stefik - 1983

Page 8: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 809 Novembre 2004

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.

Page 9: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 909 Novembre 2004

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

Page 10: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 1009 Novembre 2004

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

Page 11: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

Implantation de Yafool

• Représentation des frames• Les concepts du langage• La notion d'objet, l'héritage

Page 12: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 1209 Novembre 2004

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

Page 13: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 1309 Novembre 2004

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) ...

Page 14: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 1409 Novembre 2004

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.

Page 15: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 1509 Novembre 2004

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

Page 16: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 1609 Novembre 2004

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.

Page 17: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 1709 Novembre 2004

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.

Page 18: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

En pratique…

• Applications utilisant YAFOOL• YAFOOL aujourd’hui

Page 19: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 1909 Novembre 2004

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).

Page 20: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 2009 Novembre 2004

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

Page 21: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

Programmer en Yafool

… un exemple “simple”

Page 22: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 2209 Novembre 2004

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

Page 23: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 2309 Novembre 2004

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

Page 24: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 2409 Novembre 2004

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

Page 25: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 2509 Novembre 2004

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)

Page 26: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

YAFOOL ? - Amélie Cordier 2609 Novembre 2004

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)

Page 27: YAFOOL? Amélie Cordier – 09 Novembre 2004. YAFOOL ? - Amélie Cordier2 09 Novembre 2004 Plan de la présentation Yafool? Les paradigmes de programmation

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