Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Le norme du langage C n'est pas publique
Envoyé par: YuGiOhJCJ

Bonjour,
je remarque aujourd'hui que le langage de programmation C est normalisé par l'ISO :
ISO/CEI 9899:1999

L'ISO propose des normes écrites qu'il faut acheter pour pouvoir les lire. C'est quand même quelque chose d'incroyable que notre joli noyau Linux soit basé sur ce langage commercial et propriétaire.

Je connais le W3C qui propose des normes et elles sont facilement consultables gratuitement sur leur site web. Il existe aussi les RFC qui sont de très bonnes normes publiques.

N'y a t'il pas moyen d'accéder à la norme officielle du langage C sans avoir à la payer tout en restant légal?
Merci beaucoup.
---
Références :
[www.iso.org]
[www.w3.org]
[www.ietf.org]



---

[yugiohjcj.cf]

Poste le Tuesday 1 January 2008 18:05:56
Répondre     Citer    
Re: Le norme du langage C n'est pas publique

Effectivement les normes des langages ne sont pas téléchargeables gratuitement (et ça me choque un peu). Certains organismes de normalisation vendent un fichier PDF.

En pratique, on trouve souvent des brouillons avancés des normes, donc en cherchant iso 99 c standard draft sur le web on trouve notamment ceci.

Toutefois, les normes s'adressent bien plus à ceux qui implémentent des langages (ceux qui écrivent des compilateurs) qu'à ceux qui les utilisent.

De plus l'environnement normalisé par l'ISO est très pauvre (mais pas toujours respecté dans ses moindres détails) et il est avantageux de s"appuyer sur une norme plus riche (par exemple POSIX, OpenGroup ou SuS) ou sur des bibliothèques libres (Glib ou autre...).

Enfin, quand professionnellement on a besoin de la norme, son coût est faible devant les autres coûts (main d'oeuvre, poste informatique) et il me semble que l'employeur peut sans problème l'acheter.

Mais c'est vrai que c'est un peu choquant de ne pas trouver la norme elle même librement sur le Web. A ma connaissance, il existe des secteurs industriels où c'est pire (j'ai entendu dire que les protocoles d'informatique financière ont des spécifications très onéreuses, plus d'un 1K€ pour un rapport).

J'aimerais quand même bien comprendre pourquoi le posteur initial cherche précisément la norme officielle du langage C; ce qu'on trouve librement est très approchant... et le développeur n'en a souvent pas besoin (sauf quand il code un compilateur).

Bonne année à tous.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Tuesday 1 January 2008 18:44:40
Répondre     Citer    
Re: Le norme du langage C n'est pas publique
Envoyé par: AlSim

On trouve même un peu plus récent comme draft : [www.open-std.org]

Mais c'est vrai que c'est un peu dommage que l'ISO ne publie pas ses normes gratuitement, même si on peut y avoir accès dans le cadre d'études par exemple.

[catwell.info]

Poste le Tuesday 1 January 2008 19:54:19
Répondre     Citer    
Re: Le norme du langage C n'est pas publique
Envoyé par: YuGiOhJCJ

Merci pour les quelques réponses qui confirme ce que je pensais : l'accès à la norme du langage C n'est pas publique.

Citation
Basile STARYNKEVITCH
J'aimerais quand même bien comprendre pourquoi le
posteur initial cherche précisément la norme
officielle du langage C; ce qu'on trouve librement
est très approchant... et le développeur n'en a
souvent pas besoin (sauf quand il code un
compilateur).

Bonne année à tous.

Je recherche la norme officielle du langage C tout simplement pour savoir si ce que je code est syntaxiquement correct et respecte au plus proche la normalisation car une norme est faite pour être respectée par tout le monde, sinon elle est inutile. Entre autres, respecter la norme permet à mes sources d'être comprises par la majorité des compilateurs qui eux mêmes sont (théoriquement) basés sur celle-ci.

Bonne année 2008 à toi aussi

---

[yugiohjcj.cf]

Poste le Tuesday 1 January 2008 23:11:44
Répondre     Citer    
Re: Le norme du langage C n'est pas publique

Citation
YuGiOhJCJ
Je recherche la norme officielle du langage C tout simplement pour savoir si ce que je code est syntaxiquement correct et respecte au plus proche la normalisation car une norme est faite pour être respectée par tout le monde, sinon elle est inutile.

