Les versions du langage C

Le langage C a subi au cours de son histoire deux grandes étapes de définition. Il a été défini une première fois par deux chercheurs des Laboratoires Bell, B. Kernighan et D. Ritchie, dans un livre intitulé « The C Programming Language », publié en 1978. Cette version est appelée « Kernighan et Ritchie 78 », ou K&R 78 en abrégé, ou encore le plus souvent, simplement K&R.

Suite à l'extraordinaire succès d'UNIX, qui induisit le succès du langage C, la situation devint confuse : plusieurs fournisseurs de compilateurs mirent sur le marché des compilateurs non conformes à K&R car comportant des extensions particulières. À la fin des années 80, il devint nécessaire de mettre de l'ordre dans ce chaos et donc de normaliser le langage, tâche à laquelle s'attela l'ANSI1.1, organisme de normalisation américain. La norme ANSI fut terminée en 1989. En 1990, l'ISO1.2, organisme de normalisation international, (donc chapeautant l'ANSI), adopta tel quel le standard ANSI en tant que standard ISO (ce qui fait que cette version du standard est tantôt appelée C89, tantôt C90).

Cette seconde version du langage C devrait donc s'appeler ISO C, mais comme les acteurs importants du monde informatique sont de culture anglo-saxonne et que ceux-ci persistent à l'appeler ANSI C, (presque ?) tout le monde fait de même. Dans ce manuel, nous suivrons l'usage général, et utiliserons l'expression ANSI C pour désigner la norme commune à l'ANSI et l'ISO.

De nouvelles versions de la norme ISO, peu utilisées en pratique, sont sorties en 1999 et en 2011. Les extensions qu'elles apportent sont décrites dans le chapitre [*].

Ce document décrit C90 ANSI, avec parfois des références à C K&R, de manière à permettre au lecteur de comprendre les sources écrits avant l'apparition de la norme.

Matthieu Moy 2017-02-08