La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Intelligence Artificielle.

Présentations similaires


Présentation au sujet: "Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Intelligence Artificielle."— Transcription de la présentation:

1 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Intelligence Artificielle

2 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation procédurale Programmation procédurale avec les fonctions 2 types de fonctions - fonctions systèmes - fonctions utilisateurs

3 Appels de fonction ou Expressions Affichage du résultat des appels Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Exemple d’appels de fonctions système Programmation procédurale

4 imbrication des parenthèses Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Exemple d’appels de fonctions système Programmation procédurale

5 (deffunction | | | | … ) Corps de la fonction : nom de la fonction | | : liste facultative des paramètres … : corps de la fonction Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Le constructeur deffunction Syntaxe Action Définit une fonction Définition de fonctions utilisateurs Programmation procédurale

6 Constructeur Paramètres de la fonction Corps de la fonction Nom de la fonction Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Exemple Le constructeur deffunction Définition de fonctions utilisateurs Programmation procédurale

7 Chargement de la fonction Appels de la fonction Résultats des appels Fonction définie Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Exemple d’appel de fonctions utilisateur Programmation procédurale

8 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmation objets Le langage objet COOL (CLIPS Oriented Object Language) Approche de programmation OBJET + = Connaissances déclaratives Connaissances procédurales

9 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Paradigmes Les connaissances déclaratives : propriétés de l’objet, son état, ses données, ses particularités (attributs) Les connaissances procédurales : capacités d’action de l’objet : savoir faire, réactions au monde extérieur (méthodes) Les données d’un objet ne sont accessibles et modifiables que par les méthodes de l’objet lui même : (encapsulation) Les objets communiquent entre eux par messages Les messages sont évalués par les méthodes de l’objet Programmation objets

10 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Les messages sont envoyés en précisant l’objet destinataire, le nom de la méthode à déclencher et éventuellement les paramètres de cette méthode Un message peut être interprété différemment selon l’objet destinataire. (polymorphisme) Les attributs sont typés et nommés Les attributs sont décrits à travers un ensemble de facettes Il existe plusieurs types de facettes : type, valeur par défaut, intervalle de valeurs, droit d’accès, visibilité Paradigmes Programmation objets

11 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Les objets ayant des propriétés et des capacités communes sont regroupés en classes Les classes sont génératrices d’objets Les objets sont crées à partir d’une classe Un objet est une instance unique de sa classe Paradigmes Programmation objets

12 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Les objets héritent des attributs et des méthodes de leur classe Une classe est une spécialisation d’une autre classe existante Une classe 1. hérite des attributs et des méthodes de ses super-classes (ancêtres), 2. ajoute de nouveaux attributs et/ou nouvelles méthodes, 3. peut modifier ou redéfinir les méthodes héritées (surcharge) La partie privée d’une classe (attributs et méthodes) peut être partagée avec les membres de la familles : ancêtres (super- classes) ou descendants (sous-classes) Paradigmes Programmation objets

13 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Programmer en COOL revient à : 1. Définir des classes (defclass) en décrivant ses attributs (slot) avec leurs facettes ainsi que ses méthodes (defmessage-handler). Les méthodes doivent être déclarées au préalable (message-handler) 3. Créer des instances des classes définies (make-instance) 4. Envoyer des messages (send) aux instances créées Le langage COOL Programmation objets

14 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Le constructeur defclass Action Définit une classe à travers les propriétés suivantes : Nom de la classe Nom de la super-classe Rôle Réactivité Les attributs avec leurs facettes Les méthodes Le langage COOL : définition des classes Programmation objets

15 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS (defclass | | (is-a ) (role ) |(pattern-match )| slot ( ) ( ) …. slot ( ) ( ) …. … message-handler … ) Méthodes Attributs Facettes Le constructeur defclass Syntaxe Le langage COOL : définition des classes Programmation objets

16 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Spécifie le lien d’héritage d’une classe (is-a ) (is-a (USER)) : nom de la super-classe directe : classe système ou classe utilisateur Le constructeur defclass : lien dhéritage is-a Syntaxe Le langage COOL : définition des classes Action Exemple Programmation objets

