Compilation et paradigmes de programmation
Ce thème de recherche a été mon premier centre d'intérêt puisque j'ai dés mon DEA, approfondi ma connaissance de la programmation par objets en général et du langage Eiffel en particulier, langage développé par Bertrand Meyer. Il s'agissait en effet de reprendre un travail déjà entamé pour l'implémentation en Eiffel d'un interprète du langage Eiffel.
Cet interprète devait permettre l'utilisation du code déjà compilé, pour une plus grande efficacité. Sans indication sur le format des fichiers générés par le seul compilateur Eiffel de l'époque (celui d'I.S.E.), un long et lourd travail de "reverse ingeneering" a été nécessaire.
Le thèse qui a suivi, Métacompilation et langages multiparadigmes, présente les deux aspects de mon travail.
Après avoir étudié différents paradigmes de programmation, impératif, fonctionnel, objet, logique, j'ai en effet examiné en détail leur combinaison au sein d'un seul et même langage, le langage Leda inventé par Tim. Budd de l'université d'Oregon. Son niveau de français n'ayant d'égal que mon niveau d'anglais, nos discussions furent looongues mais fructueuses.
Dans un second temps, j'ai ajouté au système Cigale, développé par l'équipe Langages du laboratoire I3S, les composants nécessaires à l'implémentation de ce type de langage.
Le système Cigale était en effet un système de métacompilation, développé en Pascal, offrant à travers une boîte à outils des facilités pour l'implémentation des langages impératifs. Le code produit par les outils était celui de la machine virtuelle EM, machine virtuelle du système A.C.K. développé alors par A. Tanembaum.
L'étude a donc permis :
- De vérifier que cette machine, destinée à l'origine aux seuls langages impératifs, permettait également l'implémentation d'autres types de langages.
- d'étudier les langages multiparadigmes et de les comparer à des environnements multiparadigmes.
Parallèlement, j'ai collaboré avec une autre personne sur la réécriture en C++ de la boîte à outils, Cigale.

