Je défie quelque générateur de code que ce soit d'être aussi raisonné et efficace qu'un être humain en ce qui concerne l'optimisation du code final... Pourquoi pas un générateur de générateur de langage, tant qu'on y est!... Ce ne sont là que deux des raisons pour lesquelles je n'aime pas et n'apprécierai jamais les générateurs de code.
Dans un temps illimité, soit. Mais en temps limité, je ne me mesurerais pas à un compilo.
Vu la complexité du moindre CPU actuel (et c'est valable pour les MCU), il faut prendre en compte tellement de paramètres (temps d'exécution d'une séquence en fonction du choix des registres, remplissage du cache, et sûrement d'autres trucs que j'ignore) que la machine fait finalement du bon boulot.
J'ai pu le constater sur avr-gcc en voulant réécrire du code en assembleur. Les choix du compilo (qui en plus n'est pas le plus abouti) ne sont pas tous idiots, loin de là, mais ça ne saute pas au yeux.
Maintenant, en ce qui concerne l'efficacité des langages évolués, je pense qu'au contraire, ils permettent au compilo de faire de meilleurs choix car le code fourni par le programmeur est alors plus proche de la description du problème et s'éloigne de la fourniture d'une solution qui peut orienter le compilo vers une direction moins optimale. Un peu comme ce que je disais au dessus, en fait.
Pour en revenir à vala, sans le connaître, je l'imagine comme un préprocesseur très évolué. Donc pas de perte de performance.
Je crois me souvenir que l'élaboration de C++ est passée par un préprocesseur du même genre, qui gobait du « C with classes » pour en faire du C K&R. Je peux me tromper !
« J'ai pas Word, j'ai pas Windows, et j'ai pas la télé ! »
[^] # Re: je suis pas convaincue
Posté par Christophe Duparquet (site web personnel) . En réponse à la dépêche Sortie de Vala 0.7.6. Évalué à 8.
Dans un temps illimité, soit. Mais en temps limité, je ne me mesurerais pas à un compilo.
Vu la complexité du moindre CPU actuel (et c'est valable pour les MCU), il faut prendre en compte tellement de paramètres (temps d'exécution d'une séquence en fonction du choix des registres, remplissage du cache, et sûrement d'autres trucs que j'ignore) que la machine fait finalement du bon boulot.
J'ai pu le constater sur avr-gcc en voulant réécrire du code en assembleur. Les choix du compilo (qui en plus n'est pas le plus abouti) ne sont pas tous idiots, loin de là, mais ça ne saute pas au yeux.
Maintenant, en ce qui concerne l'efficacité des langages évolués, je pense qu'au contraire, ils permettent au compilo de faire de meilleurs choix car le code fourni par le programmeur est alors plus proche de la description du problème et s'éloigne de la fourniture d'une solution qui peut orienter le compilo vers une direction moins optimale. Un peu comme ce que je disais au dessus, en fait.
Pour en revenir à vala, sans le connaître, je l'imagine comme un préprocesseur très évolué. Donc pas de perte de performance.
Je crois me souvenir que l'élaboration de C++ est passée par un préprocesseur du même genre, qui gobait du « C with classes » pour en faire du C K&R. Je peux me tromper !
« J'ai pas Word, j'ai pas Windows, et j'ai pas la télé ! »