Oui, c'est rigolo. Exactement comme une VM Java ou C#.
rataiii
En ce qui concerne la VM de Mono/C#, elle commence par compiler en code natif le bytecode (mécanisme JIT et AOT)
Mono est d'ailleur livré avec un interprêteur et un compilateur, le premier ayant l'avantage de tourner sur plus de plateformes, le 2ème étant beaucoup plus rapide mais limité à certaines plateformes matérielles. A ce compte-là, ton processeur interprète aussi les instructions qu'on lui envoie
Dans tous les cas il y a une grosse différence entre l'interprété et la compilation du bytecode, dans un cas le mécanisme d'interprétation se situe au niveau de la VM, c'est du logiciel qui interprête, dans l'autre cas c'est le proc, du matos qui interprête si tu veux : et y'a d'énormes différences de perfs. Donc ce n'est pas un troll du tout.
N'importe quoi. Les vérifications et optimisations peuvent être faites lors de l'exécution, il n'y a pas que la compilation dans la vie.
Tu comprends rien à ce que je veux dire. Evidemment que ca peut être fait à l'exécution, mais question perf c'est toujours mieux d'optimiser AVANT l'exécution, et c'est toujours beaucoup mieux d'avoir une vérification statique à la compile qu'à la compile, parcque en général c'est pas le même qui développe et qui exécute.
La VM a bien assez à faire pour compiler en code natif et optimiser pour le proc en dessous, si en plus faut qu'elle se farcisse une vérification de type à tout bout de champ tout en cherchant à optimiser en conséquence, voilà quoi.
Faut chercher à faire le maximum de chose en amont, pour se bouffer moins d'erreur à l'exécution, et pour laisser faire à la VM les optimisations qui ne peuvent être faites qu'à l'exécution.
[^] # Re: Python
Posté par TImaniac (site web personnel) . En réponse à la dépêche Interview de Miguel de Icaza par O'reilly. Évalué à 2.
rataiii
En ce qui concerne la VM de Mono/C#, elle commence par compiler en code natif le bytecode (mécanisme JIT et AOT)
Mono est d'ailleur livré avec un interprêteur et un compilateur, le premier ayant l'avantage de tourner sur plus de plateformes, le 2ème étant beaucoup plus rapide mais limité à certaines plateformes matérielles.
A ce compte-là, ton processeur interprète aussi les instructions qu'on lui envoie
Dans tous les cas il y a une grosse différence entre l'interprété et la compilation du bytecode, dans un cas le mécanisme d'interprétation se situe au niveau de la VM, c'est du logiciel qui interprête, dans l'autre cas c'est le proc, du matos qui interprête si tu veux : et y'a d'énormes différences de perfs. Donc ce n'est pas un troll du tout.
N'importe quoi. Les vérifications et optimisations peuvent être faites lors de l'exécution, il n'y a pas que la compilation dans la vie.
Tu comprends rien à ce que je veux dire. Evidemment que ca peut être fait à l'exécution, mais question perf c'est toujours mieux d'optimiser AVANT l'exécution, et c'est toujours beaucoup mieux d'avoir une vérification statique à la compile qu'à la compile, parcque en général c'est pas le même qui développe et qui exécute.
La VM a bien assez à faire pour compiler en code natif et optimiser pour le proc en dessous, si en plus faut qu'elle se farcisse une vérification de type à tout bout de champ tout en cherchant à optimiser en conséquence, voilà quoi.
Faut chercher à faire le maximum de chose en amont, pour se bouffer moins d'erreur à l'exécution, et pour laisser faire à la VM les optimisations qui ne peuvent être faites qu'à l'exécution.