Titre: Composition de programme basée sur la programmation par aspects

Sujet
Une nouvelle approche du développement logiciel, par fabrique logicielle est en train d'émerger qui cherche par la définition de langages métiers de s'abstraire des langages de programmation pour mieux contrôler le processus de développement. Cette nouvelle approche a fait l'objet de plusieurs présentations à OOPSLA, LA conférence sur la programmation par Objets et sera certainement l'un des thèmes importants de recherche dans le futur. Dans notre équipe de recherche, nous somme en train de concrétiser et valider cette approche en développant notre fabrique logicielle, appelée SmartTools http:www-sop.inria.fr/smartool. Notre approche combine avantageusement les approches de programmation générative, par composants, par modèles et par aspects qui sont elles aussi en forte évolution (suscite de nombreux travaux de recherche) depuis quelques années.

En particulier, nous avons introduit une programmation par aspects au dessus de la programmation par visiteur (patron de conception) qui s'exprime directement sur les langages dédiés et non pas au niveau du langage de programmation. Le sujet du stage sera en utilisant notre programmation par aspects de montrer qu'il est possible de projeter par composition le traitement (un programme) pour un langage donné (langage de base du traitement) sur tous langages qui se définissent par transformation vers ce langage de base. L'intérêt de cette projection, est dans le cadre du développement dirigé par les modèles (langages), les transformations de modèles (transformation syntaxique) seront aussi accompagnées de la transformation des parties sémantiques (composition ou transformation des traitements).

Ce sujet forme une base préliminaire pour une poursuite en thèse sur des sujets qui sont d'une actualité forte tant du point de vue académique que du point du vue applicatifs.

Encadreur
Didier Parigot

Contact
Tel : 04 92 38 50 01
Email : Didier.Parigot(at)inria.fr

Labo
INRIA Sophia Antipolis

Objectif
L'objectif du stage sera d'approfondir et d'étendre notre outil de projection de programme modulo une transformation syntaxique. En effet, nous avons réalisé un prototype très rudimentaire de cette idée. Ainsi l'étudiant pourra comprendre assez rapidement notre approche qui synthètise le programme résultant (sans transformation) de la composition d'une transformation et d'un traitement (programme) sur un langage de base. Mais pour l'instant, notre langage de transformation (relation entre deux modèles) est très basique et nos techniques de composition sont encore très rudimentaire (projection d'aspects). Puis nous voudrons étudier la possibilité de composer plusieurs transformations en séquence.

Prerequis
connaissance approfondi de Java et des techniques de compilation

Bibliographie

·        Software Factories, Assembling Application with Patterns, Models, Frameworks, and Tools.

·        Voir le site de SmartTools {www-sop.inria.fr/smartool} pour accéder aux articles.

Adresse
INRIA Sophia Antipolis
2004 Route des Lucioles
BP 93
06902 Sophia Antipolis Cedex
France