next up previous
Next: Relation avec la Up: Travaux Théoriques Previous: Les Grammaire Attribuée

Mises à jour destructives dans les GA

 

avec ÉTIENNE DURIS (en DEA [Dur94], puis thèse en cours) Une GA est une spécification déclarative d'un calcul sur un arbre qui peut être considérée comme un cas particulier de programme applicatif ou fonctionnel. Le générateur d'évaluateurs analyse la partie syntaxique de la GA et, par souci d'efficacité, la transforme en un programme impératif effectuant des effets de bord. Cependant, l'analyse des fonctions sémantiques n'est pas aussi poussée. En particulier, sous certaines conditions de typage, une règle sémantique , où f est une fonction de mise à jour , peut être traduite par l'affectation , grâce aux analyses de durée de vie des attributs (cf. la section 2.5), qui conserve entre autres son caractère applicatif. Pour augmenter l'efficacité, on voudrait remplacer cette affectation par l'instruction ; , où la procédure P est l'équivalent destructif de F. Pour cela, il faut d'une part déterminer les conditions dans lesquelles cette transformation est légitime et, d'autre part, pouvoir construire automatiquement P à partir de la définition de f. Nous avons étudié et résolu ces deux problèmes dans le cas où f est définie par une grammaire attribuée [Dur94,DPJ95] . Cependant notre algorithme déterminant la légalité de la transformation, qui repose sur la possibilité que l'ancienne valeur de v soit partagée par une valeur encore active, est assez pessimiste (bien que parfaitement sûr) et peut être amélioré.



Didier Parigot
Mon Apr 7 11:02:46 MET DST 1997