Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pourquoi ISO C++ et GCC sont 2 entités distinctes?

21 octobre 2023 à 17:29:07

Salut tout le monde !

Question de noob peut-être... mais je me demande pourquoi les gens qui définissent le C++ (aka l'ISO C++) et les gens qui codent les compilateurs ne sont pas tout simplement les mêmes ?

Je ne vois pas comment l'un peut exister sans l'autre... Si l'ISO C++ n'a pas de compilateur, son langage n'a pas lieu d'être... En plus, imaginer un langage sans avoir pour base ce qui est techniquement possible me paraît impossible... Quelqu'un de l'ISO C++ pourrait imaginer une pratique de codage mais qui derrière serait impossible à réaliser techniquement ou pas optimisée...

Et pour les développeurs de compilateurs c'est le même problème en inversé : sans langage de programmation à compiler, pas de compilateur.

Il y a un truc que je dois pas piger sur l'organisation du développement du C++

-
Edité par ThomasAirain 21 octobre 2023 à 19:10:28

  • Partager sur Facebook
  • Partager sur Twitter
21 octobre 2023 à 19:27:51

"qui de la poule ou l'oeuf est arrivé en premier."

Et bien c'est le compilateur, mais le premier compilateur ne suivait que les règles que son concepteur s'était données.

Puis d'autres compilateurs sont arrivés tout en essayant de copier le premier et en apportant leur propre extensions au langage.

Mais pour pas que ça deviennent le foutoir, un comité c'est réuni pour fixer des règles communes.

Et les compilateurs on évolué pour tendre vers l'application de ces règles et évoluer pour appliquer les règles des nouvelles version du langage.  

  • Partager sur Facebook
  • Partager sur Twitter
...
21 octobre 2023 à 20:33:01

ThomasAirain a écrit:

Question de noob peut-être... mais je me demande pourquoi les gens qui définissent le C++ (aka l'ISO C++) et les gens qui codent les compilateurs ne sont pas tout simplement les mêmes ?

Deja, parce que c'est pas le meme boulot de connaitre un langage (les utilisateurs) et écrire les compilateurs (= un outil qui implémente des règles syntaxiques, génère des langages intermédiaires ou bas niveau, réalise des implémentation, etc).

La grande majorité des devs, qui utilisent les langages de programmation au jour le jour et connaissent le mieux les langages, sont incapables d'écrire un compilateur.

Et même, les devs n'ont pas tous la même connaissance du langage, et les devs de compilateurs n'ont pas la même connaissance du dev des outils. C'est l'ensemble des connaissances regroupées qui est nécessaire pour bosser sur un langage.

Certains langages ont ou ont eu un fonctionnement comme ça, où le vendeur des outils décidaient aussi de la spécification du langage, mais c'est pas forcément optimum pour les devs et la qualité du langage.

La seule particularité du C++ (et quelques langages, comme le C) est que cela passe par un système de standardisation internationale. Mais a part ce point, beaucoup de langage ont un fonctionnement séparé entre ceux qui font les outils et ceux qui font les spécifications du langage.

  • Partager sur Facebook
  • Partager sur Twitter
22 octobre 2023 à 8:11:53

Le groupe de travail wg21 qui s'occupe de C++ contient des représentants de nombreuses boîtes, des labos etc. Voir composition du comité

https://isocpp.org/std/the-committee

  • Partager sur Facebook
  • Partager sur Twitter