Thèse de doctorat en Systèmes et logiciels
Sous la direction de Daniel Hagimont et de Thierry Coupaye.
Soutenue en 2004
à Grenoble INPG .
Cette these propose de generaliser l'utilisation de la transformation de programmes, pour la construction d'un lien efficace entre les parties fonctionnelle et non-fonctionnelle (ou technique) d'un systeme logiciel. Dans ce cadre, nous avons developpe un systeme de transformation (jabyce), avec pour objectifs la possibilite d'implanter tous les transformateurs de programmes possibles, leur encapsulation pour systematiser leur reutilisation, et la possibilite de les composer arbitrairement et efficacement. Pour cela, jabyce a deux caracteristiques : les transformateurs sont conçus sous la forme de composants logiciels dans un modele de composant general (fractal), et les programmes transformes sont representes par des sequences d'interactions au lieu de graphes d'objets (representation classique). Une extension de la categorisation classique des systemes de transformation de programme nous permet une comparaison exhaustive de jabyce aux autres systemes existants, qui montre que, grace a ses caracteristiques, jabyce facilite significativement la conception de transformateurs complexes, et offre les mecanismes de composition de transformation les plus efficaces et les plus flexibles. Jabyce a ete valide experimentalement dans le cadre de la construction d'un environnement de persistance transparente d'objets java, et celle d'une machine virtuelle java modulaire basee sur la compilation statique. Un autre apport original de ce travail est l'introduction de la problematique du traitement des erreurs dans les systemes de transformation de programmes, et la conception d'un systeme de traitement d'erreur adapte a jabyce.
Flexible and efficient composition of program tranformations
Pas de résumé disponible.
In this work we propose to generalize the use of program transformation, in order to efficiently link the functional and non-functional (or technical) parts of a software system. In this context, we have developed a transformation system (jabyce), which allows the implementation of any possible program transformers, their encapsulation in order to make them reusable systematically, and their efficient and flexible composition. In order to reach those goals, jabyce has two characteristics: transformers are designed as software components in a general component model (fractal), and transformed programs are represented as sequences of interactions between such components, instead of object graphs (classical representation). An extension of the classical categorization of transformation systems allows us an extensive comparison of jabyce to the other existing transformation systems, which demonstrates that jabyce makes it significantly easier to develop complex transformers, and offers the most efficient and flexible transformer composition mechanisms. Jabyce has been experimentally used in the context of the development of a transparent java object persistence service, and that of a modular java virtual machine relying on static compilation. Another original contribution of this work is the introduction of the problematics of fault tolerance in program transformation systems, and the design of an error handling system adapted to jabyce.