next up previous
Next: Utilisations et applications Up: Le programme scientifique de Previous: Les grammaires attribuées

Les grammaires attribuées et la programmation orientée-objet

 

Dans les grammaires attribuées il existe un ensemble [KP87,LSK90,SV90,TCl90,Hed91,Kos91,Gro92,GK93] de travaux portant sur ce thème (orientée-objet), mais l'approche que je souhaite suivre est relativement différente dans le sens que je recherche une vraie intégration de la notation grammaire attribuée dans la programmation orientée-objet. Je vais énumérer un ensemble d'arguments qui, depuis quelques temps, me pousse fortement à envisager de concevoir une forme externe (langage d'entrée) aux grammaires attribuées, la plus proche possible d'une écriture par programmation orientée-objet (en particulier proche de langage JAVA ).

Au cours du développement de FNC-2 , écriture de grammaire attribuée de taille raisonnable, je me suis rendu-compte que la programmation par grammaire attribuée est une forme de programmation par objets (par attributs) graçe à ses qualités suivantes:

Dans [JPJ90], nous avons défendu cette idée de développement incrémental, par touches successives (attributs) qui permet de faire évoluer facilement une application spécifiée en grammaire attribuée.

Avant de poursuivre, je vais énumérer les avantages d'une génération de code (pour FNC-2 ) vers le langage JAVA  par rapport à une génération en C ou à C++:

Pour conclure, je pense que les arguments de l'approche de Philip WADLER dans [OW97] sont certainement très proche des miens, surtout dans le sens qu'il est nécessaire pour une meilleure diffusions de nos idées et concepts de les incorporer dans des langages de grandes audience comme JAVA .

L'un de nos plus importants arguments, est que notre notion de généricité structurelle (cf la section 2.5) trouvera dans la programmation orientée-objet, un autre champ d'application. J'ai commencé à investiguer dans ce sens, et je suis de plus en plus convaincu que cette voie de recherche est très porteuse. En effet, je ne suis rendu compte que cette notion de réutilisation (Adaptative Programming [Lie92,LL95], Reflection [CM96]) était une approche très nouvelle dans le monde des objets. En effet la réutilisation par le mécanisme d'héritage, à travers la hiérarchie des classes, est parfois insuffisante.

L'une des premières étapes que l'on envisage, sera de définir une réelle intégration (langage) de la notation par grammaire attribuée au-dessus d'un langage objet avec la même approche que PIZZA [OW97]. Nous avons démomé ce langage CHOCOLAT. Actuellement, avec Gilles ROUSSEL et l'équipe de Reinhard WILHELM nous avons soumis une pré-proposition pour un projet VISAGE: Visualization and Animation Generation for Educational Sofware. Ce projet propose de construire un support Multimédia pour l'enseignement d'un cours sur les langages de programmation et compilation, basé essentiellement sur le livre [WM94,WM95] de Reinhard WILHELM. Ainsi l'une des premières applications de CHOCOLAT sera d'être le prototype (générateur d'évaluateur d'attributs) pour ce projet VISAGE.



next up previous
Next: Utilisations et applications Up: Le programme scientifique de Previous: Les grammaires attribuées



Didier Parigot
Mon Apr 7 10:23:43 MET DST 1997