Introduction

Écrit le 10/11/2004 par Wikibooks
Dernière mise à jour : 01/02/2006

Historique

Le langage C a été inventé en 1972 par Dennis Ritchie. Le but du langage était alors de permettre l'écriture du système d'exploitation UNIX.

Ce langage est issu du langage BCPL (Basic Combined Programming Language), créé par Martin Richards en 1966. Il s'agissait d'un langage relativement rudimentaire, où la notion de type était inexistante et où les adresses étaient divisées par 4 (pour forcer l'alignement sur un mot mémoire). Malgré ces bizarreries, il a servi de base au système d'exploitation Tripos, qui deviendra plus tard AmigaOS.

K. L. Thompson et D. M. Ritchie ont ensuite utilisé les bases du BCPL pour concevoir le langage B, où la notion de type n'existait toujours pas (une variable était extrn ou auto, notez la contraction sibylline). L'arithmétique du langage et les structures de contrôle étaient quant à elles relativement proches du C, avec notamment l'introduction de la fameuse fonction printf(). Les premiers Unix ont été écrits avec ce langage, mais très vite le manque de typage montra ses limites.

Brian W. Kernighan et Dennis M. Ritchie améliorèrent alors la spécification du langage B, en y ajoutant une notion de type. À l'image des programmeurs qui incrémentent les versions de leurs programmes, Kernighan et Ritchie « incrémentèrent » la lettre B pour appeler leur langage, le langage C.

En 1989, l'organisme ANSI normalisa le C sous la dénomination ANSI C89, puis l'ISO fit de même sous la norme ISO C90. Normes que pratiquement tous les compilateurs C existants à ce jour comprennent. À noter une bizarrerie de la norme, qui limitait la taille significative des noms de symboles externes à... 6 caractères ! C'est grâce à cette « optimisation » que, des années plus tard, on doit encore retenir des noms rébarbatifs comme strcpy(), strstr(), etc.

En 1995, l'ISO publia une nouvelle norme (ISO C95) qui ne faisait qu'entériner une pratique largement répandue depuis des années : le prototypage et la déclaration simplifiée de fonctions.

Enfin en 1999, l'organisme ISO proposa une nouvelle norme, qui reprenait quelques bonnes idées du langage C++, comme les commentaires, les macros à nombre variable d'arguments, les déclarations de symboles à n'importe quel endroit, le type long long d'une taille minimale de 64 bits, l'initialisation des structures avec des champs nommés et le mot clé inline pour pallier la précarité des macros, parmi les plus visibles.

Le langage C est devenu extrêmement populaire sur les systèmes Unix et ses dérivés. Avec son approche bas-niveau, il permet d'obtenir des programmes très optimisés, pratiquement autant que s'ils avaient été écrits directement en assembleur. Avec un peu d'effort, il est même possible d'utiliser une approche orientée objet, au prix d'une certaine rigueur que le langage, et dans une certaine mesure les compilateurs, sont très loin d'imposer.

Cet article provient de Wikibooks et est sous licence GNU Free Documentation License. Il a été écrit par plusieurs personnes et est constamment mis à jour. Cet article est la version du 2 mars 2005 à 18:07. L'article d'origine se trouve à http://fr.wikibooks.org/wiki/Programmat ... troduction.