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

    FRANCE

    ALLEMAGNE

Responsable du projet

    Dr. Didier Parigot

    Prof. Dr. Gerhard Goos

Fonction - grade

    Chargé de recherche

    Professeur

Organisme de rattachement

    INRIA

    Université de Karlsruhe

Laboratoire

    Rocquencourt INRIA
    avant projet OSCAR

    Institut für Programm
    und Datenstrukturen

Nom du Directeur

    Laure REINHART

    Prof. Dr. Gerhard Goos

Adresse

    INRIA
    Domaine de Voluceau
    Rocquencourt B.P 105
    78153 Le Chesnay CEDEX
    France

    Universität Karlsruhe
    IPD
    Kaiserstrasse 12
    76128 Karlsruhe
    Allemagne

Telephone

    33-1-39-63-55-46

    +49 721 608 60 88

Telecopie

    33-1-39-63-58-84

    +49 721 69 14 62

E-mail

    Didier.Parigot@inria.fr

    ggoos@ipd.info.uni-karlsruhe.de

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.

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.
  • Identification des analyses nécessaires et définition de l'opérateur de composition de grammaires attribuées.
  • 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.