81 votes

C est-il une source ouverte?

C'est probablement une question stupide, mais je m'interroge depuis un moment. Est-ce que C (ou tout autre langage de bas niveau, d'ailleurs) a même la source, ou le compilateur est-il la partie qui "fait tout le travail", y compris l'analyse? Si tel est le cas, différents compilateurs ne pourraient-ils pas utiliser différents dialectes C? Où le facteur stdlib intervient-il? J'aimerais vraiment savoir comment cela fonctionne.

140voto

Teekin Points 4544

Le langage C n'est pas un logiciel mais une norme définie, de sorte que l'un ne dirais pas que c'est open-source, mais plutôt que c'est un standard ouvert.

Il y a une foule de différents compilateurs de C cependant, et beaucoup de ceux qui sont en effet open-source. L'exemple le plus notable est GCC le compilateur C, qui est de tous les termes de la Licence Publique Générale de GNU (GPL), une licence open-source.

Il y a plus d'options. Watcom est open-source, par exemple. Il n'y a pas de pénurie de l'open-source les compilateurs C, mais sans doute le plus répandu, au moins dans le non-monde Windows, est GCC.

Pour Windows, votre meilleur pari est probablement Watcom ou GCC en utilisant Cygwin ou MinGW.

30voto

SLaks Points 391154

C est une norme qui spécifie comment les compilateurs C doivent générer des programmes.
C lui-même n’a pas de code source, tout comme une note de musique n’a pas de plastique.

Certains compilateurs C, tels que GCC, sont open source.

10voto

nesv Points 579

C est juste une langue, et une standardisée à cela aussi. C'est plutôt le compilateur qui "fait tout le travail". Différents compilateurs ont eu différents dialectes; Avant la norme C99 ANSI, vous aviez des choses comme Borland C et d’autres compilateurs concurrents qui implémentaient le langage C de façon fantastique.

stdlib est simplement une collection convenue de bibliothèques standard devant être présentes dans toute implémentation ANSI C.

4voto

Jesse Cohen Points 2663

À ajouter sur les autres réponses:

Concernant les différents dialectes -- il y a quelques fonctionnalités supplémentaires ajoutées à C qui sont spécifiques de compilateur. Vous pouvez fournir l'option de ligne de commande -std=... de gcc pour spécifier le C standard que vous souhaitez utiliser, chacun a de légères variantes/ajouts à la syntaxe, la plus commune est sans doute c99.

Chaque compilateur tend à mettre en œuvre quelques extras, par exemple, typeof() n'est pas dans la norme et donc les compilateurs n'ont pas à mettre en œuvre mais il est néanmoins utile et la plupart des compilateurs fournir. Voici une liste de gcc C extensions

Le stdlib est un ensemble de fonctions spécifiées dans la norme. Un peu comme les compilateurs, les stdlib peut avoir différentes implémentations. L'implémentation GNU est open source, comme c'est gcc, mais il y a d'autres compilateurs et peut être d'autres implémentations de stdlib qui sont à code source fermé.

3voto

Mercfh Points 1536

Le compilateur déterminera toutes les correspondances de C à Assembly, etc., mais pour ce qui est de le posséder ..... personne ne possède vraiment C, mais l'ANSI / ISO détermine les normes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X