ComJava : Contribution à la Création d'un Nouveau Langage de Programmation par Extension du Langage Java.

Encadrants : Abdelhak-Djamel Seriai (http://www.lirmm.fr/~seriai/ )

Les langages orientés objet tels que Java, C++, C# ou Smalltalk offrent des avantages certains pour faciliter le développement de systèmes logiciels de qualité. Néanmoins, pour des systèmes de plus en plus complexes, ces langages atteignent leurs limites, entre autres, par rapport aux propriétés de compréhension, de maintenabilité et de réutilisabilité de ces systèmes. Ainsi, d'autres langages dits post-objet ont vu le jour tels que les langages à base de composants (https://en.wikipedia.org/wiki/Service-oriented_programming ) ou les langages à base de services (https://fr.wikipedia.org/wiki/Programmation_orient%C3%A9e_composant).

Exemple d'une application à base de composants pour la gestion des vacances.

Des exemples de langages à base de composants sont : CCM inspiré de Corba, ArchJava basé sur Java, Compo inspiré de Smalltalk, Fractal, Java Beans et EJB comme extensions de Java, etc.)

Exemple d'un code écrit en ArchJava

Notre objectif dans la cadre de ce projet est d'expérimenter l'extension d'un langage objet existant pour le doter de certaines capacités offertes par les langages à base de composants. Ainsi, nous proposons d'étendre le langage Java pour lui intégrer les principaux concepts proposés dans les langages à base de composants : composants, interface de composants, port, architecture, assemblage, etc. Nous créerons ainsi un nouveau langage que nous appellerons : ComJava.

Les principales étapes de ce travail sont :

  • Étude des principaux langages à base de composant existants pour pouvoir identifier leurs principaux concepts/éléments et compléter la définition de la grammaire de ComJava, dont une partie est déjà définie.
  • Proposition d'un modèle de correspondance entre concepts/éléments du langage ComJava et les concepts/éléments du langage Java. Ce modèle sera utilisé pour la translation d'un programme écrit en ComJava en un programme Java.
  • Utilisation de l'outil ANTLR (http://www.antlr.org/) pour l’analyse lexicale/syntaxique de ComJava.

Ce projet est destiné à des étudiants de la spécialité AIGLE. Il leur permettra d'acquérir certaines connaissances utiles par rapport aux principes de création des langages de programmation.

Quelques références bibliographiques

  • Jonathan Aldrich, Craig Chambers et David Notkin, « ArchJava: connecting software architecture to implementation », Proceedings of the 24th International Conference on Software Engineering,‎ 25 mai 2002, p. 187–197 (ISBN 1-58113-472-X, DOI 10.1145/581339.581365)
  • Clemens Szyperski, Jan Bosch, Wolfgang Weck. Component-Oriented Programming. European Conference on Object-Oriented Programming. 1999.