• [^] # Re: Surprise

    Posté par (site web personnel) . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.

    c'est que dans la notion de machine virtuelle, il y a quand même notion d'une machine dynamique en quelque sorte, dans le sens ou elle "tourne" au dessus d'une machine réelle.

    Tu confonds VM et implémentation à l'aide d'un runtime+JIT (pour le côté dynamique).
    GCJ (pour Java) ou NGEN (pour .NET) montre clairement que ca n'a aucun rapport : ces 2 compilateurs proposent de compiler en langage natif avant exécution des programmes écrits en Java et .NET : le compilo tourne une seule fois, plus besoin d'en rajouter, c'est que du code natif qui s'exécute derrière. LLVM propose l'exercice inverse : un compilateur JIT pour le C. Comme quoi fondamentalement il n'y a pas de différence, tous les langages exposent une machine virtuelle, sauf les langages machines bien sûr, dont le rôle est justement d'exposer les instructions de la machine réelle.