• [^] # Re: Inutile

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Sortie de TOM 2.3. Évalué à 8.

    Donc pour toi le C est une sorte de meta-langage d'assembleur ?

    Beaucoup de compilo performant sortent du C, c'est le cas de OCaml, et SmartEiffel par exemple.

    La raison à cela est que les optimisations réalisé par le compilateur C et Lisaac sont totalement indépendantes. Du coté C on s'occupe des spécificité des processeurs, utilisation correcte des registres etc Du coté du compilo Lisaac (ou n'importe quel autre langage au niveau comme eiffel ou caml) on fait des optimisations du style traitement du la récursion terminale, gestion du polymorphisme. Ce n'est pas du tout le même travail.

    L'autre chose a comprendre est que les compilateurs C ne peuvent pas faire ce genre de choses haut niveau car le langage n'est pas prévu pour. En C ou en C++ on est sensé gérer à la main les optimisations de haut niveau comme l'inlining en C++ ou décider de ne pas mettre un méthode virtual en C++ ou l'utilisation fine de pointeurs en C. A cause de ca le compilateur n'a pas la lattitude de faire des optimisation il doit suivre exactement les instructions du programmeur sinon le programme ne réalisera pas les choses de la façon exacte qui a été demandé et cela le fera planter.