Étapes de compilation et d’édition des liens en C
3. La machine virtuelle
Il existe une étape intermédiaire entre l’interprété et le compilé: la machine virtuelle applicative. La machine virtuelle
est un programme, généralement un interpréteur, qui permet d’isoler l’application qu’il doit faire tourner du matériel et
même du système d’exploitation. Le programme n’a théoriquement aucun accès aux spécificités du matériel, l’ensemble
de ses besoins lui étant fourni par la machine vituelle. Ainsi, tout programme conçu pour cette machine virtuelle pourra
fonctionner sur n’importe quel ordinateur, du moment que la dite machine virtuelle existe pour cet ordinateur. C’est en
quelque sorte une couche d’abstraction ultime. Généralement, le programme fonctionnant depuis la machine virtuelle a
déjà subi une première phase de compilation pour le transformer non pas en langage machine propre à l’ordinateur,
mais dans un langage "machine virtuelle" pour ainsi dire, que l’on nomme bytecode. Ce bytecode pourra être
interprété par la machine virtuelle, ou plutôt, et ceci de plus en plus régulièrement, compilé à la volée juste au moment
de son utilisation (technologie JIT, Just in Time).
Ainsi dans certaines circonstances le programme fonctionne presque aussi vite qu’un programme compilé pour une
machine cible ! Un exemple de langage utilisant une machine virtuelle est Java.
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
18
3. La machine virtuelle
Il existe une étape intermédiaire entre l’interprété et le compilé: la machine virtuelle applicative. La machine virtuelle
est un programme, généralement un interpréteur, qui permet d’isoler l’application qu’il doit faire tourner du matériel et
même du système d’exploitation. Le programme n’a théoriquement aucun accès aux spécificités du matériel, l’ensemble
de ses besoins lui étant fourni par la machine vituelle. Ainsi, tout programme conçu pour cette machine virtuelle pourra
fonctionner sur n’importe quel ordinateur, du moment que la dite machine virtuelle existe pour cet ordinateur. C’est en
quelque sorte une couche d’abstraction ultime. Généralement, le programme fonctionnant depuis la machine virtuelle a
déjà subi une première phase de compilation pour le transformer non pas en langage machine propre à l’ordinateur,
mais dans un langage "machine virtuelle" pour ainsi dire, que l’on nomme bytecode. Ce bytecode pourra être
interprété par la machine virtuelle, ou plutôt, et ceci de plus en plus régulièrement, compilé à la volée juste au moment
de son utilisation (technologie JIT, Just in Time).
Ainsi dans certaines circonstances le programme fonctionne presque aussi vite qu’un programme compilé pour une
machine cible ! Un exemple de langage utilisant une machine virtuelle est Java.
- 4 -
© ENI Editions - All rigths reserved - Jonifar lina
18
