next up previous
Next: Etat d'avancement Up: Présentation des thèmes de Previous: Présentation des thèmes de

Domaine de recherche

L'approche objet s'est divisé en divers courants plus ou moins cloisonnés, parmi lesquels se distinguent les Langages de Programmation par Objets [MNC tex2html_wrap_inline295 89], [Fer89] et la Représentation des Connaissances par Objets.

Les premiers ont introduit des notions puissantes comme la réflexivité [Gra88], [Coi87b] et les divers ``Méta-Object-Protocol'' (MOP [KdRB91], [GC87] , [Pae93], [Gra89] , [KG89]), pendant que les seconds, issus à la fois des langages dits de frames [Duc91], [Dek94], [Rat93] et des logiques de description (ou logiques terminologiques [Kar93], [WFA84]), ont privilégié l'expressivité plus ou moins déclarative des langages, et/ou leur sémantique formelle.

Mon sujet de thèse consiste à étendre les fonctionnalités d'un langage à objet existant pour y apporter des améliorations en matière d'expressivité, d'efficacité, et notamment en y ajoutant un ``Méta-Object-Protocol'' (MOP), puis de concevoir et réaliser comme extension de cette première extension, un système de représentation de connaissances par objets muni de fonctionnalités de classification et filtrage basées sur une sémantique propre.

Un ``Méta-Object-Protocol'' (MOP) dans un Langage de Programmation par Objets est un protocole de création d'objet (ou d'instance) facilement modifiable et extensible.

Un ``MOP'' permet aisément d'étendre le langage en y ajoutant de nouvelles fonctionnalités grâce à la gestion des différents Méta-objets.

Les Méta-objets sont des classes dont les instances sont des objets ``importants'' qui définissent le langage (une métaclasse est une classe dont les instances sont elles-mêmes des classes [Coi87a]). Ces classes (les Méta-objets) determinent quelles propriétés peuvent avoir leurs instances, et par conséquent définissent les différents comportements du langage [KdRB91].

Quelques exemples de Méta-objets : Les méta-classes, les méta-slots ou méta-attributs dont les instances sont des objets qui décrivent les slots ; un slot est un attribut ou une variable d'instance qui a de nombreuses caractéristiques (contraintes et/ou fonctionnalités) telles que le type, l'accès, l'obtention de l'information qu'il représente dans la classe et donc dans l'objet, les méta-fonctions qui peuvent définir les mécanismes d'appel de fonctions, ...[GC87]

Mais il y a très peu de Langage à Objets possédant un MOP : Pour qu'un langage fournisse le puissant outil d'évolution et d'extensibilité qu'est un MOP, il faut qu'il soit très flexible (qualité qui ne se retrouve que dans les langages dynamiques, tels que LISP [Que94] [Ste90], [KG89] et Smalltalk), et qu'il soit réflexif (pour que les modifications apportées au MOP puissent se repercutées sur tout le langage et parce que le MOP nécessite une réflexivité du langage pour être efficace).

L'intérêt d'un MOP dans le cadre de mes travaux est l'aisance qu'il nous autorise pour notamment étendre les fonctionnalités d'un langage à objets existant pour y apporter des améliorations en matière d'expressivité [KdRB91], et aussi parce que les outils d'extension qu'il apporte peuvent faciliter la conception et la réalisation, au dessus du langage à objets existants [DB93] d'un système de représentation des connaissances par objets muni de fonctionnalités de classification et filtrage basées sur une sémantique propre (une logique de description).


next up previous
Next: Etat d'avancement Up: Présentation des thèmes de Previous: Présentation des thèmes de

Gabriel PAVILLET
Wed May 6 10:13:36 MET DST 1998