IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

C11 : la normalisation est achevée


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Inscrit en
    Juillet 2009
    Messages
    3 407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 407
    Par défaut C11 : la normalisation est achevée
    C11 : la normalisation est achevée
    Après douze ans de travaux, multithreading et Unicode au menu


    Voilà qui est fait. Après douze ans de travaux, la normalisation du C1.x vient d’être bouclée par l’International Organization for Standardization.

    C11 succède donc à C99, réalisé en 1999, et propose la prise en charge du multithreading (autrement dit l’utilisation des différents cœurs d’un processeur pour accélérer les traitements et les processus) et de l’Unicode.


    Dennis Ritchie, créateur du C

    Pour rappel, le C est un langage de programmation impératif conçu en 1972 au sein des Bell Labs pour la programmation système. Inventé avec UNIX, C est devenu en quelques années un des langages les plus utilisés. De nombreux autres comme C++, C#, Objective-C mais aussi Java ou PHP en reprennent bien des aspects.

    Son créateur, Dennis Ritchie, est décédé en novembre dernier, suscitant une très vive émotion et une reconnaissance unanime au sein du monde IT.

    Cette certification lui aurait certainement fait plaisir.

    Le nouveau standard ISO/IEC 9899:2011 est disponible depuis cette page

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Je voulais parcourir un peu la norme mais en bon document ISO/IEC, c'est payant

    Le court résumé parlant de la gestion des threads (ça veut dire que les pthreads deviennent une partie de la bibliothèque standard ?) et Unicode (pour tout le monde ?) semble peu pour 12 ans de travaux mais ces 2 points l'air plutôt intéressants

  3. #3
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Y'a d'autres évolutions, dont un travail sur l'alignement, unions et structure anonymes ainsi que de rendre optionnel les VLA et les complex.

    Le reste ICI
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Par défaut
    Le dernier "draft" soumis pour normalisation est disponible (et gratuit) :

    http://www.open-std.org/jtc1/sc22/wg...docs/n1570.pdf

  5. #5
    Membre émérite
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Par défaut
    Il me semble qu'une ébauche de l'implémentation de la norme C11 est disponible avec gcc 4.6.

    Citation Envoyé par '"GCC 4.6 Release Series"
    There is now experimental support for some features from the upcoming C1X revision of the ISO C standard. This support may be selected with -std=c1x, or -std=gnu1x for C1X with GNU extensions.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  6. #6
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Sur C11, voir aussi la discussion C1x : future version du langage C

  7. #7
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Bonjour et merci pour cette information,

    Vu la difficulté de trouver des compilateurs 100 % conformes à C99 encore aujourd'hui (Voir par exemple gcc ou le compilateur C de microsoft). Peut-on espérer une plus grande réactivité pour C11? J'ai l'impression qu'encore aujourd'hui, en 2012, C90 reste le standard de fait lorsqu'il s'agit d'écrire du code avec des contraintes de portabilité importantes.

    Je vais tout de même jeter un oeil très intéressé sur cette nouvelle mouture du langage C.

    Avec mes meilleures salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    J'ai l'impression qu'encore aujourd'hui, en 2012, C90 reste le standard de fait lorsqu'il s'agit d'écrire du code avec des contraintes de portabilité importantes.
    Serait-ce la différence entre la théorie et la pratique ???

    ou entre l'enseignement et la réalité ?

  9. #9
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    Vu la difficulté de trouver des compilateurs 100 % conformes à C99 encore aujourd'hui (Voir par exemple gcc ou le compilateur C de microsoft). Peut-on espérer une plus grande réactivité pour C11? J'ai l'impression qu'encore aujourd'hui, en 2012, C90 reste le standard de fait lorsqu'il s'agit d'écrire du code avec des contraintes de portabilité importantes.
    C99 pose de reels problemes d'implementation, c'est a dire qu'il y a des choses complexes a mettre en oeuvre dans un langage comme le C (les tableaux de longueur variable par exemple).

    C1.x pose de nouveaux problemes, comme le multi-threading. Et l'experience de C99 ayant montre que ne pas implementer une partie de la norme n'etait pas (specialement) problematique, il est malheureusement peu probable que l'on voit une implementation complete de C1.x dans GCC ou chez Microsoft - mais chez d'autres peut-etre.

    Et par ailleurs, la norme C1.x rend optionnel des choses obligatoires en C99...
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  10. #10
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    C99 pose de reels problemes d'implementation, c'est a dire qu'il y a des choses complexes a mettre en oeuvre dans un langage comme le C (les tableaux de longueur variable par exemple).
    Oui, les VLAs ont attendu gcc 4.5 avant de recevoir un support correct. Je ne doute pas de la difficulté d'implanter complètement C99 et, de la même manière C11. On est donc pas prêt de voir arriver un compilateur mainstream avec un support important de cette nouvelle norme. Peut-être Comeau proposera un tel compilateur?

    Avec mes meilleures salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    disons qu'il y a aussi eu beaucoup de bon sens que C99 avait allégrement laissé tomber :


    • mettre des déclarations partout dans le code.. : la plupart du temps absurde et rendant le code illisible (sauf lorsque mis dans un bloc, ce qui était déjà possible avant, mais qui, à part pour du débogage, n'est pas forcément souhaitable)

    • modifier le style des commentaires : absuirde. A la limite proposer un style supplémentaire, mais pas remplacer.. compatibilité compatibilité....

    • les séquences d'échappement à 2 caractères : intérêt limité, l'ancienne manière permettant de faire la même chose..

    • l'initialisation des structures : intérêt limité, l'initialisation à 0 o NULL étant possible avant via les accolades, et l'initialisation par membre étant plus lisible en lignes de code

    • L'incompatibilité avec les retours "vides" (non précisés), obligeant à rééditer tous les fichiers des anciennes applis

    • les tableaux de taille variable : intérêt plus que limité.

    • les pointeurs "restrict" : bof... A qui ça sert à part des débutants ?

    • les types "long long" : re-bof.. Pour s'aligner avec Windows, mais .. On s'en fout, non ?


    Plus plusieurs autres..

    En fait, je trouve les choses les plus intéressantes (et qui étaient faciles) sont

    • la version
    • le inline
    • le type Booleen (le type "complexe" doit peut servir, la plupart des outils se servant de tableaux (partie réelle, partie imaginiare) et faisant des calculs sur l'une OU l'autre)
    • wchar
    • eventuellement _func_, mais dangereux dans des programmes commerciaux et/ou sensibles (qu'on va compiler en no-debug, et faire un strip sur l'exe), donc plutôt poiur du debug, qui peut aisément se remplacer par un printf..


    Bref, ça m'étonne pas trop...

Discussions similaires

  1. Qu'est ce qu'un grand projet ?
    Par Geronimo dans le forum Débats sur le développement - Le Best Of
    Réponses: 62
    Dernier message: 04/04/2013, 14h52
  2. Réponses: 33
    Dernier message: 14/11/2011, 09h27
  3. [bash] découper un fichier -> agir sur un fichier dés qu'il est achevé
    Par AnozerOne dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 21/06/2011, 20h31
  4. Réponses: 17
    Dernier message: 30/10/2010, 17h49
  5. Quelle est la fiabilité du protocole SSL ?
    Par Anonymous dans le forum Développement
    Réponses: 5
    Dernier message: 05/09/2002, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo