• [^] # Re: Surprise

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

    Bon, je crois que vous emmêlez tous les pinceaux là.

    1) Compiler, qu'est-ce que ça veut dire ?
    Wikipedia (en) l'explique très bien :
    A compiler is a computer program (or set of programs) that transforms source code written in a computer language (the source language) into another computer language (the target language, often having a binary form known as object code).
    et se schéma explique le reste http://en.wikipedia.org/wiki/File:Compiler.svg

    http://en.wikipedia.org/wiki/Compiler

    Donc js Et Lisaac ont leur compilateur.
    Mais il ne font pas la même chose.

    2)Un compilateur qui fait de la JIT, se contente de compiler le code tel qu'il est. Pour vous donner une idée à quel point cet idiome est respecté, ya même la notion de classe et d'instance de classe dans le langage de la JVM.

    Trace Tree et tout ces trucs sont pareils http://en.wikipedia.org/wiki/Trace_tree
    ils prennent du code compilé avec très très peu d'optimisation, et regardent en temps réel ce qui peut être optimisé.
    C'est le concept de la JIT, qui a été inventé par les créateur de Self.


    Lisaac lui, crache certes du C. Mais ce C sera compilé tel quel par GCC, et sera transformé tel quel modulo les optimisations standard que propose GCC à tout code C et sur lequel le compilateur Lisaac compte en essayant de llui écrire (à GCC) le code au mieux afin qu'il détecte facilement ses cas d'optimisations.
    Le binaire ne bougera jamais, il n'y a jamais d'analyse à la volée du code ou autres choses de ce genre.

    Lisaac effectue une analyse de flot complète du code, en éliminant le code mort du programme (c'est à dire le code mort pour ce programme, en prenant son point d'entré), une détection de type draconienne (et donc les appels sur NULL), plein de patterns d'optimisation que Nicolas vous expliquerai mieux.

    Bref, les deux se compile, mais compiler du Lisaac de cette façon, c'est à dire avec de l'analyse de flot, c'est la première fois qu'on le fait.

    Il n'y a pas de VM, et donc le code peut être exécuté sur une machine sans OS.C'est pour ça qu'il a été conçu à la base

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker