
Envoyé par
Nicam
@Gugelhupf : C'était facile, je le reconnais.
Mais c'est un peu plus complexe que cela malgré tout. On compare la CLR à une VM car l'un de ses rôle est de convertir des codes en differents langages (C#, VB, etc ...) en langage intermédiaire : le CIL (un peu comme Java et son bytecode). Sauf qu'ensuite, avant exécution, ce code intermédiaire est compilé en langage machine. Alors que Java interprète son bytecode, la CLR le compile en langage machine.
On est plus du tout en condition de VM comme en Java. A l’exécution, la CLR gère l’exécution du code (accès mémoire, sécurité, etc ...) mais n’agis pas comme un VM qui est étanche. Le code exécute est bien spécifique à l'os et à la machine qui l’exécute. C'est pour cela que je refuse d'appeler ca une VM.
La CLR n'abstrait absolument pas les ressource physiques de la machine exécutante. Elle est là pour contrôler l’exécution, via le JIT.
Partager