# Histoire du langage C

Le langage C a été créé au début des années 1970 par Dennis Ritchie et Ken Thompson aux laboratoires Bell (AT&T) pour réécrire le système d'exploitation UNIX, qui était initialement en langage d'assemblage.

### Langage C original

La première version du C sort en 1972. Elle était étroitement liée au développement d'UNIX. Son adoption rapide a fait de C le langage privilégié pour développer des systèmes d'exploitation et des logiciels nécessitant des performances et une gestion fine de la mémoire.

### K & R

En 1978, Brian **K**ernighan et Dennis **R**itchie publient le livre de référence "The C Programming Language". C'est la première formalisation du langage C. Ce standard a dominé jusqu'au milieu des années 1980. Il introduisait des concepts tels que les types de données, les structures.

### ANSI C ou C89

Dans les années 1980, le besoin d'un standard plus formel s'est fait sentir, car plusieurs versions divergentes de C étaient utilisées. En 1989, l'ANSI (American National Standards Institute) publie le standard ANSI C ou C89. Cette version standardise plusieurs éléments du langage.

### C90

Le standard C89 est adopté par l'ISO (International Organization for Standardization) en 1990, sous le nom de C90. Les deux versions, ANSI C et C90, sont donc pratiquement identiques.

### C99

En 1999, une révision majeure du langage a été publiée sous le nom de C99. Cette version introduit de nombreuses améliorations, dont :

- La prise en charge des variables déclarées à n'importe quel endroit du code, pas seulement au début d'un bloc.
- Les tableaux dynamiques et les types entiers plus précis.
- Les boucles for avec des variables locales.
- De nouvelles fonctions mathématiques et des améliorations sur la précision des nombres flottants.

### C11

En 2011, le standard C11 apporte des améliorations pour le rendre plus moderne tout en conservant sa simplicité. Il introduit :

- Le support des threads avec une bibliothèque standard pour le multi-threading.
- La gestion des alignements mémoire.
- De nouvelles fonctionnalités de sécurité

### C18

En 2018, C18 qui est une version mineure qui clarifie et corrige certaines ambiguïtés du C11 sans ajouter de nouvelles fonctionnalités significatives. Elle se concentre essentiellement sur la correction de bugs et des révisions formelles du langage.

### C23

Le langage évolue encore. Les nouveautés sont très spécifiques à des cas d'utilisation trés poussés.
