Practical C Programming, 3rd Edition by Steve Oualline

How C Works

C est conçu comme un pont entre le programmeur et l’ordinateur brut. L’idée est de permettre au programmeur d’organiser un programme d’une manière qu’il peut facilement comprendre. Le compilateur traduit ensuite le langage en quelque chose que la machine peut utiliser.

Les programmes informatiques sont constitués de deux parties principales : les données et les instructions. L’ordinateur impose peu ou pas d’organisation à ces deux parties. Après tout, les ordinateurs sont conçus pour être aussi généraux que possible. Le programmeur doit imposer son organisation à l’ordinateur, et non l’inverse.

Les données d’un ordinateur sont stockées comme une série d’octets. Le C organise ces octets en données utiles. Les déclarations de données sont utilisées par le programmeur pour décrire les informations avec lesquelles il travaille. Par exemple:

int total; /* Total number accounts */

dit à C que nous voulons utiliser une section de la mémoire de l’ordinateur pour stocker un entier nommé total. Nous laissons le compilateur décider quels octets particuliers de mémoire utiliser ; cette décision est un détail comptable mineur dont nous ne voulons pas nous soucier.

Notre variable total est une variable simple. Elle ne peut contenir qu’un seul entier et décrire un seul total. Une série d’entiers peut être organisée en un tableau comme suit :

int balance; /* Balance (in cents) for all 100 accounts */

Encore, le C se chargera des détails pour imposer cette organisation à la mémoire de l’ordinateur. Enfin, il existe des types de données plus complexes. Par exemple, un rectangle peut avoir une largeur, une hauteur, une couleur et un motif de remplissage. C nous permet d’organiser ces quatre éléments dans un groupe appelé structure.

struct rectangle { int width; /* Width of rectangle in pixels */ int height; /* Height of rectangle in pixels */ color_type color; /* Color of the rectangle */ fill_type fill; /* Fill pattern */};

Le point est que les structures permettent au programmeur d’organiser les données en fonction de ses besoins, peu importe la simplicité ou la complexité de ces données. La traduction de cette description de données en quelque chose que l’ordinateur peut utiliser est le travail du compilateur, pas du programmeur.

Mais les données ne sont qu’une partie d’un programme. Nous avons également besoin d’instructions. En ce qui concerne l’ordinateur, il ne sait rien de la disposition des instructions. Il sait ce qu’il fait pour l’instruction actuelle et où trouver la suivante, mais rien de plus.

C est un langage de haut niveau. Il nous permet d’écrire une déclaration de haut niveau comme:

area = (base * height) / 2.0; /* Compute area of triangle */

Le compilateur traduira cette déclaration en une série d’instructions machine cryptiques de bas niveau. Ce type d’instruction s’appelle une instruction d’affectation. Il est utilisé pour calculer et stocker la valeur d’une expression arithmétique.

Nous pouvons également utiliser des instructions de contrôle pour contrôler l’ordre du traitement. Des instructions comme les instructions if et switch permettent à l’ordinateur de prendre des décisions simples. Les instructions peuvent être répétées à l’infini en utilisant des instructions en boucle comme while et for.

Des groupes d’instructions peuvent être enveloppés pour former des fonctions. Ainsi, nous n’avons à écrire une fonction polyvalente pour dessiner un rectangle qu’une seule fois, et nous pouvons ensuite la réutiliser chaque fois que nous voulons dessiner un nouveau rectangle.

C fournit au programme un riche ensemble de fonctions standard qui exécutent des fonctions communes telles que la recherche, le tri, l’entrée et la sortie.

Un ensemble de fonctions connexes peut être regroupé dans un seul fichier source. De nombreux fichiers sources peuvent être compilés et liés entre eux pour former un programme.

L’un des principaux objectifs du langage C est d’organiser les instructions en composants réutilisables. Après tout, vous pouvez écrire des programmes beaucoup plus rapidement si vous pouvez « emprunter » la plus grande partie de votre code à un autre endroit. Des groupes de fonctions réutilisables peuvent être combinés dans une bibliothèque. De cette manière, lorsque vous avez besoin, par exemple, d’une routine de tri, vous pouvez saisir la fonction standard qsort de la bibliothèque et la lier à votre programme.

Les déclarations de données, les structures et les instructions de contrôle, ainsi que d’autres éléments du langage C, ne sont pas au bénéfice de l’ordinateur. L’ordinateur ne peut pas faire la différence entre un million d’octets aléatoires et un vrai programme. Tous les éléments du langage C sont conçus pour permettre au programmeur d’exprimer et d’organiser clairement ses idées d’une manière adaptée à lui, et non à l’ordinateur.

L’organisation est la clé pour écrire de bons programmes. Par exemple, dans ce livre, vous savez que la table des matières est au début et que l’index est à la fin. Nous utilisons cette structure parce que les livres sont organisés de cette façon. L’organisation rend ce livre plus facile à utiliser.

Le langage C vous permet d’organiser vos programmes en utilisant une syntaxe simple mais puissante. Ce livre va au-delà de la syntaxe C et vous enseigne des règles de style qui vous permettent de réaliser des programmes très lisibles et fiables. En combinant une syntaxe puissante avec un bon style de programmation, vous pouvez créer des programmes puissants qui effectuent des opérations complexes et merveilleuses, mais qui sont aussi organisés d’une manière qui vous permet de les comprendre facilement lorsque le temps des changements arrive.

Leave a Reply