
Thierry Géraud and Alexandre Duret-Lutz.
Composants génériques de calcul scientifique.
EPITA Research and Development Laboratory, Technical Report 9901, Paris, March 1999. In French
Dans le cadre de l'écriture en C++ d'une bibliothèque de traitements
d'images et d'un atelier de programmation par composants d'une chaîne
de traitements, nous nous sommes fixés deux objectifs principaux :
rendre les traitements génériques vis-à-vis du type de ses entrées
sans entraîner de surcoût significatif à l'exécution, et pouvoir
exécuter un traitement lorsqu'il a été introduit ultérieurement à la
compilation de l'atelier. Le premier objectif est atteint à l'aide de
programmation générique et de la traduction en polymorphisme statique
de certains idiomes (design patterns) définis pour le polymorphisme
dynamique. La problématique du second objectif est double. Tout
d'abord, nous devions réaliser la mise en correspondance d'un
traitement dont les entrées-sorties sont des types abstraits et de la
routine générique, chargée du traitement, dont les paramètres sont des
types concrets ; ensuite, nous devions pouvoir compiler et lier de
nouveaux traitements à la volée, lors de l'exécution de
l'atelier. Pour atteindre ce double objectif, nous utilisons de la
programmation générative et nous pratiquons l'instanciation paresseuse
(lazy) de code générique.
to top