Formation
J'ai fait toutes mes études au sein de l'Université de Nice-Sophia Antipolis:
- 1991 à 1995 :
- Thèse, mention Très bien, félicitations du jury à titre informel
- 1990 à 1991 :
- D.E.A., mention Bien
- Magistère I.S.I.
- 1989 à 1990 :
- 1988 à 1989 :
- 1986 à 1988 :
- DEUG M.P.M. (Math - Physique - Mécanique)
- 1985 à 1986 :
Thèse
Je l'ai effectuée au sein de l'équipe Langages sous la directiondu Professeur Olivier Lecarme.
Son titre, "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ée 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.
D.E.A.
J'ai plus particulièrement suivi l'option "Programmation Fondamentale et Génie Logiciel de ce D.E.A.
Un des cours les plus intéressants a sans nul doute été celui portant sur la comparaison de différents langages de programmation, de différents paradigmes. Ce cours était sanctionné par un projet à réaliser par groupe ou il s'agissait de résoudre un même problème à l'aide de langages différents. Dans mon cas, l'objectif était de programmer la résolution des problèmes du type SEND+MORE=MONEY, en Scheme, Prolog, Eiffel et Icon, et de commenter les avantages et inconvénients de chacun de ces langages. Il est amusant de noter à cette occasion que le langage Prolog, grand vainqueur à priori pour ce type de problème, n'a pas semblé le plus simple d'utilisation : autant résoudre un problème particulier était trivial, autant offrir un programme pour la résolution de tous les problèmes de ce type a semblé complexe.
Mon stage de D.E.A. enfin m'a permis d'approfondir 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.
Maîtrise
Là encore, 5 modules dont un constitué d'un seul et unique projet, en groupe de 3 à 6 étudiants.
J'ai pour ma part participé au développement d'un mode Emacs pour le langage Eiffel, qui a par la suite été distribué sur les groupes de discussion (newsgroup pour les anglicistes convaincus).
Licence
En 1988, cette licence d'informatique pure venait de réouvrir.
Elle contenait 5 modules dont de nombreux parlaient de programmation (impérative, objet, fonctionnelle ou logique) et de compilation.
DEUG
Deug A, option M.P.M. (Math - Physique - Mécanique) contenait mathématiques, physiques (et travaux pratiques de physique...) et chimie.
De manière moins traditionnelle, l'histoire et la philosophie des sciences était présente en tant qu'option.
Bac S
Rien de bien intéressant à propos ce bac scientifique obtenu avec la mention AB. Une seule particularité, la présence du latin et du grec classique en option.

