Non, ce que je voulais dire c'est que le problème général avec les optimisations globales c'est (par exemple) que tu peux avoir un programme qui tourne bien, qui est efficace parce que le compilateur a fait une optimisation donnée, et puis tu modifies un petit truc qui rend cette optimisation inapplicable, et les performances sont fortement dégradées sans que tu comprennes forcément d'où ça vient (en tant que programmeur je parle, je comprends bien que le comportement du compilateur lui est déterministe). C'est particulièrement sensible dans les langages fonctionnels, où le fait que tu modifies une variable ou pas va faire qu'elle est traitée différemment --- pour Lisaac, je suppose que ce problème précis ne se pose pas, mais je me demandais s'il y en avait d'autres.
C'est toujours une question délicate, le choix entre des optimisations globales ou locales. Personnellement, je préfère les secondes, parce que ça prémunit contre les surprises, et il n'y a pas forcément besoin d'avoir une connaissance approfondie du compilo pour écrire un code efficace (je pense à des langages à la ML où la phase de compilation fait parfois un peu magie noire). Mais c'est une question d'équilibre et les deux écoles existent, avec de bons arguments de chaque côté.
Re: Prêt à être utilisé par les masses?
Non, ce que je voulais dire c'est que le problème général avec les optimisations globales c'est (par exemple) que tu peux avoir un programme qui tourne bien, qui est efficace parce que le compilateur a fait une optimisation donnée, et puis tu modifies un petit truc qui rend cette optimisation inapplicable, et les performances sont fortement dégradées sans que tu comprennes forcément d'où ça vient (en tant que programmeur je parle, je comprends bien que le comportement du compilateur lui est déterministe). C'est particulièrement sensible dans les langages fonctionnels, où le fait que tu modifies une variable ou pas va faire qu'elle est traitée différemment --- pour Lisaac, je suppose que ce problème précis ne se pose pas, mais je me demandais s'il y en avait d'autres.
C'est toujours une question délicate, le choix entre des optimisations globales ou locales. Personnellement, je préfère les secondes, parce que ça prémunit contre les surprises, et il n'y a pas forcément besoin d'avoir une connaissance approfondie du compilo pour écrire un code efficace (je pense à des langages à la ML où la phase de compilation fait parfois un peu magie noire). Mais c'est une question d'équilibre et les deux écoles existent, avec de bons arguments de chaque côté.
Mr Lapinot - Electrons prisonniers (blog)
[ Répondre ]