• [^] # Re: Surprise

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

    On pourrait aussi dire la meme chose pour un langage interprete
    Evidemment qu'au final c'est du code machine qui s'exécute !
    M'enfin faut arrêter, y'a 2 méthodes classiques pour y arriver : l'interprétation et la compilation. Ce sont 2 techniques bien distinctes, je vois pas pourquoi t'essai de les mélanger.

    Pour une implem vraiment bateau d'un langage interprete, c'est effectivement pas compile, mais quiconque de cense va implementer un cache pour pas reinterpreter la meme focntion en permanence
    Bah non, c'est comme ca qu'on marché pendant très longtemps les interpréteurs JavaScript dans les navigateurs. Jusqu'à l'arrivée (relativement récente) de la technique de JIT.

    Ce n'est absoluement pas le fait de mettre en cache qui permet de passer de l'interprétation à la compilation. Refais tes TP de fac bon sang :)

    Tres honnetement, ca me derangerais pas plus que ca, je trouve ca heretique de pouvoir executer du code qui vient de n'importe ou, mais ca reste un truc qui fait partie du langage.

    On est d'accord :)

    on genere du code machine pour l'executer, donc c'est compile un peu biaise, tu vas necessairement devoir generer du code machine a un moment ou un autre, sinon ton bout de code, il va pas te servir a grand chose.
    Bah non, surtout pas : dans l'interpréteur, le code machine il est déjà présent... dans l'interepréteur.
    C'est toute la différence avec la compilation dont le but est de traduire et de produire du nouveau code. C'est ce code qui est exécuté.

    Regarde les problèmes qu'il y a sur l'iPhone : faire un interpréteur, c'est possible car il n'y a pas de création de nouveau code, juste interprétation. Utiliser un moteur JIT c'est pas possible, parcque par nature (c'est un compilateur), il génère du code, et l'OS de l'iPhone refuse catégoriquement d'exécuter ces nouvelles instructions. D'où la technique AOT pour contourner.

    Je penses que t'as vraiment pas bien saisie la différence entre compilation et interprétation.

    Il voit mono comme non compile
    Non, il connaît juste pas Mono.

    - interprete
    - langage a VM
    - langage compile.

    Ridicule. Un langage est un langage, point.
    Beaucoup de langages peuvent se compiler et s'interpréter. La présence d'une VM est une problématique différente.
    Pour Lisaac, la VM c'est le langage C89, pour JScript.NET c'est le bytecode. Les 2 sont suffisament de haut niveau pour être portable.

    Faut arrêter de tordre la réalité dans tous les sens pour essayer de lui donner en partie raison : la compilation est un concept qui existe depuis un bon moment en informatique, et il s'oppose classiquement à l'interprétation. Ces sont 2 techniques totalement différentes.
    Les moteurs JIT n'efface en rien cette différence : ca reste avant tout des compilateurs car ils utilisent la technique de compilation et en aucune manière l'interprétation, ils sont juste conçus pour être très rapides afin bosser "en live".