17 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS (role ) (role (concrete)) : concrete : classe qui va être instanciée ou abstrait sinon Le constructeur defclass : rôle de classe role Le langage COOL : définition des classes Action Spécifie le rôle d’une classe Syntaxe Exemple Programmation objets

18 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS (pattern-match ) (pattern-match (reactive)) : reactive : instances de classe utilisables dans les règles ou unreactive sinon Le constructeur defclass : réactivité de classe patter-match Le langage COOL : définition des classes Action Définit la réactivité d ’une classe Syntaxe Exemple Programmation objets

19 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Elles servent à décrire un attribut Types de facettes Initialisation ou valeur par défaut (default) Typage (type) Accès (access) Visibilité (visibility) Définition des méthodes d’accès (create-accessor) Le constructeur defclass : les facettes Le langage COOL : définition des classes Programmation objets

20 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Facette de valeur par défaut default Donne une valeur par défaut à l’attribut (slot (default

21 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Facette de typage type Associe à un attribut un type particulier de données (slot (type )) (slot salaire (type float)) (slot superieur-hierarchique (type instance)) (slot motivations (type symbol)) : un type de données : string, symbol, instance, float, etc Le constructeur defclass : les facettes Le langage COOL : définition des classes Action Syntaxe Exemples Programmation objets

22 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Les types de données et les classes prédéfinies dans Clips Programmation objets

23 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Facette d’accès access Définit les droits d’accès (lecture et/ou écriture) liés à un attribut (slot date-embauche (access read-only)) Le constructeur defclass : les facettes Le langage COOL : définition des classes Action Syntaxe Exemple (slot (access )) : droits d’accès : read-only, read-write ou initialize-only Programmation objets

24 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Facette de visibilité visibility Précise si l’attribut est accessible aux ancêtres et aux descendants de la classe où il a été définit Le constructeur defclass : les facettes Le langage COOL : définition des classes Action Syntaxe (slot (visibilty )) : type de visibilité : private ou public Attribut accessible aux super-classes et aux sur-classes de la classe où il a été définit NonOui Programmation objets

25 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Facette de visibilité visibility Le constructeur defclass : les facettes Le langage COOL : définition des classes Exemple (slot date-embauche (visibility private)) Programmation objets

26 Classe D Méthode-A Méthode-C Méthode-B Méthode-D Attribut-B-2 Attribut-B-1 Classe BClasse C Classe A private public Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Facette de visibilité visibility Le constructeur defclass : les facettes Le langage COOL : définition des classes Programmation objets

27 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Facette de méthodes d’accès create-accessor Définit des méthodes particulières get-nom-de-l’attribut et put-nom-de-l’attribut permettant d’accéder à la valeur de l’attribut en lecture et en écriture Le constructeur defclass : les facettes Le langage COOL : définition des classes Action Syntaxe (slot (create-accessor )) : read, write ou read-write read : définit le get-nom-de-l’attribut write : définit le put-nom-de-l’attribut read-write : définit le get-nom-de-l’attribut et put-nom-de-l’attribut Programmation objets

28 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Facette de méthodes d’accès create-accessor Le constructeur defclass : les facettes Le langage COOL : définition des classes Exemple (slot statut (create-accessor read-write)) Définition des deux méthodes get-statut et put-statut Programmation objets

29 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Déclaration des méthodes message-handler Déclare une méthode dans une classe (message-handler ) (message-handler affichage-info) : méthode à déclarer Le constructeur defclass Le langage COOL : définition des classes Action Syntaxe Exemple Programmation objets

30 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Définition des méthodes defmessage-handler Définit une méthode dans une classe (defmessage-handler | | | … ) : nom de la classe : nom de la méthode | | : liste facultative des paramètres … : corps de la méthode Le constructeur defclass Le langage COOL : définition des classes Action Syntaxe Programmation objets

31 Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Définition des méthodes defmessage-handler Le constructeur defclass Exemple (defmessage-handler INSCRIPTION affichage-info() (printout t crlf) (printout t crlf "*-*-*-*-*-*-*-*-*-*-*-*" crlf) (printout t "Le nom de l'inscrit est : " ?self:Nom crlf) (printout t "Le prénom de l'inscrit est : " ?self:Prenom crlf) (printout t "Le nom de la société de l'inscrit est : " ?self:Organisme crlf) (printout t "*-*-*-*-*-*-*-*-*-*-*-*" crlf) (printout t crlf crlf crlf) ) Le langage COOL : définition des classes Programmation objets

32 (defclass INSCRIPTION (is-a USER) (role concrete) (slot Nom (type STRING) (create-accessor read-write)) (slot Prenom (type STRING) (create-accessor read-write)) (slot Organisme (type STRING) (create-accessor read-write)) (message-handler saisie-info) (message-handler affichage-info) ) Un exemple complet Description des attributs et déclaration des méthodes de la classe Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Le constructeur defclass Le langage COOL : définition des classes Programmation objets

33 (defmessage-handler INSCRIPTION saisie-info() (printout t crlf crlf) (printout t "Tapez votre nom : ") (bind ?Nom (readline)) (send ?self put-Nom ?Nom) (printout t crlf) (printout t "Tapez votre prénom : ") (bind ?Prenom (readline)) (send ?self put-Prenom ?Prenom) (printout t crlf) (printout t "Tapez le nom de votre organisme : ") (bind ?Organisme (readline)) (send ?self put-Organisme ?Organisme) (return "fin de saisie") ) Un exemple complet Définition des méthodes de la classe Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Le constructeur defclass Le langage COOL : définition des classes Programmation objets

34 (defmessage-handler INSCRIPTION affichage-info() (printout t crlf) (printout t crlf "*-*-*-*-*-*-*-*-*-*-*-*" crlf) (printout t "Le nom de l'inscrit est : " ?self:Nom crlf) (printout t "Le prénom de l'inscrit est : " ?self:Prenom crlf) (printout t "Le nom de la société de l'inscrit est : " ?self:Organisme crlf) (printout t "*-*-*-*-*-*-*-*-*-*-*-*" crlf) (printout t crlf crlf crlf) ) Un exemple complet Définition des méthodes de la classe Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Le constructeur defclass Le langage COOL : définition des classes Programmation objets

35 Crée une instance d’une classe déjà définie (make-instance [ ] of ( ) … ( ) ) Action Syntaxe Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS La fonction make-instance Le langage COOL : création d’instances : nom de l’instance : nom de la classe à instancier : paire attribut valeur Programmation objets

36 Définit une collection d’instances d’une classe (definstances ( of ( )… ( ) ) ( of ( )… ( ) ) …) Action Syntaxe Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Le construct definstances Le langage COOL : création d’instances : nom de la collection d’instances : nom de la classe à instancier : paire attribut valeur Programmation objets

37 Rajoute à la liste des instances toutes les instances définies par un definstances Action Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS La commande reset Le langage COOL : création d’instances Programmation objets

38 Exemple de définition d ’une collection d ’instances avec definstances Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Le langage COOL : création d’instances Programmation objets

39 Rajouter à la liste des instances une collection d ’instances définie par definstances Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Le langage COOL : création d’instances Programmation objets

40 Envoie un message à un objet Action Syntaxe Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS La fonction send Le langage COOL : envoi des messages : objet destinataire du message : nom de la méthode associé au message et que l’objet destinataire doit déclencher | | : liste facultative de paramètres de la méthode (send [ ] | |) Programmation objets

41 Exemples Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS La fonction send Le langage COOL : envoi des messages (send [Insc1] saisie-info) (send [Insc1] affichage-info) Programmation objets

42 Clips est un outil souple et puissant pour la représentation des connaissances Il permet d’utiliser voir combiner différents formalismes (construct)  Les Règles (defrule)  Les Faits (deffacts)  Les fonctions (deffunction)  Classes d’objets (defclass)  Objets ou instances (definstances)  Messages (defmessage-handler) Formalisme règles de production Formalisme objet Formalisme procédural Représentation déclarative Représentation hybride Représentation procédurale Représentation des connaissances dans CLIPS Conclusion


Télécharger ppt "Programmation procédurale et programmation objets avec l’environnement logiciel CLIPS Intelligence Artificielle."

Présentations similaires


Annonces Google