Namespaces
Variants

History of C

From cppreference.net

Table des matières

C Primitif

  • 1969 : B créé, basé sur BCPL, pour remplacer l'assembleur PDP-7 comme langage de programmation système pour Unix
  • ajout des opérateurs ++ , -- , assignation composée, est resté un langage non typé comme BCPL
  • 1971: NB ("nouveau B") créé lors du portage de B vers PDP-11
  • types ( int , char , tableaux et pointeurs), conversion tableau-vers-pointeur, compilation en code machine
  • 1972 : Le langage est renommé C
  • struct , opérateurs && et || , préprocesseur, E/S portables
  • 1973 : Unix réécrit en C
  • unsigned , long , union , énumérations, sécurité de type accrue
  • 1978 : The C Programming Language, 1ère édition

Standard C

  • 1983 : Comité ANSI X3J11 établi
  • 1988 : The C Programming Language, 2ᵉ édition
  • 1989 : C89 , norme ANSI C publiée
  1. codifié les pratiques existantes
  2. nouvelles fonctionnalités : volatile , enum , signed , void , locales
  3. De C++ : const , prototypes de fonctions
  • 1990 : C90 , la norme ANSI C acceptée comme ISO/CEI 9899:1990
  • 1994 : Correctif technique 1 (ISO/CEI 9899:1990/Cor.1:1994)
  1. support considérablement élargi pour les caractères larges et multioctets ( <wctype.h> , <wchar.h> , ajouts et modifications à l'E/S des flux, etc.)
  2. digrammes, <iso646.h> ,
  • 1996 : Correctif technique 2 (ISO/IEC 9899:1990/Cor.2:1996)
  • 1999 : C99 (ISO/CEI 9899:1999)
  1. nouvelles fonctionnalités : bool , long long , <stdint.h> , <inttypes.h> , restrict , littéraux composés, tableaux de longueur variable, membres de tableau flexibles, initialiseurs désignés, <fenv.h> , macros variadiques, nombres complexes, __func__ , format flottant hexadécimal ( % a ), formatage monétaire dans lconv , isblank , concaténation de littéraux de chaîne étroits et larges, virgule finale dans les énumérations, arguments vides dans les macros de type fonction, STDC_ * pragmas, va_copy , retour nul de tmpnam , pointeur nul dans setvbuf , hh et ll spécificateurs de longueur dans printf , snprintf , _Exit , <tgmath.h> , spécificateurs strftime de type POSIX
  2. de C++ : inline , mélange déclarations et code, déclarations dans la clause d'initialisation de la boucle for, // commentaires, noms de caractères universels dans le code source
  3. suppression des fonctions implicites et du int implicite
  • 2001: Rectificatif technique 1 (ISO/IEC 9899:1999/Cor.1:2001)
  • 2004 : Rectificatif technique 2 (ISO/CEI 9899:1999/Cor.2:2004)
  • 2004 : Rapport technique Unicode (ISO/CEI TR 19769:2004) ( Boutique ISO ) ( N1040 ébauche du 7 novembre 2003)
  • 2007 : Rectificatif technique 3 (ISO/CEI 9899:1999/Cor.3:2007) ( N1256 ébauche du 7 septembre 2007)
  • 2007 : Rapport technique sur les interfaces de vérification des limites (ISO/IEC TR 24731-1:2007) ( Boutique ISO ) ( N1225 ébauche du 28 mars 2007)
  • 2008 : Rapport technique embarqué (ISO/IEC TR 18037:2008) ( Boutique ISO ) ( N1021 ébauche du 24 septembre 2003)
  • 2009 : Rapport technique sur les nombres flottants décimaux (ISO/IEC TR 24732:2009) ( Boutique ISO ) ( N1241 ébauche du 5 juillet 2007)
  • 2009 : Rapport technique sur les fonctions mathématiques spéciales (ISO/IEC TR 24747:2009) ( Boutique ISO ) ( N1182 ébauche du 2 août 2006)
  • 2010 : Rapport technique sur les fonctions d'allocation dynamique (ISO/IEC TR 24731-2:2010) ( Boutique ISO ) ( N1388 ébauche du 1er juin 2009)
  • 2011 : C11 (ISO/IEC 9899:2011) ( Boutique ISO ) ( Boutique ANSI ) ( N1570 ébauche du 12 avril 2011)
  1. modèle de mémoire prenant en compte les threads, <stdatomic.h> , <threads.h> , fonctions génériques de type, alignas / alignof , noreturn , static_assert , extensions d'analysabilité, extensions aux types complexes et imaginaires, structures et unions anonymes, mode d'ouverture exclusive de fichiers, quick_exit
  2. supprimé gets
  3. de l'Interface de vérification des bornes TR : interfaces de vérification des bornes,
  4. de Unicode TR : char16_t , char32_t , et <uchar.h>
  • 2012 : Correctif technique 1 (ISO/CEI 9899:2011/Cor 1:2012) ( Boutique ISO )
  • 2013 : Règles de codage sécurisé TS (ISO/IEC TS 17961:2013) ( Boutique ISO ) ( N1718 30 mai 2013)
  • 2014 : FP TS partie 1 : Arithmétique binaire en virgule flottante (ISO/IEC TS 18661-1:2014) ( Boutique ISO ) ( N1778 ébauche 2013)
  1. apporte des modifications à C11 (principalement à l'Annexe F) qui couvrent toutes les exigences de base et certaines recommandations de IEC 60559:2011 (C11 était basé sur IEC 60559:1989)
  • 2015 : FP TS partie 2 : Arithmétique décimale en virgule flottante (ISO/IEC TS 18661-2:2015) ( Boutique ISO ) ( N1912 ébauche 2015)
  1. apporte des modifications à C11 pour prendre en charge toutes les exigences, ainsi que certaines recommandations fondamentales, de la norme IEC 60559:2011 pour l'arithmétique décimale en virgule flottante. Ceci remplace ISO/IEC TR 24732:2009.
  • 2015 : TS FP partie 3 : Types étendus et d'échange (ISO/IEC TS 18661-3:2015) ( Boutique ISO ) ( N1945 ébauche 2015)
  1. apporte des modifications à C11 pour prendre en charge les recommandations de l'IEC 60559:2011 concernant les formats de virgule flottante étendus et les formats d'échange, tant arithmétiques que non arithmétiques.
  • 2015 : FP TS partie 4 : Fonctions supplémentaires (ISO/IEC TS 18661-4:2015) ( Boutique ISO ) ( N1950 ébauche 2015)
  1. fournit des modifications à C11 pour prendre en charge toutes les opérations mathématiques recommandées par IEC 60559:2011, incluant la trigonométrie en unités π, la racine carrée inverse, les intérêts composés, etc.
  • 2016 : FP TS partie 5 : Attributs supplémentaires (ISO/IEC TS 18661-5:2016) ( Boutique ISO ) ( N2004 ébauche 2016)
  1. apporte des modifications à C11 pour prendre en charge tous les attributs supplémentaires (modèle d'évaluation, gestion des exceptions, reproductibilité, etc.) recommandés par IEC 60559:2011
Article Principal : C17
Rapports de défauts corrigés dans C17 (54 défauts)
  • 2023 C23 (ISO/CEI 9899:2024). C23 est la révision actuelle de la norme C.
Article Principal : C23
Rapports de défauts corrigés dans C23 (? défauts)

Développement futur

  • TS Parallélisme (Projet N2017 2016-03-10)
  • TS Mémoire Transactionnelle (Projet N1961 2015-09-23)
  • C (Dernier projet n3550 2025-05-04)
  1. Liste des problèmes qui n'ont pas obtenu le statut DR : ( N2556 2020-08-02)
Article Principal : C29 ?
Prochaine révision majeure de la norme du langage C

Voir aussi

Documentation C++ pour Historique du C++

Liens externes

1. Le Développement du Langage C par Dennis M. Ritchie
2. Justification de la norme C99