Introduction (première partie)
voir cours d'IUP 1 (petit résumé ici).
Un ordinateur est une machine bête, ne sachant qu'obéir, et
à très peu de choses :
- addition, soustraction, multiplication en binaire, uniquement sur des
entiers,
- sortir un résultat ou lire une valeur binaire (dans une mémoire
par exemple),
- comparer des nombres.
Sa puissance vient du fait qu'il peut être PROGRAMMÉ, c'est à dire
que l'on peut lui donner, à l'avance, la séquence (la suite
ordonnée) des ordres à effectuer l'un après l'autre. Le
grand avantage de l'ordinateur est sa rapidité. Par contre, c'est le
programmeur qui doit TOUT faire, et surtout tout prévoir. L'ordinateur ne comprenant que des ordres
codés en binaire (le langage machine), des langages dits
"évolués" ont été mis au point pour faciliter la
programmation, au début des années 60, en particulier FORTRAN
(FORmula TRANslator) pour le calcul scientifique et COBOL pour les applications
de gestion. Puis, pour des besoins pédagogiques principalement, ont
été créés le BASIC, pour une approche simple de la
programmation, et PASCAL au début des années 70. Ce dernier
(comme le C) favorise une approche méthodique et disciplinée (on
dit "structurée").
Le C a été développé conjointement au
système d'exploitation UNIX, dans les Laboratoires BELL, par Brian W
Kernigham
et Dennis M Ritchie,
qui ont défini en 78, dans "The C Language", les règles de base
de ce langage. Le but principal était de combiner une approche
structurée (et donc une programmation facile) avec des
possibilités proches de celles de l'assembleur (donc une
efficacité maximale en exécution, quitte à passer plus de
temps de programmation), tout en restant standard (c'est à dire pouvoir
être implanté sur n'importe quelle machine). Puis ce langage a
été normalisé en 88 (norme ANSI),
cette norme apportant un nombre non négligeable de modifications au
langage.
Le C est un langage compilé, c'est à dire qu'il faut :
- entrer un texte (le programme source) dans l'ordinateur (à l'aide d'un programme
appelé EDITEUR),
- le traduire en langage machine (c'est à dire en codes binaires
compréhensibles par l'ordinateur) : c'est la compilation et, si
plusieurs modules ont été compilés
séparément, l'édition de liens (LINK ou BIND),
- l'exécuter.
Contrairement à un langage interprétés (Basic autrefois, javascript...), l'exécution
sera beaucoup plus rapide puisqu'il n'y a plus de traduction à
effectuer, mais la phase de mise au point sera plus complexe.
Bien que le langage soit normalisé, un certain nombre de points
dépendent de la machine et du compilateur utilisé (par exemple
comment appeler le compilateur). Ces indications ne seront pas données
ici.