Avec l'avènement du Web et du besoin de protéger les utilisateurs contre des logiciels malicieux, les machines virtuelles langage, comme les machines virtuelles Java et .Net, sont devenues la norme pour exécuter des programmes. Ces dernières années, je me suis principalement intéressé à trois aspects des machines virtuelles : leur design, leur sureté de fonctionnement, et leur performance sur les architectures multicoeur. Ma première contribution est VMKit, une librairie qui fournit les composants les plus complexes d'une machine virtuelle pour faciliter le développement de nouvelles machines virtuelles performantes. Ma seconde contribution est I-JVM, une machine virtuelle Java qui élimine les 8 vulnerabilités connues qu'un composant de la plateforme OSGi était capable d'exploiter. Ma troisième contribution vise à améliorer les performances des machines virtuelles sur les architectures multicoeur en se focalisant sur les verrous et les ramasse-miettes : avec un mécanisme de verrouillage qui surpasse tous les autres mécanismes connus lorsque le nombre de coeurs augmente, et avec avec une étude des goulots d'étranglement des ramasse-miettes sur les architecture multicoeur. Ces travaux ont été menés avec sept étudiants en thèse, deux d'entre eux ayant déjà soutenu. Basé sur ses contributions, dans mes futurs travaux, je propose d'explorer le design de la prochaine génération de machines virtuelles qui va devoir adapter l'application à la volée pour l'architecture multicoeur réelle sur laquelle elle s'exécute.