TITLE: A Reflective Component-Oriented Programming Language
SUPERVISORS: Chouki TIBERMACINE (tibermacin@lirmm.fr) and Christophe DONY (dony@lirmm.fr)
FUNDING: French Government Fellowship (~1500 euros gross salary per month)
PLACE: LIRMM, CNRS and Montpellier University (South of France)
SUBJECT:
Research on the modeling and implementation of applications by assembling components is growing up more and more. Component-based development allows the definition of independent software modules which are put in libraries, available on catalog, and assemblable as deployment and runtime units.
In our research lab, we developed a voluntarily simple component-oriented programming language (SCL), which allowed an original and innovative integration of the concepts of component, port, interface, connector and aspect (see [1]).
Component languages are used now in modeling environments in association with architecture description languages. We would like to study, on the basis of SCL, a reflective solution mixing a programming and an architecture description language, which allows:
- to link entities of conceptual reuse (component descriptors) with units of integration (component instances),
- via a reflective architecture and an API of meta-programming, allowing introspection and intercession, to describe with the same language architectures, constraints on these architectures (non-functional constraints as specified in [2]), and model transformations.
Two SCL prototypes have been implemented in Smalltalk and Ruby. A prototype of the new language can be developed in JAVA or another language, and integrated with the Eclipse plugin of modeling component-based application (CLACS).
[1] Luc Fabresse, Christophe Dony, and Marianne Huchard. Foundations of a simple and unified component-oriented language. Journal of Computer Languages, Systems and Structures, 34(2-3):130-149, Elsevier 2008.
[2] Chouki Tibermacine, Régis Fleurquin, and Salah Sadou. A family of languages for architecture constraint specification. Journal of Systems and Software 83(5):815-831, Elsevier 2010.
THÈSE EN GÉNIE LOGICIEL / PROGRAMMATION
TITRE : Langage réflexif de programmation par composants
ENCADRANTS : Chouki TIBERMACINE (tibermacin@lirmm.fr) et Christophe DONY (dony@lirmm.fr)
BOURSE : Allocation de recherche MENRT
LIEU : LIRMM, CNRS et Université de Montpellier
RÉSUMÉ :
Les recherches sur la modélisation et l'implémentation d'applications par assemblages de composants sont maintenant passées à l'échelle. Le développement par composants vise à permettre la production de composants indépendants stockés dans des bibliothèques, consultables sur catalogue et assemblables en unités d'exécution et de déploiement.
Nous avons réalisé au LIRMM un langage de programmation par composants (SCL) volontairement simple, qui a permis une intégration originale et novatrice des concepts de composant, de port, d'interface, de connecteurs et d'aspects (voir [1]).
Les langages à composants s'utilisent maintenant en intégration dans les environnements de modélisation et en connexion avec un langage de description d'architecture. Nous souhaitons étudier, sur les bases de SCL, un langage mixte, de programmation et de modélisation d'architectures, réflexif, qui permettra :
- de faire le lien entre les entités de réutilisation conceptuelles que
sont les descripteurs de composants et les unités d'intégration que sont les instances de composants,
- via une architecture réflexive et une API de méta-programmation
permettant l'introspection et l'intercession, d'écrire, ou de décrire, avec le même langage des architectures, des contraintes sur ces architectures (contraintes non-fonctionnelles selon les modèles développés par C. Tibermacine dans [2]), ainsi que des transformations de modèles.
Deux prototypes de SCL ont été implémentés en Smalltalk et en Ruby. Un prototype de ce nouveau langage pourra être développé en JAVA ou autre et intégré au plugin Eclipse de modélisation d'applications par composants, CLACS.
[1] Luc Fabresse, Christophe Dony, and Marianne Huchard. Foundations of a simple and unified component-oriented language. Journal of Computer Languages, Systems and Structures, 34(2-3):130-149, Elsevier 2008.
[2] Chouki Tibermacine, Régis Fleurquin, and Salah Sadou. A family of languages for architecture constraint specification. Journal of Systems and Software 83(5):815-831, Elsevier 2010.
-- Serge Stinckwich UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam Every DSL ends up being Smalltalk http://doesnotunderstand.org/
smalltalk-vn@lists.squeakfoundation.org