Dans le monde Linux (et plus généralement le monde du logiciel libre), elle est en effet inutile. Le standard de facto est en effet gcc (qui a un tel succès que les compilateurs concurrents le copient, par exemple icc accepte les extensions GNU à la syntaxe.), qui offre des extensions très utiles à C (notamment goto calculé par goto *p, expression de bloc ({ ... }) etc.). De plus, gcc a des modes de fonctionnement très proches du standard (gcc -std=c89 -pedantic), et tu peux te fier à son diagnostic. Et la documentation de gcc (avec celle de GNU libc) est assez complète.

De plus, dans le monde Linux, le standard de facto est fourni par (notamment) des libraries usuelles comme GNU Libc....

Donc, oui, sur Linux la norme officielle de C n'est pas utile.

Enfin, un langage n'est pas seulement une syntaxe, mais surtout une sémantique.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Wednesday 2 January 2008 09:05:08
Répondre     Citer    
Re: Le norme du langage C n'est pas publique
Envoyé par: oudoubah

Citation
Basile STARYNKEVITCH
De plus, dans le monde Linux, le standard de facto
est fourni par (notamment) des libraries usuelles
comme GNU Libc....

Un standard de fait n'est pas une norme (exemple : le .doc)

Seules les normes sont là pour garantir l'interopérabilité. La portabilité d'un programme dépend justement du respect des normes.

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Wednesday 2 January 2008 11:20:18
Répondre     Citer    
Re: Le norme du langage C n'est pas publique

Citation
oudoubah
Seules les normes sont là pour garantir l'interopérabilité. La portabilité d'un programme dépend justement du respect des normes.

D'abord, la portabilité est une notion bien moins importante que par le passé.

Ensuite, je suis en désaccord avec ce point de vue: l'intérêt du logiciel libre, c'est notamment sa pérennité (par exemple, on peut toujours sous-traiter sa maintenance ou son utilisation), et de fait ils constituent des standards.

J'insiste, le logiciel libre fait que les normes sont moins importantes.

Et un certain nombre de langages ont en réalité comme définition (c'est bien sûr un abus de langage conscient; je distingue fortement les spécifications des implémentations) une implémentation de référence (ou plus précisément sa spécification implicite) qui est libre: Perl, Ocaml, Gcc, Ruby, Bash, Zsh, Python, LaTeX, etc... Il en est de même d'un certains nombres de protocoles (X11, ...) et de formats de fichiers.

Les normes sont bien sûr essentielles dans un monde de logiciel propriétaire, mais on accepte (malheureusement à mon goût) que les plus courants d'entre eux (Windows & Office) ne soient pas normalisés.

Dans le monde du logiciel libre, les documentations et les implémentations sont plus importantes que les normes.

Le logiciel libre n'est pas libre pour rien: il modifie profondément la pratique des informaticiens, en particulier en préférant les implémentations libres aux normes.

Pour revenir au langage C, on peut délibérément faire le choix de coder en GCC, et c'est ce choix qui est fait par le noyau Linux et un certain nombre d'applications libres. C'est un choix tout à fait sensé et respectable!


----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Wednesday 2 January 2008 11:44:33
Répondre     Citer    
Re: Le norme du langage C n'est pas publique
Envoyé par: YuGiOhJCJ

Tiens je vais faire une citation que j'ai trouvé :

Citation
http://www.linux-france.org/prj/jargonf/S/standard.html
"Un standard est une norme qu'il faut respecter soit parce qu'un organisme en a décidé ainsi autoritairement (standard de jure), soit parce que tout le monde fait comme ça et que si on ne suit pas, on n'aura pas de clients (standard de facto)."

Donc il est clair que s'il on considère que le noyau Linux est codé en un langage C standard de facto, le choix qui a été fait correspond bien à quelque chose de libre. Encore faut-il que GNU ait rédigé une documentation de qualité sur ce langage. Avez-vous le liens provenant de [www.gnu.org] vers la documentation officielle?

Il faudrait renommer ce langage GNU C :-))

---

[yugiohjcj.cf]

Poste le Wednesday 2 January 2008 12:48:17
Répondre     Citer    
Re: Le norme du langage C n'est pas publique
Envoyé par: AlSim


Poste le Wednesday 2 January 2008 14:02:28
Répondre     Citer    
Re: Le norme du langage C n'est pas publique
Envoyé par: YuGiOhJCJ

AlSim> Merci ;-)

---

[yugiohjcj.cf]

Poste le Friday 4 January 2008 14:08:03
Répondre     Citer    
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.
Ce forum !
Le norme du langage C n'est pas publique
Débattez, trollez sur les distributions, les logiciels libres ....
Mais attention, débat ne veut pas dire insultes ! Restez courtois, merci.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons