• # Optimiser un langage minimaliste cai mieux..

    Posté par (site web personnel) . En réponse à la dépêche 23 mars: Conférence au LORIA sur Lisaac, un nouveau langage. Évalué à 2.

    Je répond ici à plusieurs posts, de TImaniac en particulier, argumentant qu'un compilateur se doit de posséder des constructions lourdes (des if, des while, builtin la grammaire) pour bien optimiser.

    J'ai demandé au maîître de m'expliquer pourquoi ce point de vue est plutôt faux.
    Elle est fausse pour des primitives de bas niveau du genre if, while, traitement des nombres, etc...
    Elle peut être vrai pour des primitives très haut niveau du genre "quel que soit x dans l'ensemble".

    C'est faux pour les if, while car il arrive souvent que dans le code il y ait des if caché, de s while caché, etc...

    Une résolution dynamique classique, peut, par envoi de message être un if caché.

    Il est donc beaucoup plus intelligent de les rendre équivalent, et de les optimiser de la même façon.

    Lorsqu'on optimise le while comme une récurcivité terminale, on optimise toutes les récurcivités terminales, on repère d'autres structures similaires qui n'auraient pas été vu.

    Il faut bien voir que le compilateur Lisaac passe un certains temps à inliner tout ce qui est possible d'inliner, de par son algorithme d'analyse de flot, donc on retombe facilement sur des if, des while cachés, etc...

    "Les optimisations ne sont plus liées à une syntaxe, mais à la sémantique du code...
    C'est justement bien plus profond !"

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