Thématique de recherche : les objets
Le succès des langages d'objets repose sur deux raisons
principales,
- d'une part les qualités de type "génie logiciel"
telles que modularité,
fiabilité, réutilisabilité, etc. qui sont surtout
dues à l'héritage et
à l'encapsulation,
- d'autre part des capacités "naturelles" de
représentation
qui rendent très
intuitives l'approche objet et qui expliquent autant l'usage des objets
en
analyse et conception qu'en représentation des connaissances.
Mes recherches ont porté sur ces deux versants, en me focalisant
principalement sur tout ce qui tourne autour des notions de spécialisation de classes et
d'héritage de
propriétés.
Hiérarchies de classes
Mon intérêt porte d'abord sur l'étude des
hiérarchies de classes,
qui sont à l'intersection de ces deux ensembles de
qualités, avec deux
thématiques privilégiées :
- l'héritage multiple, en particulier les techniques de
linéarisation, sur lequel j'ai beaucoup travaillé avec M. Habib
et son équipe, de 1986 jusqu'en 1995, avec des publications dans
des revues et dans les
grandes conférences
internationales .
- la sémantique de représentation des classes et de
la spécialisation, sur
laquelle je travaille de 1995 à 2000, avec quelques publications
: un
gros rapport de recherche, un chapitre dans le livre du CIMPA.
Se sont greffés à ce noyau dur divers travaux concernant
les langages de
programmation à objets du point de vue de certains de leurs
mécanismes :
- compilation efficace de l'envoi de messages,
- réflexivité et meta-objects protocols
(thèse
de G. Pavillet),
- intégration de la programmation par objets avec diverses
fonctionnalités
plus déclaratives : contraintes (thèse de S.
Pélenc), logiques de
descriptions, etc.
Depuis 2000, mon intérêt s'est plutôt tourné
vers
l'étude des langages de programmation à objets à
typage
statique : comparaison du sous-typage et de la spécialisation
conceptuelle (TSI 2002, Workshop OOIS 2002).
Implémentation et compilation de langages à objets :
le langage PRM
En concevant et développant YAFOOL, de 1985 à 1994, j'ai
été amené à étudier des techniques
d'implémentation, dont la coloration de méthodes.
J'ai repris plus tard cette thématique, d'abord dans 2
synthèses sur l'implémentation des objets, respectivement
dans
les langages à typage dynamique (L'Objet 1997) et statique (RR 2002 soumis à ACM Computing Surveys et à
paraître dans un délai incertain).
C'est devenu mon thème de recherche principal pour le
3ième millénaire.
Parmi les techniques d'implémentation, je me suis plus
particulièrement
intéressé à la coloration, qui résout tous
les problèmes d'implémentation des
objets (méthodes, attributs et test de sous-typage) (RR 2001, LMO 2002, RR 2006).
Le mémoire de DEA
de Pascal
Takhedmit étudie cette technique du point de vue algorithmique.
Depuis 2000, le DEA et la thèse de Jean Privat ont
pour objectif de développer un prototype de compilateur qui
applique des techniques
d'optimisation globales (analyse de types et coloration) en compilation
séparée (LMO 2004,
PASTE 2005). A cette
occasion, il a spécifié et implémenté le
langage PRM (Programming with
Refinement and Modules) qui étend le modèle
objet
avec des notions de modules et de raffinement de classes (LMO 2005, RR 2005, RR 2006).
Dans ce cadre, Nicolas Desnos a étudié dans son mémoire de DEA un garbage
collector adapté à la coloration bidirectionnelle et
le mémoire de M2R de Floréal Morandat porte sur le
bootstrap du compilateur PRM. Il poursuit ce travail en thèse.
Enfin, plus récemment, je me suis intéressé
à l'utilisation du hachage
parfait pour le test de sous-typage et l'implémentation
des interfaces en JAVA (RR 2005
à paraître dans ACM
TOPLAS, LMO 2006).
Une grosse partie de ce travail a porté sur la simulation des
diverses techniques d'implémentation sur des benchmarks
classiques consitués de grosses hiérarchies de classes.
Ces benchmarks sont disponibles ici.
Divers
Je participe ou ai participé aux activités de la
communauté objet en France
au travers
Par ailleurs, j'ai participé aux travaux du GDR TICCO (Traitement
Informatique de la Connaissance en Chimie Organique, 1992-2000)
dans le cadre de
l'équipe Informatique et Chimie du LIRMM : voir la page
du prototype Resyn Assistant.
Le langage YAFOOL et Y3
De 1985 à 1994, dans la SSII Sema Group, j'ai
conçu et développé le langage YAFOOL
et le système Y3.