Thèse soutenue

Methodologie et outils pour la programmation reflexive dans les langages a objets

FR  |  
EN
Auteur / Autrice : Jean-Christophe Pazzaglia
Direction : Jean-Pierre Regourd
Type : Thèse de doctorat
Discipline(s) : Sciences appliquées
Date : Soutenance en 1997
Etablissement(s) : Nice

Résumé

FR

La distinction entre concepteur et utilisateur d'un langage s'estompe des lors que celui-ci propose des capacites reflexives. Certains langages a objets, le plus souvent par l'intermediaire d'un protocole metaobjet, decrivent ainsi non plus un point mais une region dans l'espace des langages. Une etude detaillee des modeles et des techniques actuellement utilises dans ce domaine permet d'exhiber les moyens d'actions offerts et de correler trois facteurs au centre de nos preoccupations : le potentiel expressif, l'efficacite et la facilite d'utilisation. Une analyse in vivo d'un cas d'ecole decline dans trois langages est suivie de plusieurs experimentations. Ces experiences permettent d'isoler les difficultes propres et les differents degres d'utilisation de la programmation reflexive. Nous proposons une representation graphique pour les modeles bijectif et surjectif qui offre une aide aux concepteurs et utilisateurs. Nous insistons sur les contraintes qu'imposent la situation particuliere du meta-programmeur. Nous montrons comment l'architecture des langages ou des solutions ad hoc facilitent la programmation d'extensions reflexives. Nous proposons une action en amont qui modifie la demarche de conception dans le domaine reflexif. L'architecture associee permet la combinaison d'extensions compatibles mais offre aussi le moyen de detecter des eventuelles inconsistances. Les principes generaux de cette approche cooperative sont utilises pour la realisation de deux prototypes permettant une programmation cooperative : le premier avec un langage du type de clos et le second dans un langage d'acteurs reflexifs. Leurs capacites sont exposees via deux utilisations. Un exemple de retro-conception exhibe les differences entre solution originelle et cooperative. Nous detaillons comment la prise en compte des problemes de composition permet d'aboutir a des outils generiques compatibles et capables d'analyser l'execution de programmes reflexifs.