Rubinius, une machine virtuelle pour Ruby inspirée de Smalltalk
Rubinius est une nouvelle machine virtuelle pour Ruby qui s’inspire fortement de celle de Smalltalk-80. Un compilateur lui-même écrit en Ruby converti le code Ruby en bytecode pour être exécuté ensuite sur la VM. Ruby suit donc la voie de Smalltalk : “ce qui ne peut pas être écrit en Ruby (ou en Smalltalk) doit être écrit en C”. Les librairies de base sont donc en cours de réécriture directement en Ruby. La machine virtuelle de Ruby est elle-même écrit dans un sous-ensemble du langage Ruby, appellé Garnet, qui peut être directement traduit en C. La même approche est utilisée avec Squeak, dont la machine virtuelle est écrit dans un sous-ensemble de Smalltalk, appellé Slang.
Pour en savoir plus, on consultera l’interview (partie 1, partie 2) de Evan Phoenix, l’un des développeurs de ce projet et les transparents d’une présentation récente sur Rubinius.