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
- codifié les pratiques existantes
- nouvelles fonctionnalités : volatile , enum , signed , void , locales
- 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)
- 1995 : C95 (ISO/IEC 9899:1990/Amd.1:1995) ( boutique en ligne )
- support considérablement élargi pour les caractères larges et multioctets ( <wctype.h> , <wchar.h> , ajouts et modifications à l'E/S des flux, etc.)
- digrammes, <iso646.h> ,
- 1996 : Correctif technique 2 (ISO/IEC 9899:1990/Cor.2:1996)
- 1999 : C99 (ISO/CEI 9899:1999)
-
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
,
hhetllspécificateurs de longueur dans printf , snprintf , _Exit , <tgmath.h> , spécificateurs strftime de type POSIX - 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
- 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)
-
- obsolète gets
- 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)
- 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
- supprimé gets
- de l'Interface de vérification des bornes TR : interfaces de vérification des bornes,
- de Unicode TR : char16_t , char32_t , et <uchar.h>
- 2012 : Correctif technique 1 (ISO/CEI 9899:2011/Cor 1:2012) ( Boutique ISO )
-
- Corrige DR 411
- 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)
- 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)
- 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)
- 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)
- 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)
- 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
- 2018 : C17 (ISO/IEC 9899:2018) ( Boutique ISO ) ( Projet final )
| 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.
| 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)
- 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 |