• [^] # Re: Surprise

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

    Donc pourquoi "précompilation" ? c'est un mystère pour moi, puisqu'il n'y a pas besoin de "postcompilation" dans ce cas de figure.
    Vi c'est clairement un abus de langage, c'est pour exprimer le fait de compiler entièrement et de manière statique avant de demander l'exécution du programme. Bref c'est de la compilation classique, par opposition à la compilation JIT qui a des particularités du fait des contraintes dynamiques qu'elle implique (même si la définition de compilation reste valable).

    Note d'ailleurs qu'ils citent LLVM comme VM, mais pas gcc, alors que la seule différence fondamentale entre les deux à ma connaissance est la capacité de faire du jit.
    LLVM ne fait que s'appuyer sur la VM interne de GCC. GCC n'est pas cité car son objectif premier n'est pas d'exposer sa VM mais de proposer des outils de compilation au développeur.
    LLVM tire parti de la VM interne de GCC et de proposer son propre backend qui a beaucoup plus de possibilités.

    La VM n'exécute plus rien, c'est la machine réelle qui le fait. Donc à mon avis on sort du cadre de cette définition.
    C'est pour ça que ma définition marche très bien : la VM n'exécute rien, c'est un modèle virtuel pour les outils du développeurs. Après quelque soit la technique d'exécution derrière, ma définition marche toujours. Avec ta définition, un coup la VM existe, un coup elle existe plus, tout celà à cause d'une technique particulière d'exécution.
    D'ailleur si on suit ton raisonnement, même sans "pré-compilation statique", un moteur JIT traduit toujours en code natif avant d'exécuter, la VM n'existe donc toujours jamais avec toi :)