Sujet de thèse en Informatique --- rentrée 2011
Etude, conception et réalisation d'une machine virtuelle en héritage multiple

Encadrant : Roland Ducournau

Lieu : LIRMM/INFO/MaREL

Ce sujet fait partie des sujets prioritaires pour une allocation ministérielle en 2012.

Présentation du problème et  Objectif de la thèse

Dans le cadre des recherches sur les techniques d'implémentations des langages à objets et le langage PRM (thèses de Jean Privat et de Floréal Morandat) nous avons développé une technique d'implémentation basée sur le hachage parfait [2,5].
Les tests réalisés sur le compilateur PRM montrent que cette technique donne de très bon résultats pour le test de sous-typage et l'invocation de méthodes [3].
Comme elle est aussi compatible avec l'hypothèse du monde ouvert et le chargement dynamique, c'est une technique qui devrait donner de bons résultats pour l'implémentation des interfaces en Java, mais son usage dans la machine virtuelle d'un langage en héritage multiple est plus problématique. Cependant une première simulation [6] a donné des résultats assez satisfaisants.

L'objectif de cette thèse est de concevoir un protocole de compilation-recompilation pour un compilateur JIT (just in time), et d'implémenter une machine virtuelle pour un langage en héritage multiple (PRM, ou un avatar de PRM), utilisant le hachage parfait et ce protocole de compilation.

La question de ce protocole de compilation-recompilation est elle-même nouvelle : les compilateurs en utilisent un, forcément, mais il n'est jamais explicité ce qui fait des systèmes existants des usines à gaz.

Le sujet est ambitieux, mais l'expérience des 2 thèses précédentes montre diverses étapes sont identifiées :

Variantes

Ce premier sujet est la suite d'un premier sujet de stage de Master dans un contexte de typage statique et d'héritage multiple.
   
Une variante est possible dans le contexte du langage Smalltalk, c'est-à-dire en héritage simple et typage dynamique : c'est la suite d'une autre sujet de stage de Master.

Le choix dépendra des gouts et compétences du candidat.

Références du projet PRM (sélection)

  1. R. Ducournau.
    Implementing statically typed object-oriented programming languages.
    ACM Computing Surveys, 43 (4), to appear in 2011, (pdf file)

  2. R. Ducournau.
    Perfect hashing as an almost perfect subtype test.
    ACM Transactions on Programming Languages and Systems,  30(6), 2008 (56p) (pdf file, doi)

  3. R. Ducournau, F. Morandat, J. Privat.
    Empirical assessment of object-oriented implementations with multiple inheritance and static typing.
    In Proc. OOPSLA'09. ACM Press, 2009.

  4. R. Ducournau, J. Privat.
    Meta-Modeling Semantics of Multiple Inheritance
    Science of Computing Programming, 40 pages (in press, pdf file)
    doi: 10.1016/j.scico.2010.10.006

  5. R. Ducournau, F. Morandat.
    Perfect class hashing and numbering for object-oriented implementation
    Software Practice & Experience, 32 pages, John Wiley & Sons, 2010 (in press)
    doi: 10.1002/spe.1024

  6. R. Ducournau, F. Morandat.
    Towards a full multiple inheritance virtual machine.
    MASPEGHI/ICOOOLPS workshop at ECOOP'2010. (slides .pdf files)
    une version longue est en cours de soumission

Voir aussi le site du langage PRM.