Université Montpellier-II
Formation Doctorale Informatique
Sujet de stage M2R.
Interprétation
des langages de composants
Encadrement
Christophe Dony, Chouki Tibermacine (Equipe D’OC)
Mots clés
Composants,
langages, interprétation.
Contexte
La programmation par composants est un
nouveau paradigme qui vise à permettre à des développeurs de produire des
composants indépendants stockées dans des bibliothèques et consultables sur
catalogue et à d’autres développeurs de réaliser des applications en
assemblant, composant, connectant ces composants prédéfinis. Les langages
expérimentaux (ArchJava, ComponentJ, Julia, etc) de programmation par composants sont nombreux car les
concepts, tels que ceux de composant, port, interface, connecteurs sont encore
à l’étude.
Sujet
Nous disposons au LIRMM
d’un langage de
composant (SCL) développé par Luc Fabresse. Il est
volontairement simple et
fondé sur une intégration de concepts incrémentale
validée par l’implantation
concrète. SCL est implanté en Smalltalk, langage à
objet historique et clé de
voute du développement « agile ». Ce
langage est interfacé par un langage de description
d'architecture (CLACS) intégré à Eclipse qui
permet de réaliser graphiquement des assemblages que l'on peut
ensuite traduire en SCL pour exécution.
Le sujet de stage consiste en
l'étude d'une des extensions suivantes :
- intégration de l'héritage entre descripteurs de composants
- réflexivité : faire que les descripteurs de composant soient des composants
- intégrer une couche "contrat" permettant de décrire des contraintes de qualité
- A
terme, ces intégrations permettront de faire de SCL à la
fois un langage de programmation par objet classique intégrant
des descripeurs et des instances, un langage de description
d'architectures (description d'ensemble d'instances connectées
réalisant de nouveaux composites ou spécifiant des
topologies de déploiement), un langage de programmation des
composants et enfin un langage de transformation de modèles. Les
modèles, utilisables comme des composants, pourront faire
l'objet de toutes les transformations usuelles.