De nombreux langages de programmation (Java, C# ou encore JavaScript) s’exécutent à l’aide de machines virtuelles. Celles-ci sont de plus en plus performantes en termes de vitesse d’exécution et d’empreinte mémoire. Pour atteindre cet objectif, différentes techniques sont mises en œuvre. Partons à la découverte de la machine virtuelle de Pharo qui implémente ces multiples optimisations.
L’intérêt principal d’une machine virtuelle (VM) est d’abstraire l’application exécutée du matériel (architecture processeur) et du système d’exploitation. Pharo [1] étant basé sur une machine virtuelle, une application écrite dans ce langage s'exécute donc aussi bien sur un Raspberry Pi avec un processeur ARM que sur un ordinateur de bureau avec un processeur Intel. Pharo est un langage-objet inspiré et dérivé de Smalltalk, développé en open source (Licence MIT).
Dans cet article, nous allons étudier dans les moindres détails la VM de Pharo, dénommée Cog [2]. Vous allez comprendre comment une machine virtuelle comme celle de Java ou de JavaScript, réussit à exécuter du code avec des performances élevées. Après avoir rappelé quelques notions sur les machines virtuelles, nous détaillerons comment l’exécution du code est accélérée grâce à des techniques de compilation à la volée, puis nous nous concentrerons sur l'optimisation de la...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première