CRDP

Accueil > Les numéros > DocSciences 5 : Les clés de la révolution numérique

Demandez le programme

« Le temps que vous ayez décomposé une idée compliquée en petites étapes que même une machine stupide peut assimiler, vous avez certainement vous-même appris quelque chose à son propos. »
(Douglas Adams, Un cheval dans la salle de bains, Gallimard, 2003)

JPEG - 96.1 ko
Deux étapes de création de personnages virtuels (© INRIA-CNRS/ARTIS)
La partie gauche de l’image est obtenue grâce à un programme. À partir de la trame de droite, ce programme colore les personnages, calcule ce qui se réfléchit sur les boules, les ombres… ce qui rend l’image réaliste

Un ordinateur qui se bloque, un écran bleu, un logiciel qui se ferme intempestivement... c’est un « bug » ! Ce terme, qui signifie « cafard » (l’insecte) en anglais, désigne une erreur dans la programmation d’un logiciel ou, plus rarement, dans son algorithme. Personne n’y échappe ! Ainsi, le premier vol d’Ariane 5 en 1996 a explosé et détruit pour 500 millions de dollars de satellites.

La faute était due à un morceau de programme qui convertissait une valeur. Créé pour Ariane 4, il a été réutilisé tel quel. La valeur à convertir, beaucoup plus grande dans le cas d’Ariane 5, a donné un résultat aberrant et des ordres de braquage maximum… On peut également citer la sonde américaine Venus Mariner 1, perdue en 1962 à cause d’un trait d’union oublié dans un programme… Mais quelle est donc cette activité mystérieuse si sujette aux erreurs ? La programmation. C’est elle qui spécifie, dans un langage très précis, ce que l’ordinateur doit exécuter. D’un algorithme décrit verbalement ou avec un dessin, la programmation fait une liste d’ordres que la machine va suivre pour obtenir la réponse désirée (valeur, image, application…).

Les programmes sont absolument nécessaires à notre interaction avec l’ordinateur, ils sont partout : un jeu est un programme au même titre qu’un navigateur (ou « butineur » comme Firefox, Internet Explorer…) ou qu’un système d’exploitation (Linux, Mac OS, Windows…), programme très long et compliqué, mais qui, comme pour un jeu, est un texte écrit dans un certain langage.

Un programme chef d’orchestre

Le système d’exploitation (« OS » ou « Operating System » en anglais) est un (ou plusieurs) programme qui régit tous les autres. Il fait le lien entre le matériel (processeur, carte réseau, clavier...) et les autres programmes (navigateur, traitement de texte, jeu vidéo...). Son rôle est déterminant, il attribue le temps processeur (ou comment ce dernier se « partage » entre plusieurs programmes) et la mémoire nécessaire aux autres applications en cours d’exécution. Par l’intermédiaire d’un système de fichiers, il gère les fichiers sur le disque dur : il faut connaître le nom de chacun, son mplacement physique dans la mémoire, sa taille… Véritable administrateur, le système d’exploitation répartit le travail parmi les différentes unités de la machine pour que celles-ci fonctionnent de la meilleure façon.

Navigateur

C’est un programme qui permet d’accéder à des pages web proposées par des particuliers ou des entreprises. Il affiche du texte, des images, mais aussi des formulaires, des jeux... Les plus connus sont Internet Explorer, Firefox et Safari.

LE LANGAGE DE LA MACHINE

Le seul langage compris par le processeur, l’unité centrale dans laquelle sont câblées toutes les opérations de base de l’ordinateur, est appelé « assembleur ». Il définit simplement les opérations électroniques que peut exécuter le processeur. Ce langage change d’un processeur à un autre. Il est donc très efficace puisque tout peut être ajusté « sur mesure », mais il est nettement plus compliqué à manipuler que des langages de plus haut niveau, sans faire d’erreur.

L’assembleur est une liste d’ordres, un fichier d’instructions, comme additionner deux valeurs, les comparer... L’une des instructions permet de sauter à un autre ordre de la liste. Cela permet par exemple de faire des boucles comme « Frapper un monstre jusqu’à ce qu’il disparaisse. » ou « Avancer jusqu’à rencontrer un mur. ».

Cette dernière boucle peut également s’écrire : « Avancer. S’il n’y a pas de mur en face, retourner à la ligne précédente. Tourner à gauche. ». Ainsi, on ne tournera à gauche que lorsqu’on aura rencontré un mur. Mais ce genre de programme pose une question : que se passe-t-il si l’on rencontre un obstacle autre qu’un mur ? En effet, si un humain peut penser à contourner cet obstacle, un tel comportement n’a pas été programmé et le programme va donc tenter désespérément de passer à travers. Dans ce cas absurde, le programme exécutera bêtement l’instruction jusqu’à ce qu’il soit arrêté de l’extérieur (par le système d’exploitation ou par l’utilisateur).

LE COMPILATEUR, LE TRADUCTEUR HOMME-MACHINE

Les langages actuels sont de plus haut niveau, ils permettent de préciser plus facilement toutes les actions à exécuter. Cependant, ces langages doivent eux-mêmes être executés. Pour cela, le programme source (Voir en bas de page), qui n’est qu’un texte, va être « compilé ». Cela signifie qu’un programme (un de plus !), appelé « compilateur », va transformer le texte du programme source en une suite d’instructions en langage assembleur exécutables par l’ordinateur. Le compilateur joue un rôle de traducteur entre ce qui est écrit par le programmeur et ce qui est compris par la machine. Le compilateur produit un fichier exécutable que nous lançons pour utiliser le programme.

De même qu’il y a de nombreuses langues (français, arabe, russe, japonais...), il y a plusieurs types de programmation, c’est-à-dire plusieurs façons de donner des ordres à l’ordinateur. Ces modes de programmation sont appelés « paradigmes ». Le choix du langage et du paradigme de programmation dépend de l’application, de l’algorithme, mais aussi de l’interaction du programme avec d’autres programmes et enfin du choix et de l’expertise du programmeur.


Programme source : C’est simplement le texte du programme qui est saisi dans un traitement de texte par exemple. Ce fichier source est voué à être compilé, c’est-à-dire à être traduit en langage machine. Retour au texte

En savoir plus

Sites Web