Je ne vois pas pourquoi le fait de rajouter des métadonnées fait d'un code compilé une VM.
Ben le langage expose une sémantique qui n'existe par réellement : il propose une vue virtuelle au programmeur pour lui offrir un service.
La conséquence peut être l'ajout d'information supplémentaire (le code compilé n'étant pas suffisant) pour rendre ce service à l'exécution.
Il n'y a aucun intermédiaire entre le code et la machine, contrairement à une VM.
GCC passe par une représentation intermédiaire, un truc de même niveau que le bytecode.
Ce que fait un compilateur C : compilation => représentation intermédiaire => code machine exécutable.
Ce que fait un compilateur C# compilation => représentation intermédiaire. Et le runtime : représentation intermédiaire => code machine exécutable.
Sachant qu'il est également possible de faire exactement comme en C, à savoir tout avant l'exécution, il ne faut pas voir dans la compilation la définition de VM.
Après on a peut-être une définition des machines virtuelles un peu différente, vu ton affirmation.
Très certainement.
[^] # Re: Pourquoi Mono ?
Posté par TImaniac (site web personnel) . En réponse au journal Utiliser Mono sans peur. Évalué à 2.
Ben le langage expose une sémantique qui n'existe par réellement : il propose une vue virtuelle au programmeur pour lui offrir un service.
La conséquence peut être l'ajout d'information supplémentaire (le code compilé n'étant pas suffisant) pour rendre ce service à l'exécution.
Il n'y a aucun intermédiaire entre le code et la machine, contrairement à une VM.
GCC passe par une représentation intermédiaire, un truc de même niveau que le bytecode.
Ce que fait un compilateur C : compilation => représentation intermédiaire => code machine exécutable.
Ce que fait un compilateur C# compilation => représentation intermédiaire. Et le runtime : représentation intermédiaire => code machine exécutable.
Sachant qu'il est également possible de faire exactement comme en C, à savoir tout avant l'exécution, il ne faut pas voir dans la compilation la définition de VM.
Après on a peut-être une définition des machines virtuelles un peu différente, vu ton affirmation.
Très certainement.