La version html de ce document est disponible sur le WEB à
l'adresse http://www-rocq.inria.fr/oscar/FNC-2/JAVA/procope98.html.
PARTENAIRES
|
|
|
Responsable du projet |
|
|
Fonction - grade |
|
|
Organisme de rattachement |
|
|
Laboratoire |
|
|
Nom du Directeur |
|
|
Adresse |
|
|
Telephone |
|
|
Telecopie |
|
|
E-mail |
|
|
Autres Participants |
Dr. Gilles Roussel, Etienne Duris, Loic Correnson, Remi Forax
|
Dr. Uwe Assmann, Rainer Neumann, N. N. (à embaucher en 1998)
|
PROJET
Titre du projet : CHOCO-LEGO
Moyens demandés pour 1998
(voir Tableau Récapitulatif)
|
Français vers l'Allemagne
|
Allemands vers la France
|
Nombre total de personnes |
4
|
4
|
Nombre total de voyages |
2 fois 2 personnes
|
3 (= 2 fois 1+ 1 fois 2 personnes)
|
Durée totale des séjours |
4 semaines
|
4 semaines
|
Thème : 4 - Sciences et Technologies de l'Information
Autres demandes déposées : Aucunes
Avez vous beneficié auparavant d'une action intégrée
sur le même sujet? : Non
Demandes Procope précédemment déposées
: Aucunes
Financement obtenu : Aucun
FICHE A bis
THÈME DU PROGRAMME
4 - Sciences et Technologies de l'Information
FICHE B
PROCOPE
DESCRIPTION DU PROJET
1. Objectifs scientifiques:
Un système logiciel peut être constitué en assemblant
simplement des composants (principe LEGO). Afin de constituer des systèmes
entiers par une telle méthode, ces composants doivent pouvoir être
flexibles et adaptables. Pour cela, un sous-problème important est
de déterminer le flot de contrôle du système logiciel.
En temps normal, celui-ci est spécifié par l'utilisateur;
cependant, à l'intérieur d'un système ``intelligent''
de composants, il peut être généré automatiquement,
au moins en partie. Dans ce cas, lorsqu'un nouveau composant est inséré
dans un tel système logiciel, le flot de contrôle peut être
adapté automatiquement. Cela permet une intégration aisée
de nouveaux composants, rendant ainsi l'extension du système logiciel
très simple. Cela augmente donc le degré de réutilisation,
et diminue le coût de développement du logiciel.
- But
Obtenir la génération de flot de contrôle de logiciel
grâce aux grammaires attribuées. Appliquer cette technique
pour obtenir la flexibilité et l'extensibilité de la technologie
des sytèmes de composants logiciels.
Effets
Le logiciel devient plus facilement extensible, puisque le flot de
contrôle n'est plus obligatoirement spécifié par l'utilisateur,
mais généré automatiquement. La réutilisation
va au delà d'une réutilisation ``boite noire'', puisque les
systèmes s'adaptent automatiquement lorsqu'ils sont augmentés
et étendus.
Pour plus de détails, voir la partie ``État
de l'art'' à la fin de ce document.
2. Programme de travail proposé et calendrier
:
Le but du projet est d'utiliser la technologie des grammaires attribuées
(en particulier le langage CHOCOLAT) pour développer le mécanisme
de base de la composition de code dans un système de composants
logiciels.
Définition et spécification d'un nouveau langage de description
de grammaire attribuée CHOCOLAT s'appuyant sur un langage
Orienté Objet existant comme Java (ou Sather).
Définition d'une méthodologie pour la composition de
code dans les systèmes de composants logiciels
Génération de composants de code dans les systèmes
de composants grâce aux spécifications par grammaires attribuées.
- Lorsque des composants de code sont écrits sous la forme de
spécification par grammaires attribuées, l'extension des
composants peut se faire aisément par l'extension de leurs spécifications,
et le code final peut être généré automatiquement
et de façon consistante par des outils des grammaires attribuées.
Identification des analyses nécessaires et définition
de l'opérateur de composition de grammaires attribuées.
- Cette phase est intégrée dans la définition d'un
nouveau langage de composition de composants, CHOCOLEGO, basé
sur la technologie des grammaires attribuées. Les opérateurs
de modularité, de couplage et de généricité
des grammaires attribuées seront utilisés dans la génération
de code Java ou Sather.
Calendrier:
Nous pensons que la définition des opérateurs de base
pour la composition des grammaires attribuées dans CHOCOLAT ainsi
que le langage de composition CHOCOLEGO constitueront la tâche
principale de 1998. En 1999, nous appliquerons ces technologies à
internet, i.e., télécharger des applets grammaires attribuées
par le WEB pour étendre des composants logiciels locaux.
3. Intérêt de la collaboration, et complémentarité
des équipes :
Le groupe OSCAR de Didier Parigot, à l'INRIA, a fortement contribué
depuis plusieurs années à la diffusion et à l'extension
des grammaires attribuées, en particulier:
implantation et définition du système de grammaires attribuée
FNC-2 qui est un des plus complets existant actuellement JP90;
participation et utilisation du système FNC-2 dans diverses
plateformes de compilation ou d'environnement de programmation;
travaux théoriques sur la composition descriptionnelle des grammaires
attribuées et la généricité structurelle LJPR93,
PRJD96, COR96, DPRJ97.
Le groupe allemand du Professeur Goos a produit ces dernières
années un nombre important de travaux sur l'ingénierie du
logiciel et les langages Orientés Objet :
le langage Orienté Objet Sather-K, qui est utilisé
pour l'enseignement à l'Université de Karlsruhe Goo95;
la bibliothèque d'algorithmes KARLA FZZ95;
des travaux sur la théorie des langages Orientés Objet,
en particulier sur la classification de l'héritage FZZ96
et la génération des hiérarchies de classes FNZ96
;
les design patterns Zim95 et les frameworks
Orientés Objet.
Grâce à l'action de coopération PROCOPE,
les deux instituts collaboreront dans la génération de code
Java et Sather pour des systèmes de composants. L'INRIA
sera chargée de développer les mécanismes de base,
en commençant par les travaux sur le langage CHOCOLAT. L'Université
de Karlsruhe utilisera alors le système CHOCOLAT pour l'appliquer
aux logiciels à systèmes de composants. Elle développera
un langage, CHOCOLEGO, pour spécifier la composition de composants
représentant du code.
FICHE C
PROCOPE
PRÉSENTATION DES ÉQUIPES
Composition des équipes:
France :
Didier Parigot (Chargé de Recherche, INRIA),
Gilles Roussel (Maître de Conférences, Université de
Marne-La-Vallée),
Etienne Duris (Doctorant INRIA/Université d'Orléans),
Loïc Correnson (Stagiaire de DEA Sémantique et Preuve, Université
de PARIS VII),
Remi Forax (Stagiaire de Maîtrise, Université de Marne-La-Vallée).
Allemagne : Prof. Dr. G. Goos, Dr. Uwe Assmann, Rainer Neumann,
N. N. (personne à embaucher en 1998).
Équipements et logistique disponibles pour
la réalisation du projet :
France : Équipements et logistique de l'INRIA (avant-projet
OSCAR) url:http://www-rocq.inria.fr/oscar
Allemagne : Équipements et logistique de l'Université
de Karlsruhe (projet Program Structures) url:http://i44s11.info.uni-karlsruhe.de:80/
Publications significatives en rapport avec le projet
(5 maximum) :
France : (Nos publications sont accessibles par http://www-rocq.inria.fr/oscar/FNC-2/recentpaper.html).
Cor96 Loic Correnson. Généricité
dans les grammaires attribuées. Rapport de stage d'option, École
Polytechnique, Paris, 1996.
DPRJ97 Etienne Duris, Didier Parigot, Gilles
Roussel, and Martin Jourdan. Structure-directed genericity in functional
programming and attribute grammars. Rapport de Recherche 3105, INRIA, Février
1997.
JP90 Martin Jourdan and Didier Parigot. Application
development with the FNC-2 attribute grammar system. In Dieter Hammer,
editor, Compiler Compilers '90, Lecture Notes in Computer Science,
pages 85--94. Springer-Verlag, New York--Heidelberg--Berlin, October 1990.
Schwerin.
LJPR93 Carole Le Bellec, Martin Jourdan,
Didier Parigot, and Gilles Roussel. Specification and Implementation of
Grammar Coupling Using Attribute Grammars. In Maurice Bruynooghe and Jaan
Penjam, editors, Programming Language Implementation and Logic Programming
(PLILP '93), volume 714 of Lect. Notes in Comp. Sci., pages 123--136,
Tallinn, August 1993. Springer-Verlag.
PRJD96 Didier Parigot, Gilles Roussel,
Martin Jourdan, and Etienne Duris. Dynamic Attribute Grammars. In Herbert
Kuchen and S.~Doaitse Swierstra, editors, Int. Symp. on Progr. Languages,
Implementations, Logics and Programs (PLILP'96), volume 1140 of Lect.
Notes in Comp. Sci., pages 122--136, Aachen, September 1996. Springer-Verlag.
Allemagne :
FNZ96 Arne Frick, R.~Neumann, and Wolf Zimmermann.
Eine Methode zur Konstruktion robuster Klassenhierarchien Softwaretechniktrends,
16(3):16--23, 1996. Beitrag zur Softwaretechnik '96.
FZZ95 Arne~K. Frick, Walter Zimmer, and
Wolf Zimmermann. On the design of reliable libraries. In R.~Ege, M.~Singh,
and B.~Meyer, editors, TOOLS 17 --- Technology of Object-Oriented Programming,
pages 13--23. Prentice Hall, August 1995.
FZZ96 Arne Frick, Walter Zimmer, and Wolf
Zimmermann. Konstruktion robuster und flexibler Klassenbibliotheken Informatik
- Forschung und Entwicklung, 11(4):168--178, 1996.
Goo95 Gerhard Goos. Sather-K --- the language.
Interner Bericht 8/95, Universität Karlsruhe, Fakultät für
Informatik, 1995.
Zim95 Walter Zimmer. Relationships between
design patterns. In James~O. Coplien and Douglas~C. Schmidt, editors, Pattern
Languages of Program Design. Addison-Wesley, 1995.
Appuis demandés et/ou obtenus hors PROCOPE pour
ce projet :
France : Aucuns
Allemagne : Aucuns
FICHE D
PROCOPE
PERSPECTIVES DE LA COOPÉRATION
Formation par la recherche :
France : Etienne Duris terminera sa thèse (fin 1998)
sur ce domaine, en développant et en utilisant CHOCOLAT.
Loïc Correnson effectuera sa thèse sur ce sujet. Rémi
Forax travaille actuellement sur la définition et l'implantation
de CHOCOLAT et il est très probable qu'il effectue sa thèse
sur ce sujet.
Allemagne : L'Université de Karlsruhe prévoit
de débuter de 3 à 5 ``Master Sciences theses'' en
1998/1999, pendant la collaboration PROCOPE. Par ailleurs, R. Neuman
va effectuer une thèse dans ce domaine, et une troisième
personne sera recrutée en 1998 pour effectuer une thèse sur
ce sujet.
Résultats attendus du projet :
Nous pensons donc que la modularité et la généricité
offertes par les grammaires attribuées peuvent être utilisées
pour développer et étendre du code. Cela améliorerait
la réutilisabilité des spécifications, des composants,
et des compositions de composants, et fournirait une méthodologie
importante pour les futurs systèmes de composants.
Comme exemple d'application sur internet, un programmeur pourra télécharger
des composants sous la forme d'applettes grammaire attribuée
spécifiées en CHOCOLAT. Grâce au langage de
composition CHOCOLEGO, il pourra intégrer ce composant à
sa propre spécification en cours de développement. Le code
Java ou Sather correspondant sera alors généré
automatiquement.
Perspectives européennes :
Les deux sous-projets français et allemand sont complémentaires,
puisque l'INRIA développera les mécanismes de base des modules
et de leurs manipulations tandis que l'Université de Karlsruhe développera
la partie application technologique pour les systèmes de composants.
Perspectives internationales autres :
Le langage Sather ayant été initialement conçu
et développé à l'Université de Berkeley, http://www.icsi.berkeley.edu/~sather/ ,
l'intérêt des travaux que nous proposons ne concernent pas
uniqement l'Europe. Les systèmes à composants intéressent
depuis peu de temps plusieurs équipes de recherche internationales
comme http://www.CCS.neu.EDU/research/demeter/index.html
(adpatative programming) et plus géneralement les "design
patterns" (voir http://g.oswego.edu/dl/).
Perspectives industrielles actuelles ou attendues :
Puisque les systèmes de composants renforcent la réutilisation
du logiciel, il existe un marché potentiel important pour les technologies
que nous proposons de développer. Les premières versions
des systèmes CHOCOLAT/CHOCOLEGO seront diffusées sous
la forme de licences libres aux industriels et aux instituts de recherches
afin que leurs utilisations puissent convaincre de leurs avantages, en
particulier en terme de gain de temps de développement.
Propriété Intellectuelle :
L'attention des chercheurs est particulièrement attirée
sur la nécessité de prendre toutes les dispositions utiles
relatives à la protection des droits de propriété
intellectuelle et du patrimoine scientifique français ainsi qu'à
d'éventuels transferts de technologie vers d'autres pays.
Signature du responsable français du projet
Avis du Directeur du Laboratoire et/ou du Chef d'Établissement
PROCOPE
TABLEAU RÉCAPITULATIF DES MOYENS DEMANDÉS
POUR LA RÉALISATION DU PROJET
POUR L'ANNÉE 1998 UNIQUEMENT
Équipe française
Noms des chercheurs
|
Fonctions
|
Nombre de
voyages
|
Durée totale
|
Laboratoire - Ville
|
Réservé à l'APAPE
|
Didier Parigot
|
Niveau 4
|
1
|
1 semaine
en Avril
|
Program Structure Group
Karlsruhe
|
|
Gilles Roussel
|
Niveau 4
|
1
|
1 semaine
en Avril
|
Program Structure Group
Karlsruhe
|
|
Loïc Correnson
|
Niveau 1
|
1
|
1 semaine
en Septembre
|
Program Structure Group
Karlsruhe
|
|
Etienne Duris
|
Niveau 1
|
1
|
1 semaine
en Septembre
|
Program Structure Group
Karlsruhe
|
|
Équipe allemande
Noms des chercheurs
|
Fonctions
|
Nombre de
voyages
|
Durée totale
|
Laboratoire - Ville
|
Réservé à l'APAPE
|
Uwe Assmann
|
Niveau 4
|
1
|
1 semaine
en Février
|
INRIA
Rocquencourt
|
|
Rainer Neuman
|
Niveau 1
|
1
|
1 semaine
en Mai
|
INRIA
Rocquencourt
|
|
N. N.
|
Niveau 1
|
1
|
1 semaine
en Novembre
|
INRIA
Rocquencourt
|
|
Uwe Assmann
|
Niveau 4
|
1
|
1 semaine
en Novembre
|
INRIA
Rocquencourt
|
|
Le comité de sélection des projets se réunit à
l'automne et la notification sera envoyée par l'APAPE en décembre
1997.
ANNEXE
PROCOPE
ETAT DE L'ART
Les grammaires attribuées sont un outils reconnu pour la construction
de compilateurs. Elles fournissent un paradigme de programmation déclaratif,
i.e., le développeur peut s'abstraire du COMMENT calculer,
pour se concentrer sur QUOI calculer. À partir de la spécification
abstraite d'un problème, les grammaires attribuées permettent
de générer un algorithme qui explicite le flot de contrôle
résolvant ce problème. Il existe de puissantes technologies
de générateurs d'évaluateurs, comme dans le système
FNC-2; de plus, il existe des extensions importantes qui permettent
d'augmenter le pouvoir d'expression des spécifications par grammaires
attribuées classiques, ou de composer des composants logiciels LJPR93.
Cependant, les grammaires attribuées classiques ne peuvent être
utilisées que pour des programmes travaillant sur des structures
arborescentes. Depuis peu, nous en avons proposé une extension,
les grammaires attribuées dynamiques, qui élimine
cette contrainte PRJD96 . Dans ce projet, nous nous
proposons d'utiliser ces grammaires attribuées dynamiques pour traiter
des logiciels arbitraires. Les générateurs d'évaluateurs
pourront alors déterminer les flots de contrôle d'applications
générales, directement à partir de leur spécification
en grammaires attribuées. Pour cela, nous avons commencé
à définir et à implanter le langage CHOCOLAT.
Pour les systèmes de composants, cette vue des grammaires attribuées
nécessite de nouveaux traitements pour la composition et l'extension
de code, et il est nécessaire de développer des méthodes
modulaires et génériques adéquates. C'est ce que nous
avons déjà commencé à faire, par exemple avec
l'extraction de gênes et les formes normales Cor96.
Les systèmes Orientés Objet fournissent d'ores et déjà
une certaine réutilisabilité au programmeur, mais ces technologies
ont été récement critiquées à cause
de la faiblesse du degré de réutilisabilité. Un nouvel
espoir nous vient des systèmes de composants, dans lesquels
les objets sont considérés comme des composants pouvant être
associés de manière flexible. L'avantage de ces systèmes
est que les composants sont adaptés à leur contexte
lors de leur réutilisation, tandis que dans les systèmes
classiques, ils sont réutilisés tel quel. Cependant, cette
adaptation n'est pas aisée, et tout particulièrement lors
de la composition d'objets représentant du code. Comme le code final
serait calculé à partir de spécifications déclaratives,
une telle adaptation d'objets représentant du code serait rendue
possible en utilisant la composition des grammaires attribuées.
Nous pensons donc que la modularité et la généricité
offertes par les grammaires attribuées peuvent être utilisées
pour développer et étendre du code. Cela améliorerait
la réutilisabilité des spécifications, des composants,
et des compositions de composants, et fournirait une méthodologie
importante pour les futurs systèmes de composants.