You are on page 1of 201

Dpartement

ducation
et Technologie

Traitement formel
Le codage des informations
Architecture et fonctionnement
d'un ordinateur
La programmation et ses
langages
Le logiciel

Initiation l'informatique
Charles Duchteau
5.51
Dcembre 2002

Centre pour la Formation


l'Informatique dans le Secondaire

1
Introduction

Informatique ou "computer science" ?


Mon propos n'est pas ici de rveiller le dbat sur la nature de l'informatique : science,
technique, culture, mais d'expliciter pourquoi, mme si c'est de tout autre chose qu'il sera
question, le point de dpart sera apparemment de proposer une "dfinition" de l'ordinateur.
On peut se livrer la petite exprience suivante : comme dans certains tests psychologiques,
on invite les participants associer de manire rflexe, sans longue recherche, un ou des
mots ceux qu'on va noncer. On donne ensuite successivement des mots comme
"mtorologie" (qui amne "prvisions", "climat", "temps", "dpression", et rarement
"thermomtre" ou "baromtre"), "astronomie" (qui voque "calculs", toiles", "univers",
"galaxie" et rarement "tlescope") en terminant par "informatique" (qui amne
essentiellement une majorit d' "ordinateur" et quelques "information").

On peut noncer un premier principe essentiel :


L'informatique n'est pas la science des ordinateurs,
pas plus que la mtorologie n'est la science des thermomtres
ou l'astronomie n'est celle des tlescopes...
Principe 1-1 : l'informatique n'est pas la science des ordinateurs

Mme si nous allons, ds lors, parler de tout autre chose que d'ordinateur, le fait mme
que le mot informatique appelle immdiatement celui d'ordinateur montre qu'il est essentiel de
prendre le prtexte d'une "dfinition" de ce dernier pour aborder l'essentiel : le caractre
formaliste des traitements d'informations exig par les caractristiques de l'ordinateur.

1.1

L'ordinateur ?

C'est

une machine
traiter des informations, de manire formelle (ou formaliste)
pour autant qu'on lui ait pralablement indiqu comment mener bien ce traitement.

Ceci ne constitue videmment pas une "dfinition" de l'ordinateur; normment de


choses manquent : rien n'est dit sur l'architecture, sur le mode de fonctionnement (on ne
retient mme pas le fait que cette machine ncessite une alimentation lectrique)...
Le mot "machine" ne sera pas ici davantage prcis1; il servira entre autre corriger
tous les anthropomorphismes que nous serons amen faire propos de l'ordinateur et de son
1

On consultera ce propos (Weizenbaum 81), surtout le chapitre 1, "L'outil".

CeFIS-FUNDP

Ch. Duchteau

... de manire formelle...

Initiation l'informatique

comportement. La description de cette machine, du matriel (hardware) fera l'objet d'un


chapitre dans la suite.
Bien plus important est l'aspect traitement formel des informations et c'est lui qui va
prsent retenir notre attention.

Ch. Duchteau

CeFIS-FUNDP

2
... de manire formelle ...

Ne dites plus "informatique", dites "inFORMEatique"...

Une manire frappante d'illustrer le propos du prsent chapitre est de retenir le slogan
suivant :
ne dites plus informatique ,
dites "inFORMEatique !
Principe 2-1: ne dites plus informatique

2.1

Traiter des informations

Il importe ici de bien saisir dans quel sens les mots "traiter des informations" doivent
tre entendus dans le contexte qui nous occupe.
Un point de dpart possible consiste chercher, dans notre exprience personnelle des
situations o ils nous semble bien "traiter des informations". Il est important cependant de
prciser ces exemples pour viter que n'importe quelle activit rationnelle soit prsente
comme "traitement d'informations"; et cela, mme si certains affirment que toute activit du
cerveau humain est traitement d'informations et que, ds lors, tous nos comportements
participent d'un certain traitement d'informations.
Les exemples sont fort nombreux, mais afin de pouvoir la fois obtenir des
descriptions prcises, nous prsenterons ces traitements d'information sous une forme
commune. Les exemples obiront donc la schmatisation suivante :

Informations
reues
(Entres)

Traitements

Informations
rendues
(Sorties)

Informations
consultes
Figure 2-1 : schma d'un traitement d'informations
Sans la contrainte apporte par la schmatisation ci-dessus, beaucoup de propositions de
"traitement d'informations" (par un tre humain) comportent comme effet (comme sortie) non
CeFIS-FUNDP

Ch. Duchteau

... de manire formelle...

Initiation l'informatique

des informations "objectivables", mais plutt des comportements, des attitudes, des actions,...
C'est vrai qu'au del des traitements d'informations eux-mmes, les canaux (en informatique,
on dirait les priphriques) par lesquels les informations sont acquises ou rendues marquent
une norme diffrence entre les ordinateurs et les humains.

Les exemples demandent souvent tre prciss, essentiellement dans le but


d'objectiver et de simplifier les entres ncessaires et les sorties fournies.
Ainsi,
Rsumer un chapitre du cours

devient
Un texte d'une dizaine
de pages, en franais

Synthtiser en une page l'essentiel


du texte fourni

Un rsum d'une seule


page, en franais

Figure 2-2 : schma d'un rsum

et
Prendre des notes pendant un cours

devient

L'enregistrement vido
d'une heure de confrence

Synthtiser par crit l'essentiel du


contenu de la confrence

Quelques pages de
texte crit

Figure 2-3 : schma de la synthse d'un cours

On pourrait encore ajouter de multiples exemples :

Une liste d'une


trentaine de noms

Trier par ordre alphabtique la liste


fournie

La mme liste trie


par ordre alphabtique

Figure 2-4 : schma d'un tri

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Un texte d'une dizaine

... de manire formelle...

Traduire ce texte en anglais

de pages, en franais

La version traduite
du texte

Un dictionnaire
franais-anglais

Figure 2-5 : schma d'une traduction

La description d'une
fonction mathmatique

Calculer la drive de la fonction


fournie

La drive de la fonction
fournie

un formulaire

Figure 2-6 : schma d'un calcul de drive

L'nonc d'un problme

Rsoudre le problme pos

de physique

Le texte de la solution
du problme

Figure 2-7 : schma de la rsolution d'un problme

mais aussi (mme si nous n'avons pas le sentiment que le traitement d'information suivant soit
d'une grande difficult) :
L'infinitif d'un verbe

Conjuguer ce verbe tous les temps

rgulier de la premire

de l'indicatif, du conditionnel et du

conjugaison

subjonctif

Une page reprenant


les conjugaisons du
verbe fourni

Figure 2-8 : schma de la conjugaison


On pourra raison objecter qu'un cours n'est pas (toujours) une confrence et que ce qu'en
capte "en direct" un tudiant au moment de sa prise de notes est bien plus que ce qu'en
restitue une cassette vido. J'espre qu'on aura compris que l'important ici est que les
"informations" tant en entre qu'en sortie puissent tre clairement identifies, qu'elles laissent
en quelque sorte des traces objectives, formelles (dans le sens d'indubitables). La contrainte
du schma tord videmment ce qu'un humain attache "traitement d'informations", avec tout
ce qui concerne la perception, les impressions, les sensations, Ensuite, et ceci est loin
d'tre anecdotique, les exemples fournis (sauf le dernier) mettent en oeuvre des traitements
sophistiqus et il est indispensable de chercher des propositions de traitements plus "btes"
CeFIS-FUNDP

Ch. Duchteau

... de manire formelle...

Initiation l'informatique

ou plus rflexes (pour ne pas employer les termes "automatiques" ou "machinaux") si l'on veut
voir merger des exemples comme celui de la conjugaison ou ceux des manipulations
numriques.

Beaucoup de propositions entrent difficilement sans le schma prescrit, soit parce


qu'elles mettent en oeuvre des comportements, des actions ou se basent sur un faisceau
d'informations difficilement "objectivables", soit que les canaux de rception des informations
soient trop sophistiqus, soit encore que le "traitement" attendu ne soit pas trs clair. Par
exemple :
-

rpondre quelqu'un qui vous salue,

confectionner un plat, d'aprs une recette de cuisine,

poser un diagnostic aprs examen d'un malade,

conduire une voiture,

D'autres entrent parfaitement dans le schma attendu, au prix parfois de prcisions


quant la forme des entres et des sorties :
-

traduire un texte du franais vers l'anglais,

sur base de l'nonc du sujet propos, crire le texte d'une dissertation,

rpondre des questions lors d'un examen crit,

choisir le menu d'un djeuner au restaurant,

A chaque fois que c'est possible, nous classons peu peu ces propositions pour obtenir
le tableau suivant :
Traitement formel ou
aisment formalisable
Traitements portant
sur des nombres

Traitements portant
sur le langage
(texte,...)

Autres

- calculer la moyenne d'une


srie de cotes
- faire une division par calcul
crit
- ...
- conjuguer un verbe
- compter les mots d'un texte
- vrifier si un mot est prsent
dans un texte
- fournir les frquences respectives des mots d'un texte
- crire un nombre en toutes
lettres
- ...
- chercher le numro de tlphone d'un abonn dans
l'annuaire
- driver une fonction
- trier une liste de noms
- ...

Traitement difficilement (non !)


formalisable
(Sens, signification, ...)

- rsumer un texte
- synthtiser une confrence
- traduire un texte
- crire une dissertation
- corriger l'orthographe d'un texte
- ...

Figure 2-9 : classement des traitements d'informations

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... de manire formelle...

Quelques remarques sont prsent indispensables :


-

il est normal que la cellule correspondant au traitement non formel de nombres reste
vide : les manipulations numriques sont par nature formelles1; pour additionner,
soustraire, multiplier, il n'est pas ncessaire que les nombres concerns aient un
sens. Ce n'est pas un hasard si les premiers ordinateurs se sont appels des
calculateurs lectroniques : le calcul (portant sur des nombres) entre parfaitement dans
les "comptences" du "manipulateur formaliste" qu'est l'ordinateur2.
Il nous suffit de nous interroger sur ce que nous pensons que l'ordinateur pourra faire avec
des nombres pour obtenir une srie d'exemples corrects : additionner, soustraire, comparer,...
C'est bien normal puisque les manipulations numriques de l'ordinateur sont identiques aux
ntres et ne font en aucun cas rfrence une signification des nombres manipuls.

Il est tout aussi normal que la cellule correspondant aux manipulations formalistes
portant sur du texte (ou plus gnralement sur des informations langagires) n'ait t
complte qu'avec peine puisque nos traitements portant sur du texte ne sont presque
jamais formels. Un texte, d'abord nous le lisons pour en prendre connaissance; on ne
lit pas "Notre-Dame de Paris pour le plaisir de dclarer que ce roman comporte
348.832.766 mots ou qu'on y trouve 173 fois le mot "encore".
Essayez donc de prvoir les manipulations que l'ordinateur peut accomplir sur un texte : vous
verrez, que contrairement ce que vous pouviez de prvoir concernant les nombres, vos
suggestions seront bien moins nombreuses.

Et mme quand les traitements voqus propos de textes sont formalisables, nous ne
nous y attelons pas de manire formaliste. La conjugaison est cet gard clairante :
conjuguer correctement peut se faire en ne tenant compte que de la forme (= de la
succession des lettres) du verbe conjuguer, mais ce n'est pas en voquant ces rgles
formelles que nous conjuguons : c'est par euphonie, de manire presque rflexe et non
en manipulant les lettres constituant pronoms, radicaux et terminaisons. Plus
profondment, ceci veut dire que le dcorticage formaliste auquel l'informatique nous
oblige ne nous est pas naturel puisque, mme pour les tches formalisables nous ne
pouvons prendre appui sur nos manires de procder : nous serions bien incapables
d'ailleurs en gnral de prciser ce que sont ces processus; ils ne font en tout cas
gnralement pas appel des procdures conscientes.
-

La dcision de placer tel exemple dans telle cellule du tableau est videmment en
partie arbitraire. Face la tche "dtecter les fautes d'orthographe dans un texte", on
peut, selon ce qu'on sous-entend par ces mots, la considrer comme formalisable
(sinon on ne parlerait pas des "correcteurs orthographiques" associs aux logiciels de
traitement de texte) ou comme difficilement formalisable, si l'on attend une dtection
fine des erreurs grammaticales.

"On ne peut parler de signification attache un nombre. 4 ne veut rien dire. C'est un repre."
..."L'information numrique a donc ceci de trs particulier qu'elle est un contenant sans contenu, une
forme sans signification." (Arsac 87).
Le chapitre suivant nous montrera d'ailleurs que quelles que soient les informations que nous pensons lui
faire manipuler, l'ordinateur reste essentiellement un calculateur

CeFIS-FUNDP

Ch. Duchteau

2.2

... de manire formelle...

Initiation l'informatique

Un peu de vocabulaire et... une dfinition de l'informatique


Plusieurs termes ont ici t employs : formel3, formaliste4, formalis5, formalisable.
En ce qui nous concerne, l'clairage des termes utiliss peut tre synthtis comme

suit :
La description d'un traitement d'informations est formelle ou
formaliste si elle ne fait appel qu' la forme, l'apparence des
informations traites sans jamais se rfrer au sens que nous leur
donnons.
Un traitement d'informations est formalisable s'il est possible d'en
donner une description formelle.
Il est formalis , si cette description formelle a dj t ralise.
C'est sans doute le terme formalisable qui rend le mieux compte de l'effort qui est au
coeur de la discipline informatique, celui d'une description purement formelle des traitements.
En effet, l'informatique peut tre vue comme une entreprise et une dmarche (une qute sans
fin ?) pour faire reculer vers la droite la frontire dfinie dans le tableau ci-dessus, pour largir
la colonne du formalis et rduire celle o les traitements semblent seulement redevables du
sens.
L'objet de l'informatique, c'est en effet de transformer du formalisable
en formalis.
La frontire entre le formel et le non formel n'est donc pas rigide ou impermable,
puisque tout l'effort de l'informatique est de faire passer certains traitements dans la colonne
de gauche. .
De plus, mme si la distinction formel - non formel est essentielle, elle n'est pas
toujours simple tablir, sauf pour ceux qui, justement, ont une longue exprience de
l'informatique ou de l'utilisation des outils qu'elle a scrt et ont ds lors intgr les
contraintes relatives au caractre formaliste des traitements. Plutt que de parler de deux
catgories, il serait d'ailleurs prfrable d'voquer un continuum sur lequel on classerait les
traitements d'information :
Trs facilement
formalisable

Trs difficilement (non !)


formalisable
Rsumer
Ecrire une dissertation

additionner conjuguer driver

Figure 2-10 : classement des traitements d'informations

Si on peut aisment recenser les traitements dj formaliss - il suffit d'inventorier les


tches dont un ordinateur peut venir bout - il est par contre bien plus difficile de borner le
3

4
5

formel : qui concerne uniquement la forme. Une distinction purement formelle. Qualits formelles d'une
oeuvre. Qui considre la forme, l'apparence plus que la matire, le contenu. Classement, plan formel. (Le
Petit Robert, 1993).
Formaliste : qui observe les formes, les formalits avec scrupule. (Le Petit Robert, 1993)
Formaliser : rduire (un systme de connaissances) ses structures formelles. (Le Petit Robert, 1993)
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... de manire formelle...

domaine du formalisable. C'est ici essentiellement une question d'opinion : la traduction d'un
texte constitue-t-elle un traitement formalisable ? et la synthse d'un texte ? et la correction de
l'orthographe ?
Il est en tout cas indispensable de proposer un critre mme s'il est imparfait ou
approximatif qui permette en quelque sorte de mesurer le degr de difficult de formaliser un
traitement d'information.

2.3

Le critre du "copain portugais"

J'ai un ami portugais qui ne connat pas un tratre mot de franais, et je souhaite lui
donner (en portugais videmment) les indications ncessaires certains travaux. Il est facile
de voir que je pourrai par exemple lui fournir la marche suivre pour qu'il puisse conjuguer
un verbe franais : il ne sera pas conscient qu'il est en train de conjuguer, il serait parfaitement
incapable de prononcer les suites de caractres que je vais lui demander d'crire, il ne
comprendra pas ce que signifie le travail que je lui commande, mais cela n'a aucune
importance : en suivant mes indications il va conjuguer en franais.
Ainsi en se limitant un verbe rgulier du premier groupe, mes instructions (en
portugais) pourraient tre du style :
-

demande qu'on te fournisse le mot


traiter (par exemple sur un petit bout
de papier)
cris ce mot au dessus de ta feuille
efface les deux derniers caractres
de ce mot
cris "je" puis passe un espace puis
cris le mot raccourci auquel tu
colles (sans espace) la lettre "e"
passe la ligne, cris "tu", puis le
mot raccourci auquel tu colles (sans
espace) les lettres "es"

...

on lui donne "porter"

il crit porter
le mot devient port
il crit je porte

il crit la ligne tu portes

...
Mme si cela est fort loin des contraintes syntaxiques des langages de programmation (voir la
suite du cours), nous venons de concevoir ainsi un premier programme ( destination du
copain portugais). Nous allons y revenir, puisque (et cela illustre bien cette difficult de
formaliser) ce premier exemple de programme est aussi le premier exemple de programme
incorrect... On notera que nous sommes ici aux prises avec la quatrime partie de la
"dfinition" pralablement donne pour l'ordinateur : "pour autant qu'on lui ait indiqu
comment mener bien ces traitements".

De la mme manire nous pourrons expliquer notre ami portugais (mme s'il n'y
comprend rien) comment raliser une addition crite, comment calculer une moyenne, et
mme en prenant pas mal de temps comment calculer la drive d'une fonction mathmatique
lmentaire.
Mais si le travail consiste donner (en portugais) les rgles qui vont permettre de
rsumer un texte crit en franais, on devine qu'il s'agit l d'une tche redoutable, peut-tre
mme impossible.
Il importe de bien insister ici sur le fait qu'il s'agit de donner les indications pour un texte
quelconque, qu'on n'a videmment pas devant les yeux lorsqu'on rdige ces indications.
CeFIS-FUNDP

Ch. Duchteau

... de manire formelle...

Initiation l'informatique

Sinon, si c'tait de la synthse de tel texte prcis qu'il s'agissait, la solution serait immdiate :
je le rsume moi-mme, je donne ce rsum mon ami qui n'a plus qu' le rendre. Ce que je
veux c'est lui indiquer comment rsumer n'importe quel texte, c'est avoir formalis le
processus de synthse d'un texte.

On voudrait que face un texte qu'il ne comprend pas (puisque c'est un texte franais),
o il ne voit qu'une succession de lettres et de mots, il puisse l'aide de nos indications
produire un autre texte franais (qu'il ne comprendra pas davantage) et qui constitue un
rsum du premier... On mesure j'espre toute la difficult du processus.
Et on devine que des stratgies formalistes simples comme "rcrire le texte en ne
retenant qu'un mot sur cinq" conduiront un charabia qui ne constituera en aucune manire
une synthse du texte original.
Le mme dfi se rencontre si la travail consiste traduire un texte du franais vers
l'anglais. On pourrait penser une approche consistant fournir au copain portugais un
lexique franais - anglais qui comporterait par exemple les quivalences :
il
he
la
the
porte
door
ce qui conduirait immanquablement traduire la courte phrase "il la porte" par "he the door"...
Mais ce qu'il est essentiel de saisir c'est que si demain on dispose pour ces diverses
tches des indications ncessaires destination du copain portugais, aprs-demain, on pourra
les faire faire par l'ordinateur : le problme de leur formalisation sera rgl.
Le propos n'est videmment pas ici d'assimiler les capacits d'un humain avec celles d'un
ordinateur. Mais du point de vue de la ncessit de formaliser (dcrire les traitements sur la
seule base de la forme des informations traiter, sans jamais faire intervenir la signification, le
sens que nous attachons ces informations), le passage par un homme ne comprenant pas
notre langue mais auquel nous pouvons prter par ailleurs les mmes possibilits de
traitements formels que les ntres (il peut compter, additionner, reprer une suite de
caractres dans un texte,...) est clairant.
On lira ce propos la magnifique contribution "Esprits, cerveaux et programmes" de John
Searle dans (Hofstadter 87).

2.4

L'ordinateur, un manipulateur formaliste d'informations

Mme lorsqu'une norme couche de logiciel6 transfigure l'ordinateur et le rend capable


de traitements sophistiqus (mais toujours formalisables et mme formaliss, puisque
justement l'ordinateur en est capable) des indices nous montrent clairement que l'on n'chappe
pas la contrainte de formalisation.
Ainsi, par exemple, la plupart des logiciels actuels de traitement de texte comportent
un correcteur orthographique, capable de dtecter dans le texte trait les "fautes
d'orthographes". Voici ce que donne l'action d'un tel correcteur orthographique sur un texte
(que je vous recommande de lire haute voix) :

10

le logiciel, ce sont les indications de traitement, conues par un homme (ou une quipe) et dont il est
question dans la pseudo-dfinition apporte plus haut.
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... de manire formelle...

Figure 2-11 : correction orthographique

On apprciera le sens de la phrase crite ci-dessus et pour lequel le traitement de


vrification effectu ne dtecte aucune faute d'orthographe.
On devine aisment que les indications consistent essentiellement dans ce cas munir
l'ordinateur d'une interminable liste de tous les mots acceptables (noms au singulier et au
pluriel, formes conjugues, articles, adjectifs,...) : une erreur est dtecte chaque fois qu'un
mot du texte n'est pas dans cette liste; sinon, c'est correct.
Il y a mieux : certains logiciels de traitement de texte sont accompagns d'un
"correcteur grammatical". Voici ce que donne, face la mme phrase, le "correcteur
grammatical" de mon traitement de texte favori :

Figure 2-12 : correction grammaticale

Il y a mieux : lorsqu'un mot fautif est dtect, une liste de corrections envisageables est
propose par le correcteur orthographique. Il est amusant de dcrypter dans les mots alors
proposs la stratgie - videmment purement formelle- suivie par le programmeur (= celui qui
a donn les indications).
Ainsi la phrase "J ai Laic desborder le l", conduit le correcteur orthographique
pingler le mot fautif "Laic", qui voit alors proposer comme candidats "Alice, Laciez, Laiss,
Laisse, Laisser, Laissez, Lache, Lain, Lait, Laies, Lac, Lanc". On apprciera le fait que
comme l'original, les mots proposs le sont en tout cas avec une majuscule. "desborder" lui ne
provoque l'apparition que de deux propositions (dont on notera la proximit smantique avec
"dborder" : "dessouder" et "destroyer" ! Enfin, "l" conduit aux suggestions "le, l, lai, lei,
let"... Voil autant d'illustrations du caractre formaliste des traitements.
Si l'on veut bien, pour quelques instants, se mettre dans la "peau de l'ordinateur" et
pour en terminer avec ces problmes de mots, tout pour "lui" (y compris nos plus beaux textes
franais) est comparable ce que sont pour vous les "textes" qui suivent :

CeFIS-FUNDP

Ch. Duchteau

11

... de manire formelle...

Initiation l'informatique

Figure 2-13 : premier texte en langue inconnue

ou

Figure 2-14 : second texte en langue inconnue

ou mieux encore

Figure 2-15 : troisime texte en langue inconnue

Je vous laisse le soin de souligner les mots fautifs du premier, de mettre au pass le
second et d'crire au pluriel, chaque fois bien entendu que vous le jugez opportun, le
troisime...Vous voil maintenant "le portugais" de chacun de ceux qui, comprenant
parfaitement ces textes, devraient vous donner pour chacune de ces tches les indications
ncessaires.

2.5

La programmation

On a dj pu goter aux plaisirs de la programmation en crivant les indications


ncessaires pour faire conjuguer notre ami portugais. Ce n'est pas mon propos ici d'en dire
plus sur le "faire faire", qui est au coeur de la programmation et qui se cache dans ma pseudodfinition d'ordinateur sous la petite phrase "pour autant qu'on lui ait indiqu comment mener
bien ce traitement".
J'avais signal ci-dessus que ce premier exemple de "programme pour faire conjuguer"
tait aussi le premier exemple d'un programme incorrect. On aura vu que si, fort de nos

12

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... de manire formelle...

explications, notre ami portugais se voit confier le soin de conjuguer le verbe "aimer", il
fournira sans sourciller "je aime", puisque c'est l ce que nos indications lui ordonnent. On
pourra toujours alors corriger7 la premire version en ajoutant les considrations
indispensables sur les verbes commenant par une voyelle. Puis on se rendra compte (toujours
en se limitant aux verbes rguliers du premier groupe -ceux en "er"-) qu'il y a aussi le
problme du "h" (j'hsite, mais je hume); ces "dtails" rgls, j'aurai la surprise de voir l'ami
portugais, servi par un utilisateur factieux, conjuguer sans problme "je cerisie" (premire
personne de l'indicatif prsent du verbe "cerisier") ou "je plombie"... et il me faudra alors lui
fournir, en plus des indications, la liste des verbes acceptables...
C'est cela le dfi qui est au coeur de la programmation : comment dcrire, sur la seule
base de la forme, sans jamais rfrer au bon sens ou une commune exprience, des
traitements d'informations que nous n'accomplissons pas de manire formaliste. Je l'ai voqu
plus haut, nous conjuguons essentiellement par euphonie et non pas en appliquant je ne sais
quelle rgle; nous conjuguons sans rflchir... Et mme lorsqu' l'cole fondamentale nous
avons appris conjuguer, l'essentiel tait dj fait : nous crivions sans doute parfois "ils
porte", jamais "vous portons".
Vous pouvez passer en revue les tches prcdemment classes comme "aisment
formalisables" (crire un nombre en toutes lettres, conjuguer, trier, calculer une drive) et
vous admettrez sans doute que l'adverbe aisment est peut-tre un peu exagr... sauf
lorsqu'on compare ces tches celles de la seconde colonne (rsumer, traduire, synthtiser,...).
C'est ce qui fait sans doute de la programmation -mme si d'autres difficults viennent
de ce que l'ordinateur est infiniment plus formaliste encore que notre ami portugais - une des
activits les plus inhabituelles et les plus complexes.

2.6

Et l'intelligence ?

Il est prsent vident que, de notre point de vue d'tre humain, d'autres termes
peuvent tre accols l'axe qui va de l' "aisment formalisable" au "trs difficilement
formalisable".
Trs facilement
formalisable

Trs difficilement (non !)


formalisable
Intelligent, sophistiqu
raison, entendement
abstraction, intuition
pense

Bte, rflexe, inconscient


imbcile, stupide

Figure 2-16 : axe de la difficult de formaliser

Plus les traitements concerns par le processus de formalisation exig se situent


droite sur l'axe, plus ils correspondent des tches qui rclament de notre part "de
l'intelligence". "Compter les mots d'un texte" n'est pas un travail trs sophistiqu (pour
nous !)8; "synthtiser un texte" est un travail comportant pas mal de "matire grise ajoute".
7
8

En informatique on dit "debugger" (ter les "bugs"); mme si l'exotisme du terme en amoindrit peut-tre
la porte, il s'agit bien de corriger des erreurs...
Mme si la description des traitements formaliss qui dcrivent ce processus n'est pas simple; on retrouve
nouveau le foss entre le "faire" (immdiat, rflexe,...) et le "faire faire" (qui ne peut se baser que sur
des considrations de forme); c'est ce foss qui constitue toute la difficult de l'activit de programmation.

CeFIS-FUNDP

Ch. Duchteau

13

... de manire formelle...

Initiation l'informatique

Ds lors, plus l'informatique s'attaque des tches difficilement formalisables pour


tenter de les formaliser, plus le comportement de l'ordinateur disposant de l'norme masse des
indications ncessaires l'accomplissement de cette tche - indications toujours formalistes nous parat "intelligent".
Battre un "grand matre" au jeu d'checs tait (est !) sans conteste considr comme
une preuve d'intelligence; aujourd'hui l'ordinateur quip des indications indispensables 9
gagne aux checs, mme quand il est oppos aux grands matres. Guid par un systme expert
adquat, l'ordinateur pose des diagnostics mdicaux, aide dtecter les pannes des
locomotives, seconde les spcialistes dans la dtection des champs de ptrole,...
Ceci, vu ce qui vient d'tre dit, montre dans un premier temps que tous ces processus
ont pu tre formaliss et dans un second temps pose la question de "l'intelligence", non de
l'ordinateur10, mais du couple ordinateur-indications de traitement.
Tout ce que je voudrais signaler ici c'est que, me semble-t-il,
1

cette question a du sens

il ne faut pas confondre "intelligence" et "conscience"

Si l'on veut bien en effet parler non d'intelligence, mais de comportements intelligents,
la question du comportement intelligent d'un systme (mme informatis) me semble pouvoir
tre pose11 et mrite plus qu'un haussement d'paules ou que les anathmes de ceux qui
dfinissent l'intelligence comme "ce que ne font pas (encore) les ordinateurs".
Il faut sans doute dissocier la question de l'intelligence et celle de la conscience : vous
pouvez me montrer votre intelligence, jamais vous ne pourrez me prouver votre conscience ou
le fait que vous "pensez". Le seul tre dont je sois certain qu'il est conscient et qu'il pense,
c'est moi. (et encore!!!).

2.7

Questions rcapitulatives
(Surtout 1, 2, 3, 7 et 8). Les autres sont l pour les "mordus".

1.

Pouvez vous classer chacun des exemples de traitements d'informations suivants sur
l'axe qui va du "facilement formalisable" au "trs difficilement formalisable". Justifiez
et expliquez votre rponse. Si vous pensez que le traitement est "assez aisment
formalisable", imaginez sans entrer dans le dtail comment on pourrait s'y prendre .
a.

b.

9
10
11

14

Dtecter dans un texte crit en franais les fautes d'orthographe d'usage ou les
fautes de frappe.
Informations en entre : le texte dactylographi
Informations en sortie : le mme texte avec les mots fautifs souligns.
Corriger dans un texte franais les fautes d'orthographe d'usage et les fautes de
frappe.
Informations en entre : le texte dactylographi

Ce qu'on appelle le "logiciel", et dans le cas du jeu d'chec on en devine la taille et la complexit...
Un ordinateur "tout seul" ou "tout nu" (= sans logiciel) , a n'existe pas; et comme a n'existe pas, a ne
peut forcment pas "tre intelligent".
et l'a t depuis bien longtemps (avant mme la naissance de l'ordinateur) par des gens comme Turing qui
considrait mme la question plus choquante "Les machines peuvent-elles penser ?" (Cf. Hofstater 87, pp.
61-76).
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

2.
3.

... de manire formelle...

Informations en sortie : le mme texte avec les mots fautifs corrigs.


c. Calculer la drive d'une expression mathmatique.
Informations en entre : la fonction driver
Informations en sortie : la fonction drive
d. Dtecter dans un texte crit en franais les fautes d'orthographe grammaticales.
Informations en entre : le texte dactylographi
Informations en sortie : une liste des erreurs dtectes avec les mots du texte
original qui sont en cause.
e. Fournir pour n'importe quel mot franais une liste des traductions anglaises
possibles.
Informations en entre : un mot franais
Informations en sortie : une liste de mots anglais constituant des traductions
possibles du mot fourni.
Pouvez vous donner un exemple de traitement formaliste d'un texte qui apporte
certaines "connaissances" sur ce texte.
Que pensez-vous de la dfinition formelle suivante d'un "mot" ?
C'est une suite non vide de caractres qui
- commence le texte ou est prcd d'un caractre dlimiteur
- termine le texte ou est suivi d'un caractre dlimiteur
- ne contient aucun caractre dlimiteur.
Les caractres dlimiteurs sont les suivants : ".?!:;,)( -" et l'espace et les guillemets.
Pouvez-vous trouver des exemples de mots (au sens o nous l'entendons
habituellement) qui chappent cette dfinition et, rciproquement, des exemples de
"mots" au sens de la dfinition ci-dessus qui ne sont pas des mots au sens habituel ?

4.

Soit le petit jeu "formel" suivant : 12


On va crire des expressions formelles qui vont seulement utiliser les trois symboles o,
P et G.. Parmi toutes les configurations possibles, nous en distinguons que nous
appellerons "Axiomes". Ce sont toutes les configurations du type
xPoGxo
o x n'est compos que de symboles o.
De plus, nous dirons que si x, y et z sont des chanes composes uniquement de
symboles o et si xPyGz est un axiome ou un thorme, alors xPyoGzo est aussi un
thorme.
Pensez-vous avec ces rgles que oooPooGooooo soit un thorme ?
Et ooPooGooo ?
Pensez-vous que dans ce contexte, un ordinateur puisse produire les thormes de mon
petit jeu ?
Pouvez-vous donner du SENS ce jeu formel ? Lequel ?

12

Cf. Hofstadter 85.

CeFIS-FUNDP

Ch. Duchteau

15

... de manire formelle...

5.

Initiation l'informatique

Pourriez-vous fournir les indications de traitement ncessaires un non biologiste


pour qu'il puisse dcrire un segment d'ADN, sur base de la donne d'un seul des deux
brins.
Appliquez votre "programme" au brin suivant :

6.

AATGCTA
Commentez le passage suivant :
Les molcules de la vie, protines et acides nucliques, portent leur information
inscrite sous la forme d'enchanements linaires d'acides amins (pour les protines)
ou de nuclotides (pour les acides nucliques). Ces successions de signes cods sont
analogues celles des lettres dans un mot, des mots dans une phrase ou d'un phrase
dans un paragraphe. Il est donc normal que les programmes mis au point par les
informaticiens pour traiter des chanes de caractres puissent tre adapts au traitement
de l'information biologique. Ces programmes permettent le stockage, le traitement, la
manipulation de l'information biologique. (tir de "L'aventure du vivant", de J. de
Rosnay, Editions du Seuil).

16

7.

Pourriez-vous citer l'une ou l'autre tche propos desquelles l'tre humain parlerait de
"traitement d'informations" et qui sont hors de porte (actuellement en tout cas) de
l'ordinateur ?

8.

Pourriez vous prciser dans quel contexte nous avons voqu le "critre du copain
portugais" ? Expliquez.

Ch. Duchteau

CeFIS-FUNDP

3
... des informations...

Le codage des informations


3.1

Introduction

Nous savons prsent que les traitements permis par l'ordinateur auront toujours un
caractre formel (ou formaliste) et que ds lors le mot "information" y prendra un sens trs
particulier.
Il reste cependant dire sous quelle forme les diverses informations devront tre
"crites" pour tre acceptable par l'ordinateur. Sous quelle forme l'ordinateur accepte-t-il un
texte, une image, des sons,...?
Ce que nous allons prsent dcouvrir c'est que
Pour qu'une information soit acceptable par l'ordinateur, il faut que
nous puissions la reprsenter, la coder par une srie finie de nombres
entiers.
Principe 3-1: codage de l'information
Les "connaisseurs" objecteront sans doute qu'en ralit, l'alphabet de l'ordinateur tant
binaire, il ne dispose pour "crire" les informations que nous lui fournissons que de 2
symboles (habituellement nots 0 et 1).
L'exprience m'a montr qu'il est inutile (et mme nuisible) ce stade de la dcouverte du
monde de l'informatique de polluer la dmarche par des dtails qui n'apportent rien d'essentiel
et vont au contraire mettre l'accent sur des caractristiques anecdotiques cette tape. Il
suffit de savoir que pour l'ordinateur "tout est nombre" et non qu'en plus, ces nombres, il ne
les crit pas comme nous le faisons.
Lorsqu'on en saura plus sur la "machine" ordinateur et son organisation interne, il sera
toujours temps de parler de l'criture des nombres en binaire. Inutile d'ajouter ici des dtails
qui augmentent le caractre mystrieux des traitements effectus par l'ordinateur.

3.2

Codage

Nous sommes tellement accoutums employer les signes qui constituent notre
langage crit que nous n'imaginons plus qu'il s'agit l d'un code1. Ainsi, vous tes
actuellement en train de lire ces quelques lignes, et de dcoder (sans en tre vraiment
1

Code : systme de symboles destin reprsenter et transmettre une information. (Le Petit Robert,
1993)

CeFIS-FUNDP

Ch. Duchteau

17

... des informations...

Initiation l'informatique

conscient) leur contenu. Notez qu'ici le mot "dcoder" est essentiellement employ dans le
sens de "comprendre". Cette lecture-dcodage ne vous demande d'ailleurs pratiquement aucun
effort.
C'est seulement si subitement vous vous trouvez face au "texte"
que ce dernier
va sans doute vous faire sursauter. Il y a l une succession de signes qui n'ont aucune
signification, aucun sens pour vous. C'est seulement si je vous indiquais le systme de codage
employ que, en associant chaque signe un autre signe -habituel-, vous reconstitueriez, sous
une autre forme le message cod, forme laquelle vous seriez capable d'associer un sens.
Notons que nous nous retrouvons nouveau aux prises avec des termes difficiles
comme signe (ou symbole), comme sens (ou signification).

Pourriez vous trouver des informations qui se prsentent sous plusieurs formes
diffrentes, mais en dessous desquelles nous identifions pourtant la mme
information ?

Une mme information peut souvent se prsenter sous des formes diverses. Ainsi,
TELEPHONE
ou encore

Tlphone

Tlphone

"

quatre
QUATRE
4
IV
IIII
Le vrai problme tant de savoir pourquoi nous disons qu'il s'agit pourtant chaque
fois de la mme information, alors que les formes sont pourtant diffrentes et qu'il n'y a aucun
rapport formel entre les "dessins"

et Tlphone.

Il faudrait d'ailleurs chaque fois y ajouter les sons ("katr", "tlfone'")


correspondants, mais ces sons il est impossible de les crire.
Un codage, ou un systme de codage, ce sera donc une correspondance qui permet
sans ambigut de passer d'une reprsentation d'une classe d'informations une autre
reprsentation des mmes informations, suivant un ensemble de rgles prcises.
Ainsi, le codage dans l'alphabet MORSE associe diffrents caractres une
reprsentation faisant appel seulement deux symboles point (.) et barre (-), ce mode de
reprsentation tant particulirement adapt la transmission par tlgraphe.
Lorsque nous avons profondment intgr, lors de notre apprentissage, un systme de
codage, le passage d'une reprsentation de l'information une autre nous est naturelle et nous
sommes capable de coder et dcoder sans devoir beaucoup rflchir. Ainsi en est il de la
dicte o nous codons sous forme crite des sons qui parviennent nos oreilles2; ou encore de
l'criture en chiffres d'un nombre crit en toutes lettres.3
La situation est plus dlicate lorsque le systme de codage est inaccoutum : il nous
faut alors patiemment apprendre et exercer le systme inhabituel, jusqu' ce qu' nouveau
2

18

Avec les anecdotes bien connues lorsque l'information n'est pas reconnue donc mal transcrite. Lisez donc
haute voix la phrase suivante (que je transcris phontiquement) puis tentez de l'crire : "Lai poul ctai
sv dai kon leur avai ouvair la porte."
J'aime beaucoup cet exemple car j'ai encore trs vivaces dans la mmoire les souvenirs des exercices de
transcription que nous faisions en 3me ou 4me primaire, o il s'agissait d'crire en chiffres des nombres
donns en lettre et rciproquement. Ainsi, si aujourd'hui "vingt-deux" et "22" reprsentent la mme
information, cela rsulte d'un apprentissage que nous avons tous men dans notre enfance.
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

nous en ayons intgr les rgles. Un bel exemple en est l'alphabet morse dont les dbutants
dchiffrent pniblement les messages lettre aprs lettre et que les experts sont capables de
"lire" presque couramment.
En tant qu'tre humain, nous parlerons videmment plus volontiers de code ou de
codage lorsque nous n'avons pas encore assimil (par apprentissage) le systme de
reprsentation en question.

3.3

Des questions plus que des rponses

Notons que les quelques lignes qui prcdent posent plus de questions qu'elles
n'apportent de rponses. Et ceci est li l'ternel dbat, rveill par l'informatique, entre forme
et sens. Ce sont ces questions qui sont au coeur de disciplines comme la linguistique ou la
smiologie (mme si l'on y parle plutt de "signifiant" (forme) et "signifi" (sens)). Je ne
souhaite pas ici prolonger ce dbat, mais il est vident que des questions comme les suivantes
sont au coeur de l'informatique :
-

Puisque "4" et "quatre" reprsentent ou voquent pour nous (tres humains parlant
franais) la mme chose, quelle peut bien tre cette chose ? (Notons que le fait d'crire
"information" au lieu de "chose", mme si elle montre que cette question est au coeur
de l'informatique, ne change rien la question).

Est-ce que ce que nous nommons sens ou signification est autre chose qu'une forme
particulire au sein de notre cerveau, qu'une certaine configuration de circuits
neuronaux ?

On est videmment loin de la technique, des RAM et des MegaBytes avec ce type de
problmatique. Certains trouveront sans doute ces questions sans intrt; pourtant l'ambition
de l'informatique n'est elle pas de formaliser la plupart des traitements dont nous sommes
capables : lire, crire un texte sous la dicte, reconnatre un visage au milieu d'une centaine
d'autres,...

3.4

Codage pour l'ordinateur

Pour qu'une information 4(ou qu'un ensemble d'informations) soit acceptable par
l'ordinateur, il faut que nous puissions la coder, la reprsenter sous la forme d'une srie finie
de nombres entiers. On verra dans la suite qu'en ralit ces nombres eux-mmes sont crits en
binaire (et non en dcimal), mais cela est sans importance pour l'instant. Nous allons donc
prsent passer en revue un certain nombre d'informations donnes sous des formes qui nous
sont habituelles et dcider si ces informations sont codables sous forme de sries de nombres
entiers et proposer un tel systme de codage.

Pourriez vous imaginer un codage en une srie finie de nombres entiers pour
l' information suivante :
BONJOUR
A quel ensemble d'informations votre systme de codage est-il applicable ?
Pourrait-on l'tendre ?

En laissant ce mot tout le flou ncessaire...

CeFIS-FUNDP

Ch. Duchteau

19

... des informations...

3.5

Initiation l'informatique

Codage de texte

Il est vraiment fort simple de dcouvrir une premire bauche de solution la petite
question pose ci-dessus. Il suffit videmment d'associer lettres majuscules et chiffres
A

1
B

2
C

3
...
...
...
Z

26
Ainsi, le code peut-il se dcrire par la correspondance :
Ensemble
des
majuscules
une lettre majuscule
et ds lors

lettres

Ensemble des entiers (de 1 26)


son numro d'ordre dans l'alphabet

BONJOUR
se coderait par
2 15 14 10 15 21 18
Mais on devine immdiatement que, comme seules les majuscules sont codables dans
ce systme, il ne serait pas possible de coder les informations suivantes :
COMMENT VAS TU ?
(puisqu'on n'a pas associ de nombre l'espace et au point d'interrogation)
et encore moins
J'hsite; peut-tre, parler d'INFORMATION !
puisque les lettres minuscules, les minuscules accentues, les signes de ponctuation ne sont
pas cods (du moins dans le code propos).
Il est pourtant facile d'imaginer des extensions possibles pour que chacun des
caractres habituellement utiliss trouve un numro. Ceci a donn lieu plusieurs systmes de
codage dont les plus connus sont le systme ASCII et le systme ANSI.

3.5.1 Le code ASCII


Primitivement, ce code (qui signifie American Standard Code for Information
Interchange) (Code amricain standard pour l'change d'informations) permettait de
reprsenter 128 caractres diffrents.
Les caractres qui nous sont habituels commencent au numro 32. Ainsi, l'espace
correspond l'entier 32. Les caractres-chiffres reoivent les numros entre 48 et 57. A a le
code 65 et a le code 97.
esp
!
"
#
$
%
&
'
(
)
20

32
33
34
35
36
37
38
39
40
41

0
1
2
3
4
5
6
7
8
9

48
49
50
51
52
53
54
55
56
57

A
B
C
D
E
F
G
H
I
J

65
66
67
68
69
70
71
72
73
74

[
\
]
^
_
`

Ch. Duchteau

91
92
93
94
95
96

a
b
c
d
e
f
g
h
i
j

97
98
99
100
101
102
103
104
105
106

{
|
}
~

123
124
125
126

CeFIS-FUNDP

Initiation l'informatique

*
+
,
.
/

42
43
44
45
46
47

:
;
<
=
>
?
@

...des informations...

58
59
60
61
62
63
64

K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122

Figure 3-1 : le code ASCII

On est videmment en droit de se poser deux questions :


-

pourquoi les entiers de 0 31 ne sont-ils pas repris pour coder certains des caractres ?

qu'en est-il de toutes les lettres accentues (,,,,,...) et autre ?

1.

Les premiers entiers positifs disponibles correspondait (et correspondent encore) des
caractres spciaux : les caractres de contrle. Ces derniers datent des dbuts de
l'informatique et nous hritons l, comme souvent, de choix faits dans le pass et dont
la pertinence n'est plus aujourd'hui vidente.
Ces caractres de contrle servent provoquer des ractions particulires des systmes
informatiques. Ainsi, fort souvent le caractre cod 7 provoque un bip sonore. Le
caractre cod 13 est celui correspondant l'appui sur la touche Entre (aussi appele
Return) et marque sur le clavier par le symbole (on appelle souvent ce caractre
"retour du chariot", en anglais "carriage return" par analogie avec le "retour du
chariot" des machines crire). De mme, on le dcouvrira sans la suite, ces caractres
de contrle sont employs par exemple par l'ordinateur pour signaler aux imprimantes
des changements effectuer lors de l'impression : passage des caractres italiques,
gras,... alors que les caractres habituels sont simplement imprims.

Sur les ordinateurs de type PC ces caractres de contrle s'obtiennent gnralement


en combinant l'appui sur une touche particulire du clavier, la touche Control
(marque Ctrl) avec l'appui sur une touche normale. Ainsi le caractre de code 1,
s'obtient en appuyant simultanment sur Ctrl et a. Le caractre de code 2 s'obtient en
enfonant Ctrl et b, etc.

Une remarque importante ici : nous aurons l'occasion de signaler plus loin dans le
cours que "l'ordinateur n'existe pas", ce slogan exprimant le fait que ce que nous avons
toujours en face de nous c'est un couple "ordinateur + logiciel"5. Il n'est donc pas
possible de prvoir coup sr le comportement du systme "ordinateur + logiciel",
tant que nous n'avons pas prcis quel est ce logiciel.
5

Le logiciel, ce sont les programmes, les "indications de traitement" dont il est question dans la dfinition
propose au dbut. C'est le logiciel qui dtermine le comportement de l'ordinateur lorsqu'il reoit un
"caractre".

CeFIS-FUNDP

Ch. Duchteau

21

... des informations...

Initiation l'informatique

Ds lors l'effet d'un caractre de contrle sur le systme ne peut tre prvu que si l'on
connat le logiciel, le programme, qui est actuellement en train de guider, de gouverner
le comportement de l'ordinateur. Ainsi, le caractre cod 7 ne provoque pas toujours
6un bip sonore.
2.

Le code ASCII primitif permettait de coder les 128 caractres ncessaires l'criture
des textes anglais (qui ne connaissent pas les lettres accentues). Face aux besoins des
utilisateurs non anglophones, le nombre de caractres cods a t tendu : les entiers
de 128 255 permettant de coder 128 caractres supplmentaires pour donner ce qu'on
appelle le code ASCII tendu :
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193

194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215

216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237

238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255

Figure 3-2 : le code ASCII tendu

Comme le montre le tableau ci-dessus, les caractres accentus sont prsent cods.
On y trouve galement des caractres "graphiques" comme ,, etc.. Ces caractres
peuvent servir "dessiner" des encadrements comme

TITRE

Les caractres grecs ainsi qu'un certain nombre de symboles sont galement cods (par
des entiers entre 128 et 255).
Signalons enfin que les 128 derniers caractres de ce code ASCII tendu peuvent tre
diffrents selon les besoins des langues utilisatrices.
6

22

toujours est un mot viter lorsqu'on tente de dcrire des rgles de comportement de l'ordinateur. Mais
c'est ce dernier terme "ordinateur" qui employ seul n'a pas de sens : le seul mot pertinent est "systme
informatique" qui englobe alors l'ordinateur et le programme qui est en train de le contrler. Aucune rgle
n'est valable pour "l'ordinateur", on peut seulement donner des rgles pour "tel systme".
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

3.5.2 Le code ANSI


Enfin, ct du code ASCII, apparat un autre systme de codage qui tend tre de
plus en plus frquemment utilis : le code ANSI (manant de l'American National Standards
Institut). Les 128 premiers nombres (de 0 127) codent les mmes caractres que le code
ASCII. Par contre les 128 derniers codent des caractres diffrents :
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149

150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171

172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193

194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215

216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237

238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255

Figure 3-3 : le code ANSI

3.5.3 Le code UNICODE


Enfin, il est peu prs certain que dans les annes qui viennent un nouveau code va
s'imposer qui permettra, en utilisant les entiers entre 0 et 65535, de coder 65536 caractres
diffrents.

Pourquoi, pensez-vous, les nombres de caractres cods dans les diffrents


systmes dcrits (128 pour ASCII, 256 pour ASCII tendu, 65536 pour
UNICODE) sont-ils ce qu'ils sont plutt que 100, 500 ou 50.000 ?

Si nous rcapitulons la dmarche suivie dans le cas du codage de texte, nous


constatons que
-

nous avons scind, dcoup l'information coder en une srie de constituants


lmentaires (dans notre cas les caractres qui composeront les morceaux de textes)

nous avons associ un nombre chacun des ces constituants lmentaires, des
constituants diffrents tant bien entendu reprsents par des nombres diffrents et
chaque constituant se voyant associer un nombre;

une information tant alors une suite de ces constituants (un texte est une suite de
caractres), nous la codons grce la suite des nombres correspondants.

CeFIS-FUNDP

Ch. Duchteau

23

... des informations...

Initiation l'informatique

Deux remarques ce stade :


-

Remarquez quel point cette criture en nombres constitue bien ce que nous appelons
un codage tant donn notre difficult dchiffrer le message correspondant, le
dcoder. Dcoder signifie d'ailleurs pour nous, passer de l'criture "en nombres"
l'criture habituelle "en caractres" qui va prendre du sens. Combien de temps,
d'apprentissage et d'exercices nous faudrait-il pour devenir capable de lire un message
"en nombres" et ce qu'il prenne immdiatement un sens, sans repasser par l'criture
"en caractres".

Il est important de percevoir que le rle de ce que nous appelons en informatique un


priphrique d'entre 7est d'automatiser au maximum le passage d'une forme qui nous
est familire ("BONJOUR") la forme que rclame l'ordinateur (une suite de nombres
entiers). Ainsi, pour le codage du texte, le clavier (et l'intervention de programmes
logs dans l'unit centrale) permet ce codage. Notons aussi que l'automatisation du
processus n'est que trs partielle puisqu'il faut toujours un tre humain face ce clavier
pour transformer des mots crits sur une feuille de papier ou des sons en frappes sur
des touches qui activeront le codage8.

3.6

Codage des nombres rels

Voyez-vous une possibilit (ou des possibilits diffrentes) de coder (sous forme
d'une srie d'entiers) n'importe quel nombre comportant une virgule (compos ds
lors d'une partie "entire" et d'une partie "dcimale", comme -23,85 ou 0,067") ?

Nous pourrions inventer bien des manires de coder les nombres et cela en fonction de
la manire dont nous allons morceler l'information "nombre" en constituants lmentaires.
Ainsi, nous pouvons voir "236", comme un "mot", une suite de caractres et la coder
comme telle : nous sommes alors ramen au cas prcdent. Ainsi dans le texte "ils taient 236
prsents", "236" est vu simplement comme une suite de caractres et sera cod en utilisant 3
nombres entiers (par exemple travers le code ASCII. "236" est dans ce cas un mot et non un
nombre.
Mais il est de nombreux cas o 236 doit tre considr comme un nombre entier et
devra pouvoir tre manipul comme tel (il faudra pouvoir le faire additionner ou soustraire
d'un autre). Il est alors indispensable que 236 soit cod comme un entier.

24

Comment, lorsque nous frappons 236 au clavier, l'ordinateur peut-il savoir qu'il s'agit
d'un mot ( coder en accord avec le code ASCII) ou qu'il s'agit d'un nombre entier (
coder comme tel) ?

Un priphrique d'entre est un des canaux par lequel l'ordinateur reoit des informations venues de
l'extrieur. Ainsi le clavier, la souris, le scanner,... sont des priphriques d'entre. Les priphriques de
sortie sont les canaux travers lesquels l'ordinateur nous rend les informations aprs traitement, comme
l'cran ou l'imprimante.
Cf. plus loin d'autres manires de s'en sortir...
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Le plus simple pour les entiers, puisque nous devons les coder sous la forme d'entiers
est videmment de les laisser tels quels; le codage de 236 est btement 236.9
En ce qui concerne les nombres avec une virgule, de nombreuses solutions sont
envisageables :
-

On peut les voir comme des "mots", on les code alors comme ces derniers par la suite
des codes des caractres les constituant.

Si on souhaite les considrer comme des nombres, on pourrait imaginer de scinder ces
nombres en deux constituants : la partie entire d'une part et la partie dcimale d'autre
part. Ainsi le nombre -23,85 se coderait par la suite des deux entiers -23 et 85. On
devine cependant immdiatement la difficult de ce type de codage : comment
coderait-on -23,085, ou -23, 0085 ? tant entendu que, vu comme des nombres 85, 085
ou 0085 sont en ralit le mme nombre (les deux dernires critures tant d'ailleurs
inhabituelles).
Si l'on persiste dans cette voie, on devine qu'il faut en quelque sorte indiquer le rang de
la partie dcimale (s'agit-il de 85 centimes, de 85 millimes, ... ?).On coderait par
exemple :
-23,85
-23,085
-23,0085

?
-

-23
-23
-23

85
85
85

2
3
4

(= 2 chiffres aprs la virgule)


(= 3 chiffres aprs la virgule)

Avec ce systme de codage, pourriez-vous dire quels sont les nombres


correspondants aux codes suivants :
0
3
2
-12
13
4
22
123
2
?

On va se rapprocher du systme de codage rellement employ (en tout cas au niveau


du principe) en remarquant qu'on peut toujours crire le nombre sous la forme d'une
fraction dont le numrateur reprend l'entier crit avec tous les chiffres du nombre (sans
se proccuper de la virgule) et dont le dnominateur est 1, 10, 100, 1000 ou une autre
puissance de 10.
Ainsi
-23,85

-2385/100
-2385
100
-23,085

-23085/1000
-23085 1000
-23,0085

-230085/10000
-230085 10000
qu'on pourrait encore videmment coder, puisque le second lment du code est
toujours une puissance de 10, en indiquant quelle est cette puissance :
-23,85
-2385/100
-2385
2 (= le dnominateur est 100, soit 10 2 )
-23,085 -23085/1000 -23085 3 (= le dnominateur est 1000, soit 10 3 )
-23,0085 -230085/10000 -230085 4

La question se pose videmment de savoir comment le systme informatique "comprend" lorsque nous
frappons 236 au clavier qu'il s'agit du mot constitu des 3 caractres 2, 3 et 6 (qui seront alors cods en
accord avec le code ASCII) ou bien qu'il s'agit de l'entier 236. Comme toujours, la rponse cette
question consiste simplement signaler qu'un systme informatique, ce n'est pas l'ordinateur "tout nu",
mais plutt l'ordinateur quip de tel logiciel prcis. C'est le logiciel qui indique alors si 236 doit tre
cod comme une suite de 3 caractres ou plutt comme un nombre entier.

CeFIS-FUNDP

Ch. Duchteau

25

... des informations...

Initiation l'informatique

Il ne reste plus qu'un tout petit pas accomplir pour arriver au codage des rels en
virgule flottante tel qu'il est pratiqu en informatique.
On crira alors :
-23,85
= -2,385 x 10 1 -2385 1
(-2385
est
la
succession des chiffres significatifs, la mantisse du nombre et 1 est l'exposant de 10)
-238,5
= -2,385 x 10 2 -2385 2
(-2385
est
la
succession des chiffres significatifs, la mantisse du nombre et 2 est l'exposant de 10)
-0,02385
= -2,385 x 10 -2 -2385 -2
(-2385
est
la
succession des chiffres significatifs, la mantisse du nombre et -2 est l'exposant de 10)
-23,085
= -2,3085 x 10 1 -23085 1
(-23085
est
la
succession des chiffres significatifs, la mantisse du nombre et 1 est l'exposant de 10)

26

Avec ce systme de codage, pourriez-vous dire quels sont les nombres


correspondants aux codes suivants :
1056
0
1056
3
1056
-1

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

3.7

...des informations...

Codage de dessins

Imaginez que vous disposiez d'une feuille de papier portant le dessin suivant :

Figure 3-4 : dessin coder

Pourriez-vous proposer un systme de codage (sous la forme d'une suite de nombres


entiers) pour ce dessin ?

On remarque que les informations portes par cette feuille sont en noir et blanc et sont
constitues de portions de texte "imprim" ou "manuscrit", de caricatures, de dessins, ...
Il est sans doute plus malais ici de proposer une stratgie. Le principe en est pourtant
bien connu : c'est celui du tramage; on va en quelque sorte poser une grille (aussi serre que
possible) sur l'image. Deux nombres seront d'emble important pour dcrire cette grille : le
nombre de petits carrs en largeur et ce mme nombre en hauteur. Plus ces nombres sont
levs, plus la surface de chaque petit carr est petite (et plus le dessin tram sera proche de
CeFIS-FUNDP

Ch. Duchteau

27

... des informations...

Initiation l'informatique

l'original). Cela fait, on examinera l'intrieur de chacun de ces petits carrs avec un critre qui
permette de dcider s'il doit tre considr comme noir ou comme blanc. On obtient donc
pour toute l'image un quadrillage comme celui montr ci-dessous pour une partie :

Figure 3-5 : partie agrandie d'une figure trame

Il ne reste plus alors qu' en dduire une longue liste d'entiers : d'abord le nombre de
carrs sur la largeur, puis ce nombre sur la hauteur, puis une succession de 0 (pour coder par
exemple "carr blanc") ou de 1 (pour coder "carr noir").
Si le dessin original est en couleur, le principe du tramage ne change pas; il faut
seulement plus de nombres diffrents pour reprsenter les couleurs prendre en compte.

3.7.1 Discrtisation
Il faut noter que, pour la premire fois, nous avons t contraint de remplacer (coder)
une image comportant (en thorie en tout cas) une infinit de points (encore que cette phrase
comporte les deux termes bien embarrassants infinit et point) par une image constitue d'un
nombre fini de (petits) carrs. Le processus de numrisation (transformation d'informations en
une srie de nombres entiers) (on dit aussi parfois digitalisation) s'est ici accompagn d'une
discrtisation.
C'est la mme discrtisation qui est l'oeuvre lorsque nous remplaons une courbe
bien lisse

28

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Figure 3-6 : courbe continue

par une approximation qui n'utilise plus qu'un nombre fini de segments :

Figure 3-7 : approximation d'une courbe

Un processus de discrtisation10 consiste donc remplacer des informations ayant un


caractre continu ou prsentant une "infinit" de valeurs et donc non dcomposables en
constituants lmentaires, par une autre forme (apauvrie) de ces informations ne comportant
plus qu'un nombre fini de constituants distincts et bien spars.

3.7.2 Pertes d'informations


Des termes sont videmment obligatoirement lis ce codage par discrtisation :
approximation, passage du lisse du morcel, de l'infini au fini...
Dans tous les cas, on admettra que ce processus de discrtisation remplace des formes
par d'autres formes qui les approximent mais sont moins riches ou moins prcises que les
formes originales.
Jusqu'ici, le codage se faisait sans perte d'information qu'il s'agisse de texte (vu comme
suite de caractres) ou de nombre11. On sent bien qu'ici le codage d'une image est en ralit le
codage d'une approximation de cette image et que quelque chose est dfinitivement perdu
dans ce processus : on ne pourra plus repasser de l'image code l'image originale.

10

11

Dans le Petit Robert, discret est dfini comme "qui ne peut prendre qu'un nombre fini ou dnombrable de
valeurs". Dans (Politis 83), on trouve la dfinition "qui dsigne ou reprsente des donnes sous forme
d'lments distincts ou spars tels que des caractres ou des grandeurs physiques ne pouvant prendre que
des valeurs distinctes ou spares".
Encore que, on le verra dans la suite, les tailles possibles de la mantisse et de l'exposant seront limites et
que, ds lors, il arrivera qu'un nombre comportant trop de chiffres significatifs soit tronqu lors de son
codage en machine.

CeFIS-FUNDP

Ch. Duchteau

29

... des informations...

Initiation l'informatique

3.7.3 Automatisation du codage bitmap


Il existe videmment (heureusement) un dispositif qui automatise cette opration de
tramage et de numrisation : le scanner. On y glisse la feuille portant le "dessin" concern et
ce dernier est automatiquement tram et transform en une srie de nombres qui sont envoys
l'unit centrale de l'ordinateur. Pour peu que ce dernier soit quip du logiciel adquat, il est
alors capable de reconstituer le dessin (avec les pertes d'informations lies au processus de
discrtisation) et de l'afficher l'cran. Le scanner est donc un priphrique d'entre capable
de procder au codage que nous venons de mettre en vidence.
Ce que nous avons dit des priphriques d'entre s'applique videmment de manire
duale aux priphriques de sortie : accompagns des logiciels adquats, ces derniers dcodent
les informations qui avaient t codes; autrement dit, ils sont capables de restituer les
informations sous la forme qui nous est habituelle sur base des sries d'entiers qui codent ces
mmes informations l'intrieur de l'ordinateur. Ainsi l'cran ou l'imprimante recevant de
l'unit centrale les entiers codant l'image vont nous rendre celle-ci, avec l'approximation lie
au mode de codage.
Le dessin comportant une "infinit" de points prsent ci-dessus est videmment une
tromperie : tel que vous le voyez, il figure sur un document prpar l'aide de l'ordinateur;
l'original a donc forcment d subir le traitement voqu (pour tre digr par le systme
informatique) : il a t discrtis (et d'ailleurs modifi) et la version sortie sur l'imprimante (et
que vous avez sous les yeux) est le dcodage de la version discrtise, donc ne comportant
plus qu'un nombre fini de points. Et d'ailleurs, existe-t-il vraiment des dessins "naturels"
comportant une infinit de points ? La digitalisation (et la discrtisation qui la rend possible)
doit donc plutt se comprendre comme le passage d'un dessin comportant beaucoup de points
une approximation en comportant moins. Mais comme l'esprit humain peut (?) imaginer
l'infini (qui n'existe sans doute que comme une idalisation propre notre intelligence), il est
plus facile de parler d'un processus qui ferait passer d'un dessin comportant cette "infinit" de
points une version discrtise qui n'en comporte qu'un nombre fini.
Cette manire de coder un dessin en une srie de nombres s'appelle une reprsentation
bitmap.

C'est un codage de ce type qui est sous-jacent au travail de la plupart des logiciels de
traitement de dessin de type "paint" : ils agissent sur des reprsentations discrtises
des graphiques manipuls.

Une reprsentation (ou un codage) bitmap d'un dessin est d'un constitue d'un nuage
de points, chacun de ces points (ou plutt de ces minuscules carrs) s'appelant un pixel
(picture element).

30

Si les deux premiers nombres du codage suivant donnent le nombre de pixels en


largeur et en hauteur et si les nombres qui suivent dcrivent la couleur de chaque
pixel (0 pour blanc et 1 pour noir), pourriez vous reconstituer le dessin reprsent ?
13 8
00000010000000000011100000000011011000000011000110000011111111100011
000000011011000000000110000000000000
(Ne passez cependant pas trop de temps ce petit jeu !)

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Imaginez que vous disposiez d'une feuille de papier portant le dessin suivant :

Figure 3-8 : autre dessin coder

Pourriez-vous proposer un systme de codage (sous la forme d'une suite de nombres


entiers) pour ce dessin ?

3.7.4 Codage vectoris


Il existe une autre manire de coder un graphique, c'est d'y dceler certains objets et de
coder la nature et la caractristique de ces derniers. Ainsi, plutt que de voir sur la page
prcdente un ensemble de points noirs et de points blancs (comme dans le codage prcdent),
on peut reconnatre deux objets : un rectangle (cod par exemple 3) dont le coin infrieur
gauche est 12 du bas de la feuille et 7 du bord gauche et dont la hauteur est 14 et la
longueur 30); un cercle ensuite (cod 6) dont le centre est ... et le rayon est de ...
On devine que l'on va pouvoir de cette manire fournir au systme informatique une
srie d'entiers reprsentant non plus des points mais des objets de divers types assortis (du
codage) des caractristiques qui leur sont propres.
La reprsentation du dessin est ici vectorise ou vectorielle. Il ne s'agit donc plus d'un
nuage de points mais d'une collection d'objets (segments, figures gomtriques, courbes,...),
chacun tant cod par des nombres qui le caractrisent.
Comme toujours, ce type de codage ne vaut que si des logiciels me permettent d'agir
de manire simple sur les graphiques cods de cette manire. C'est bien entendu le cas
travers plusieurs logiciels (qui comportent alors souvent la mention "draw" dans leur nom).
On y manipule les objets graphiques prsents l'cran (et correspondant au dcodage des
versions vectorises) l'aide de priphriques comme la souris. Mais lorsqu'on manipule par
exemple un carr, ce dernier n'est videmment plus vu comme un ensemble de points, mais
comme une entit, et il n'est pas possible de modifier la couleur d'un point du carr (puisque
ce dernier n'est plus constitu de points).
Plusieurs consquences doivent tre tires ce cet autre codage :
-

D'abord, on comprend aisment la difficult d'identifier les objets pertinents; nous


reconnaissons aisment, un rectangle, un carr, un segment, et nous sommes donc
capables de fournir l'ordinateur (si nous connaissons le code respecter) les entiers
correspondants; cela mme, signalons-le immdiatement, si ce n'est pas vraiment de
cette manire que nous allons fournir l'ordinateur les objets graphiques souhaits.

CeFIS-FUNDP

Ch. Duchteau

31

... des informations...

Initiation l'informatique

Mais on devine immdiatement la difficult pour un systme informatique de


reconnatre, de manire autonome (automatique), dans un graphique, des objets
pertinents; ainsi, si nous reprenons le premier dessin propos, quels objets un systme
informatique pourrait-il bien y dceler, sur base de quels critres, avec quelles
caractristiques ?

Voyez-vous cependant une situation o l'on ait fait l'effort de doter l'ordinateur d'un
logiciel qui le rende capable de reconnatre au sein d'un "graphique" certains
"objets" ?

Il parat en tout cas vident qu'il faut avoir dcrit pralablement au systme les objets
ou les types d'objets qu'on peut alors lui demander de reconnatre ou de dtecter au
sein d'un graphique. Il reste alors le rendre capable d'y dtecter les objets (les
formes) concerns : c'est tout le problme de la reconnaissance des formes.
-

Si donc ce type de codage ne permet pas aisment (= automatiquement) de passer


d'une feuille de papier portant un graphique une reprsentation o les nombres
codent des objets et leurs caractristiques, c'est pourtant lui qui est au coeur des
logiciels graphiques de type "draw". Ces logiciels permettent l'utilisateur, le plus
souvent grce la souris (ou un autre dispositif de pointage), de crer des objets
(formes gomtriques, segments,...) pr dfinis (au sein du logiciel). Ces objets sont
dans ce cas cods d'aprs leur genre et leurs caractristiques, selon la mthode
envisage.

3.7.5 La reconnaissance optique des caractres

Imaginez que vous disposiez d'une feuille de papier portant le texte suivant :
BONJOUR
COMMENT CA VA ?
Pourriez-vous proposer un systme de codage (sous la forme d'une suite de nombres
entiers) pour ce "dessin"?

Il est pourtant un cas o une reconnaissance automatique d'objets (et le type de codage
vectoris correspondant) est utilis : c'est celui de la reconnaissance automatique des
caractres. Ainsi, pour une feuille du type de celle portant les quelques mots ci-dessus, le
texte va dans un premier temps tre scann et donc la feuille sera code en une succession de
points noirs et de points blancs (codage bitmap) comme ci-dessous.

Figure 3-9 : partie agrandie d'une reprsentation bitmap de caractres

32

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Cela fait, un logiciel de reconnaissance de caractres, va dtecter dans ce qui n'est


alors qu'un nuage de points12, des caractres. Il le fera bien videmment en tentant de faire
coller certains des nuages de points avec des formes pr dfinies (que nous lui aurons
fournies). Il pourra donc sans problme reconnatre les caractres BONJ dans les nuages
montrs ci-dessus. Les caractres tant identifis, ils seront alors cods travers un code
adapt (par exemple le code ASCII), comme si un tre humain les avait frapps au clavier.
Il est bien entendu des cas o les nuages de points n'offrent qu'une ressemblance
beaucoup plus dgrade avec les formes connues :

Figure 3-10 : partie agrandie d'une reprsentation dgrade

S'agit-il ici de BONJ, de RONJ, de RQNJ de RONU ? Et l'on devine la difficult de


cette reconnaissance lorsque le texte scann pralablement (pour donner naissance aux nuages
de points) est manuscrit ...
Il est essentiel ici d'avoir peru le cheminement qui fait passer de signes sur du papier
des nombres qui sont les codes ASCII des caractres. On rend en quelque sorte l'ordinateur
capable de lire, de reconnatre en des signes tracs sur une feuille des caractres. Le vrai
problme n'est pas de transformer les signes en nuages de points (ou en la srie des nombres
qui reprsentent ces nuages de points), cela le scanner peut s'en charger. Le problme difficile
c'est de faire reconnatre dans ces nuages des configurations qui peuvent s'interprter comme
des caractres. C'est l qu'est toute la difficult de la reconnaissance optique des caractres (en
anglais OCR : Optical Character Recognition).

3.8

Codage de sons

Pourriez vous faire digrer votre ordinateur les 5 premires secondes du premier
mouvement du concerto n 23 pour piano de Mozart ?
N'oubliez pas qu'une fois de plus ces 5 secondes de musique devront tre
transformes en une srie finie de nombres entiers

On pourrait sans doute penser coder la partition musicale correspondante : des


nombres pour la succession des notes, des nombres pour leur dure, des nombres pour
dsigner la cl et les altrations, et cela pour chaque instrument... Comme une partition est
finalement constitue d'un nombre fini de symboles distincts, on pourra attribuer chacun des
symboles pertinents un entier... et le codage est termin.

12

En se rappelant bien que ce nuage de points est en ralit une suite de nombres...

CeFIS-FUNDP

Ch. Duchteau

33

... des informations...

Initiation l'informatique

C'est en ralit le son lui mme ou plutt le signal lectrique auquel il donne naissance
(pour peu qu'on dispose d'un micro) qui va tre cod (aprs une discrtisation analogue celle
opre pour les images).
Mais il est sans doute bon d'abord de rappeler quels sont les principes qui prsidaient,
par exemple, la gravure des (anciens) disques (les 33 ou 45 tours "noirs") et comment sur
base d'un tel disque grav on pouvait reconstituer un son analogue celui qui avait t "mis
en conserve" dans le disque considr.

Figure 3-11 : enregistrement analogique des sons

34

1.

Les vibrations sonores (ondes sonores) qui ne sont que des mouvements des molcules
de l'air, font vibrer la membrane d'un micro.

2.

Ces vibrations de la membrane, analogues (semblables) aux vibrations de l'air qui leur
ont donn naissance, sont transformes ( l'aide d'un lectroaimant) en un signal
lectrique dont l'amplitude et la frquence traduisent la force et la hauteur du son qui
l'a provoqu. Le micro transforme donc les oscillations acoustiques en oscillations
lectriques.

3.

Le signal lectrique provoque alors des mouvements d'un stylet graveur qui traduit les
oscillations lectriques en mouvements et donc en une gravure plus ou moins profonde
d'un sillon dans une matrice qui servira produire les disques.

4.

Chaque disque porte donc un trs long sillon en spirale et dont les caractristiques
refltent finalement les vibrations sonores qui ont t l'origine de tout le processus.

5.

A l'inverse, un lectrophone est essentiellement dot d'une aiguille de lecture dont les
mouvements, engendr par le sillon du disque, sont transforms en signal lectrique.

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

6.

...des informations...

Ce signal lectrique est amplifi et met en mouvement la membrane d'un haut-parleur.


Les oscillations de cette membrane mettent l'air en mouvement et font natre une
vibration acoustique analogue celle qui avait donn naissance tout le processus.

Il faut remarquer que dans les tout premiers dispositifs d'enregistrement, le micro tait
remplac par un norme pavillon, ce dernier accol une membrane canalisait les oscillations
acoustiques et les mouvements de la membrane se transmettaient un stylet graveur qui lui
tait solidaire et qui gravait un sillon dans un cylindre de cire en rotation. Il n'y avait donc pas
de signal lectrique engendr par le processus. Il suffisait inversement de placer le stylet qui
jouait alors le rle de "lecteur" sur le sillon ainsi grav et de remettre le cylindre en rotation
pour que la membrane vibre et engendre des oscillations sonores amplifies par le pavillon.
Si l'on veut que l'ordinateur puisse digrer les sons, il est indispensable qu' un
moment du processus, il y ait codage sous la forme d'une srie finie de nombres. C'est le
signal lectrique qui va tre discrtis et cette discrtisation donnera naissance aux nombres
souhaits.
Le dbut du processus, consiste nouveau en la transformation des oscillations
acoustiques en un signal lectrique.

Figure 3-12 : enregistrement numrique des sons

1.

On va procder un chantillonnage de ce signal : un trs grand nombre de fois par


seconde, la valeur du signal va tre mesure; le rsultat de chacune de ces mesures est
un nombre. Autrement dit, on a remplac un graphe "continu" par un ensemble fini de
valeurs : celles prises par le signal certains instants. A nouveau, c'est un processus de

CeFIS-FUNDP

Ch. Duchteau

35

... des informations...

Initiation l'informatique

discrtisation (de passage du continu et de l'infini au discontinu fini) qui est ici
l'oeuvre : il est le fait d'un dispositif, le convertisseur analogique-numrique.
2.

Une fois ces normes sries de nombres ainsi obtenues, on pourrait fort bien les
envoyer un ordinateur. Le schma ci-dessus voque cependant la mise en conserve
de ces nombres : ils sont "gravs", un par un -et en ralit sous forme binaire et non
dcimale- sous la forme de minuscules cuvettes successives sur un support qui pourra
tre relu, le disque compact.13

3.

A l'inverse, un lecteur laser de disques compacts restitue, sur base du long sillon
constitu des micro-cuvettes reprsentant les nombres, ces nombres eux-mmes (ou
plutt les signaux lectriques "en escalier" les reprsentant).

4.

Un convertisseur numrique-analogique reconstitue alors au mieux le signal lectrique


original; il ne reste plus qu' amplifier ce dernier et l'envoyer vers un haut parleur
pour retrouver les vibrations sonores originales.

Bien videmment, c'est lorsque le signal sonore a t numris (cod sous la forme
d'une suite de nombres) que l'ordinateur peut entrer dans la danse. En ralit, il peut tre dot
d'un priphrique d'entre constitu d'un micro et d'un convertisseur analogique-digital, ce qui
le rend donc capable de capter des sons, devenus sries de nombres.

3.8.1 La reconnaissance de la parole


Lorsque nous avons parl de la numrisation d'une image, nous avons vu qu'il tait
possible de faire identifier certains nuages de pixels (ou plutt les configurations de nombres
les codant) comme reprsentant des caractres. De la mme manire, la tentation est grande
de faire reconnatre dans les configurations de nombres codant des sons certaines
configurations reprsentant des phonmes ou des mots franais.
La recherche dans ce domaine date de plusieurs annes et des logiciels efficaces
permettant la reconnaissance vocale commencent voir le jour. Certains peuvent dtecter des
mots prononcs de manire isole et il est possible de donner alors l'ordinateur des ordres
travers un micro... et tout ce qui vient d'tre expliqu. Le vocabulaire reconnu comporte en
gnral un nombre assez restreint de mots reconnaissables.
Certains logiciels sont dots d'un module d'apprentissage : le futur utilisateur est
d'abord pri d'noncer quelques centaines de phrases et le systme "apprend" en quelque sorte
reconnatre "la voix de son matre". Le vocabulaire reconnu peut alors comporter quelques
milliers de mots et, surtout, des phrases peuvent tre nonces (presque) en continu, les mots
les composant tant -souvent mais pas toujours- reconnus. Mme s'il reste bien des progrs
faire, nous aurons ainsi rendu les systmes informatiques capables de nous couter... sinon de
nous comprendre.

3.9

Et les odeurs ?

Je me contenterai ici de reproduire un article paru dans le journal "Le Soir" et dat du
samedi 17 septembre 1994.
Un four qui a du nez

13

36

Comme on s'en doute, cette prsentation simplifie ne s'attache qu'aux principes mis en oeuvre sans entrer
dans les dtails "techniques". Il faut tre conscient cependant que ce sont ces "dtails" qui font la
diffrence entre de belles ides et une technologie efficace.
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Il est particulirement difficile , lors de la cuisson dans un


four micro-ondes de savoir avec prcision quand le met est
parfaitement cuit. En raison de la technique trs particulire de
ces fours, en effet, tout y est question de seconde. D'o l'ide
des ingnieurs japonais de tenter d'automatiser l'valuation de
cette cuisson. Un des fabricants nippons, Sharp, estime y tre
parvenu en plaant dans l'un de ses fours un "nez" lectronique
qui dtecte l'odeur mise par le plat et en confie l'analyse un
vritable ordinateur dot de ce que l'on appelle une logique
floue. C'est ce systme "intelligent" qui est donc charg de
dterminer le moment exact o la viande est point et le haricot
encore croquant. A vrifier l'usage tout de mme...

La seule conclusion en tirer, c'est qu'en tout cas que les odeurs sont devenues des
nombres.

3.10 En guise de rsum


Nous venons de montrer que pour que des information puissent tre reues puis
traites par un ordinateur, il tait ncessaire de trouver une reprsentation de ces informations
sous la forme d'une srie finie de nombres entiers.
Deux cas peuvent se prsenter :
1.

Les informations considres sont en nombre fini (ce qui est assez rare) ou ces
informations sont constitues d'un assemblage d'informations lmentaires qui sont,
elles, en nombre fini. Ces informations lmentaires constituent en quelque sorte un
alphabet dont la succession des signes construit les informations considres. C'est le
cas des textes (franais) : mme si ces textes sont varis et multiples, ils sont obtenus
par juxtaposition des symboles d'un alphabet, les caractres.
Il suffit alors de coder par des entiers ces symboles lmentaires (ce qui est toujours
possible puisqu'ils sont en nombre fini). Le codage d'une suite de ces symboles
lmentaires se fait alors simplement en juxtaposant les nombres qui codent chacun
des symboles constitutifs.

2.

S'il n'est pas possible de mettre en vidence aisment un alphabet qui soit tel que les
informations considres puissent tre considres comme formes d'un assemblage
fini des lments de cet alphabet, il est alors ncessaire de passer par un processus de
discrtisation qui va approximer les informations en cause.
On va donc remplacer les informations initiales par d'autres, caractrises par le fait
qu'on peut y mettre en vidence un nombre fini de constituants lmentaires : ce sont
ces derniers qui constitueront les symboles de l'alphabet considrer.

Dans le cas d'une image en noir et blanc, quels sont les constituants de l'alphabet
lmentaire dont la juxtaposition permet de dcrire l'image discrtise.

Ainsi, dans le cas d'une image en noir et blanc, aprs discrtisation les deux seuls
symboles carr noir et carr blanc suffisent par juxtaposition pour reconstituer l'image
trame. L'alphabet est donc ici constitu des deux symboles # et $; et il suffit de
coder ces derniers par des nombres entiers pour tre capable de coder l'image
discrtise tout entire.
CeFIS-FUNDP

Ch. Duchteau

37

... des informations...

Initiation l'informatique

Ajoutons enfin qu'il est impratif que le processus de discrtisation et de codage soit,
autant que possible, pris en charge par le systme lui-mme et des priphriques spcialiss. Il
y a videmment face une dicte (orale) un monde entre la solution consistant faire frapper
le texte au clavier par un tre humain et la cration du mme texte par l'ordinateur quip d'un
systme de reconnaissance vocale.

3.11 Les avantages de la reprsentation numrique des informations


Il faut d'abord signaler que le processus de discrtisation est l'origine d'une
dgradation des informations disponibles. Passer d'une aquarelle ou d'une gouache tout en
nuances une version discrtise, mme si cette dernire comporte 800 pixels sur 600 et si
chaque pixel peut prendre une couleur au choix parmi une centaine, dgrade forcment
l'original. On ne dispose plus que d'une version appauvrie, puisque dcompose en un nombre
fini de constituants lmentaires. Ceci est cependant indispensable si l'on veut que les
informations d'origine puissent tre traites par l'ordinateur, mme sous une forme trique.
Le premier avantage, lui, est au coeur du prsent chapitre : numrique est synonyme
de traitable par les ordinateurs.
Il est un second avantage : une fois numrises, les informations sont transportables,
transmissibles sans dgradation irrparables cause par ce transport.
Si par exemple, je dois transporter distance un signal comme celui reprsent cidessous

Figure 3-13 : signal original

il est vident que de lgres dformations vont apparatre dans le signal obtenu, par rapport au
signal initial (figur par les diffrences prsentes ci-contre entre le signal initial -en gris- et
le signal final).

38

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Figure 3-14 : signal dgrad

Lorsque le signal reprsente des nombres diffrents, il est forcment initialement du type
suivant :

Figure 3-15 : signal numris

le signal rsultant d'un transport ou d'un traitement tant galement dgrad :

CeFIS-FUNDP

Ch. Duchteau

39

... des informations...

Initiation l'informatique

Figure 3-16 : signal numris dgrad

On remarquera qu'il est cependant possible dans ce cas de reconstituer les nombres
initialement reprsents. Autrement dit, mme si le signal reprsentant 16 arrive dgrad, il
est toujours possible de dtecter qu'il s'agit bien de 16 et non de 15 ou 17. Cette permanence
des reprsentations numriques sera d'ailleurs d'autant plus marque que finalement, les
nombres eux-mmes seront cods avec les deux seuls symboles 0 et 1.

3.12 Des mdias multiples au multimdia


Nous sommes prsent en mesure, la lumire de ce que nous savons propos du
codage des informations en sries de nombres, de comprendre pourquoi la multitude des
mdias invents par l'homme pour "capturer" des portions varies du "rel" cdent aujourd'hui
la place au "multimdia".

3.12.1 Le multi-mdia de grand-papa


A travers ses divers sens, l'homme peroit et apprhende le monde qui l'entoure.
Lorsqu'il s'agit de "reprsenter" ou de "conserver" des portions du rel porteuses
d'information, l'homme va crer des objets divers qui stockeront sur des supports varis ce
qu'il veut saisir, retenir ou transmettre du rel.
3.12.1.1 Le multi-mdia " l'ancienne" : de multiples mdias pour capturer le rel
Les exemples en sont videmment nombreux; ils ont tous en commun le choix de
supports particuliers sur lesquels une reprsentation des traits considrs comme pertinents du
rel (au sens large) va tre "enregistre".
Ainsi en va-t-il du mdia qui nous est sans doute le plus habituel : l'crit. Le supports
en sont varis depuis les hiroglyphes gravs sur les temples gyptiens, jusqu'au livre
imprim, en passant par les papyrus et les parchemins.
Mme dans le cas de l'crit "crayon papier" les technologies mises en uvre sont
diverses et varies : crayon, stylo et encre, machine crire, imprimerie,... Les modes de
saisie qui en dcoulent ncessitent donc des moyens techniques plus ou moins sophistiqus,
du simple crayon la rotative...
On a donc, en ce qui concerne l'criture, des schmas :

40

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Ecriture

Papier
Crayon
stylo,...

Traces sur
du papier

Rel
"mdiatiser"
Informations

Ecriture

Papier
Machine
crire

Traces sur
du papier

Rel
"mdiatiser"
Informations

Ecriture

Papier
Imprimerie

Traces sur
du papier

Rel
"mdiatiser"
Informations

Figure 3-17 : divers procds de saisie dans le cas de l'criture

De la mme manire, pour s'intresser des informations d'une autre nature, il y a une
multitude de moyens de saisir une "image" du rel : peinture, dessin (y compris avec un
support papier-crayon du mme type que pour l'criture), photographie, etc. On a par
exemple :

Rel
"mdiatiser"
Informations

Appareil photo
Pellicule
Dveloppement

Capture
d'image

Photographie

ou

Rel
"mdiatiser"
Informations

Capture
d'image

Appareil
photo
Pellicule

Pellicule
impressionne

Figure 3-18 : divers procds de saisie dans le cas de la photographie

On pourrait poursuivre avec les dispositifs permettant de saisir et d'emmagasiner le


son, le mouvement (images animes),... On est en tout cas en mesure de mettre en vidence un
schma se dclinant en une multitude de cas particuliers :
CeFIS-FUNDP

Ch. Duchteau

41

... des informations...

Rel
"mdiatiser"
Informations

Saisir

Techniques
mises en
oeuvre pour la
saisie

Initiation l'informatique

Objet
support

Figure 3-19 : la saisie d'informations, en gnral

Ces reprsentations "mdiatises" du rel sont l pour pouvoir tre travailles,


modifies, stockes, transportes, communiques,...
3.12.1.2 Le multi-mdia " l'ancienne" : il faut restituer ce qui a t captur du rel
Quel que soit le support "mdiatique" retenu et la technologie mise en jeu, il est
ncessaire, pour que nous percevions travers lui le rel qu'il reprsente, de mettre en uvre
une restitution ncessitant (comme c'est aussi le cas de la saisie) des moyens plus ou moins
sophistiqus.
On pourrait sans doute classer les mdias support d'informations eu gard la
complexit des techniques permettant de passer de l'information sous la forme o elle est
stocke l'information telle que nos sens la peroivent (restituer, dans le schma ci-dessous).
Entre le livre, conservant texte et images sous une forme directement accessible et le
CD-ROM proposant texte, images, sons, squences animes,... mais ncessitant lecteur,
ordinateur, cran pour nous tre rendus accessibles, il y a videmment un monde.
En matire de conservation de l'information, le papier et la plume ou l'imprimerie
permettant de conserver et de communiquer l'crit (texte, image) constituent probablement le
mdia la fois le plus habituel et celui qui a le plus model notre culture et notre socit.
Notons au passage que c'est l'un de ceux o le passage du support de l'information au message
restitu et peru ncessite le moins d'intermdiaires : face un livre, la sophistication des
technologies ncessaire ne va gure au-del d'une bougie et, le cas chant, d'une bonne paire
de lunettes.
Il y a d'autres supports o la rvlation de l'information conserve par le support est
plus longue ou plus dlicate, comme la pellicule photographique qui demande un certain
traitement afin de dboucher sur une image qui nous soit directement perceptible.

Pellicule
impressionne

Restituer

Dveloppement
Tirage

"Rel" restitu
Photos

Figure 3-20 : la restitution dans le cas de la photographie

La diapositive est galement un support d'image qui ncessite pour pouvoir livrer
correctement l'information qu'elle recle un dispositif technique (projecteur) d'une certaine
complexit.
Et nous voici aujourd'hui avec les photos mystrieusement stockes au sein mme des
appareils "numriques" qui ont permis de les prendre ou sur mini-disques magntiques.
En ce qui concerne le son et les dispositifs permettant de le conserver, on est pass du
cylindre de cire, grav et restitu par le mme "phonographe", au disque microsillon, la
42

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

bande magntique, qui demandent des dispositifs de plus en plus sophistiqus pour passer du
son "en conserve" sa "consommation" par les oreilles humaines; avec en finale aujourd'hui
les CD et leurs "lecteurs laser".
Quel que soit le mdia envisag, l'opration de restitution des informations
"enfermes" dans l'objet support est indispensable :
Rel
"mdiatiser"
Informations

Saisir

Techniques
mises en
oeuvre pour la
saisie

Objet
support

Restituer

Techniques
mises en oeuvre
pour la
restitution

"Rel" restitu
Informations

Figure 3-21 : la restitution en gnral

Le cinma est, pour des raisons qui apparatront plus loin, intressant puisqu'il a
conserv les mouvements sous la forme d'une succession d'images instantanes. Puis, sur le
mme support sont venus prendre place la fois les images animes et le son, le dispositif de
projection/reproduction devenant plus sophistiqu.
3.12.1.3 Le multi-mdia " l'ancienne" : peu de possibilits de modifier les objets supports
On peut, pour chacun des supports envisags, considrer quelles sont les possibilits
de modification de cet objet support dont on dispose. Ces moyens sont extrmement variables
et mettent en branle des technologies plus ou moins sophistiques, depuis la gomme et le
crayon pour les supports crits "papier-crayon" jusqu'aux retouches des pellicules
photographiques.
On a donc nouveau, quel que soit le mdia envisag, une multitude de schmas
permettant de rendre compte des possibilits de modifier la reprsentation du rel mise en
uvre.
Ainsi, pour le mdia "papier-crayon" :

Modifier

Modifier

gomme
crayon
annotations

effaceur
stylo
annotations

Traces
sur du
papier

Traces
sur du
papier

Figure 3-22 : la modification des supports crits

CeFIS-FUNDP

Ch. Duchteau

43

... des informations...

Initiation l'informatique

Il faut admettre cependant que les possibilits de modification sont le plus souvent
extrmement limites ou qu'elles ncessitent des appareils extrmement sophistiqus
auxquels la plupart d'entre nous n'ont pas accs. Qu'on pense par exemple aux possibilits
nulles ou fort rduites qu'on a de modifier un disque 33 tours, une pellicule photographique,
etc..
Mais, mme face des possibilits limites, le schma commenc s'enrichit :
Modifier

Techniques de
modification

Rel
"mdiatiser"
Informations

Saisir

Techniques
de saisie

Objet support

Restituer

Techniques
mises en oeuvre
pour la restitution

"Rel" restitu
Informations

Figure 3-23 : la modification des objets supports

3.12.1.4 Le multi-mdia " l'ancienne" : stocker les objets supports


Un des problmes majeurs de ces divers mdias, est de stocker et conserver les "objets
supports". Les bibliothques sont une rponse au problme du stockage, dans le cas de l'crit :

Traces sur du
papier

Livres
Archives
Bibliothque

Stocker

Figure 3-24 : le stockage des objets supports de l'crit

Les discothques et autre cinmathques sont d'autres rponses au problme du


stockage d'autres objets supports relevant d'autres mdias.
Le schma commenc se poursuit donc :

44

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Modifier

Techniques de
modification

Rel
"mdiatiser"
Informations

Saisir

Techniques
de saisie

Objet support

Restituer

Techniques
mises en oeuvre
pour la restitution

"Rel" restitu
Informations

Techniques
de stockage

Stocker

Figure 3-25 : le stockage des objets supports en gnral

On voit donc apparatre le problme du stockage comme une opration part entire.
C'est essentiellement pour montrer que la permanence de l'objet support est un facteur
important et dcisif. crire ou dessiner sur du sable est videmment une manire de d'utiliser
comme "objet support", mais dans ce cas, le stockage long terme risque de poser quelques
problmes et je ne suis pas certain qu'on puisse vraiment parler dans ce cas de "mdia".
3.12.1.5 Le multi-mdia " l'ancienne" : communiquer les objets supports
Cette communication se rduit le plus souvent un transport pur et simple (c'est cela
que servait et que sert encore en grande partie la poste)

Transporter

Poste, fax,...

Document crit
(papier, livre,...)

Figure 3-26 : le transports des objets supports dans le cas de l'crit

Parfois le mode de communication est plus sophistiqu : c'est le cas de la radio, de la


tlvision, etc.
CeFIS-FUNDP

Ch. Duchteau

45

... des informations...

Initiation l'informatique

Dans tous les cas, et quel que soit le mdia envisag le problme de la communication
du support fait partie intgrante des proccupations :
Modifier
Transporter

Techniques de
modification

Rel
"mdiatiser"
Informations

Saisir

Techniques
de saisie

Objet support

Techniques de
communication

Techniques
mises en oeuvre
pour la restitution

Restituer

"Rel" restitu
Informations

Techniques
de stockage

Stocker

Figure 3-27 : le transports des objets supports en gnral

Ce qui est donc au cur de l'utilisation des divers mdias (au sens que je leur donne
ici) c'est finalement un schma qui peut s'achever de la manire suivante :
Modifier
Transporter

Techniques de
modification

Rel
"mdiatiser"
Informations

Saisir

Techniques
de saisie

Objet support

Techniques de
communication

Restituer

Techniques
mises en oeuvre
pour la restitution

"Rel" restitu
Informations

Techniques
de stockage

Stocker

Figure 3-28 : le schma global de la mdiatisation

3.12.2 Du multi-mdia au multimdia


Comprendre l'apport de la numrisation et le rle des ordinateurs, c'est saisir qu'on
passe d'une multitude de mdias un support unique qui est en train de rendre obsoltes
toutes les technologies classiques de mdiatisation. C'est aussi percevoir que l'opration
"modifier", inexistante ou hors de porte de l'utilisateur des multiples mdias classiques, va
46

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

prsent prendre une importance capitale : c'est elle qui se cache derrire la plupart des
logiciels permettant par exemple la modification d'un texte ou la retouche d'images.
3.12.2.1 Les moyens "multi-mdia" : une juxtaposition de mdias et de technologies
dissemblables
Voici la dfinition du multimdia (que j'cris ici multi-mdia) lors de l'apparition de ce
mot :
"Multimdia adj. - 1980; de multi- et mdia. Qui concerne plusieurs mdias; qui
est diffus par plusieurs mdias. Campagne publicitaire multimdia." [Le
nouveau Petit Robert, 1993]
Le schma prsent ci dessus va se dcliner de multiples manires, d'aprs les "traits"
du rel (la nature des informations) qu'on veut garder, d'aprs les dispositifs mis en uvre
pour saisir, stocker, modifier, ventuellement transporter, et restituer les informations
considres comme pertinentes.
L'criture (au sens classique) sur divers supports recouvre toute une classe de modes
de saisie, dpendant d'ailleurs du support retenu (burin + pierre, crayon + papier, imprimerie +
papier,...).
La saisie d'images couvre galement un norme champ allant des divers types de
peintures au scanner des ordinateurs en passant par la photographie, avec une mention
spciale pour les diapositives.
Les informations sonores ont mis plus longtemps pouvoir tre "mdiatises" : le
solfge tait une forme de reprsentation de cette ralit sonore particulire qu'est la musique,
sur le modle de l'criture; puis sont venus les phonographes et le stockage du son dans la cire
des rouleaux, puis les disques microsillons, les bandes magntiques et enfin les CD et leurs
lecteurs lasers.
Je ne m'attarderai pas sur le cinma, la vido,... sur les manires de transporter les
informations reprsentes (tlgraphe, tlphone, tlvision, courrier lectronique).
Je n'ai gure voqu non plus les possibilits et les modalits de modification des
informations conserves dans l'objet support (depuis la gomme jusqu'au logiciel de retouche
d'images, en passant par le mixage des studios d'enregistrement).
Le schma ci-dessus doit tre recommenc des dizaines de fois : chaque fois qu'un
mode de stockage, de saisie, de restitution,... change, on est quitte pour en adapter et en
prciser les lments.
Bref, le multi-mdia, mise en uvre de procds divers permettant sur des supports
diffrents de stocker des informations de toutes natures l'aide de technologies absolument
dissemblables, on connat et depuis fort longtemps ! Mais, jusqu' prsent, une prsentation
multi-mdia devait faire appel des appareils aussi diffrents qu'un tableau noir, un
rtroprojecteur et ses transparents, un projecteur de dias, un magntoscope et le poste de
tlvision qui l'accompagne, etc..
3.12.2.2 Les moyens multi-mdias revisits par l'informatique : le multimdia
Et puis vint l'ordinateur... qui ne changea rien tout cela pendant presque 50 ans. Les
mdias restrent "multi" peut tre, mais spars srement.
C'est le MacIntosh de Apple qui montra la voie : assez rapidement, il devint l'outil qui
se rpandit dans les secrtariats pour la production de texte et l'instrument de choix des
graphistes pour le traitement de l'image.

CeFIS-FUNDP

Ch. Duchteau

47

... des informations...

Initiation l'informatique

Depuis le milieu des annes 90, les "PC" sont eux aussi devenus "multimdia". Les
ordinateurs, qu'on appelait encore il y a peu des "calculateurs lectroniques", seraient-ils
devenus "bons tout faire", de la cration de texte la retouche de photos en passant par le
travail du son.
Comme on le verra, l'ordinateur reste un calculateur, manipulant des nombres. Et
pourtant c'est aussi un instrument permettant aujourd'hui de stocker et de traiter notre
demande son, texte, image, vido,... O est le miracle ?
Il n'y a pas de miracle : si l'on veut qu'un outil manipuler des nombres soit capable
de traiter toutes sortes d'informations de nature et de formes diverses, il suffit tout btement
de transformer ces informations en srie de nombres.
Que croyez-vous que l'ordinateur reoive lorsque vous pressez la touche "a" sur le
clavier ? Qu'est ce qui "remplit" les CD-ROM (mais aussi les CD musicaux) et les disques
durs ? Qu'est ce que l'ordinateur envoie votre imprimante ? De quoi sont faits les documents
que vous recevez "sur Internet" ?... La rponse est identique chaque fois : il s'agit de
nombres (ou en tout cas d'une reprsentation physique de nombres).

Texte

Images

Sons

Texte

C
O
D
A
G
E

Des nombres

D
E
C
O
D
A
G
E

Images

Sons

Mouvements

Figure 3-29 : l'ordinateur multimdia

A partir du moment o texte, images (fixes ou animes), sons, etc. peuvent tre
transforms en sries de nombres (on dit le plus souvent numriss ou digitaliss), ils peuvent
tre manipuls, modifis, stocks et transports par un dispositif unique, apte grer
seulement des nombres, l'ordinateur.
L'apport se marque de manire claire au sein d'une dfinition rcente ;
"Multimdia n m. - Technologie intgrant sur un support lectronique des
donnes multiples (son, texte, images fixes ou animes). Adj : des encyclopdies
multimdias" [Le Petit Robert, 1998]"

48

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

Il reste seulement imaginer des manires de reprsenter (on dit aussi coder) textes,
images et sons sous la forme de sries de nombres et de mettre au point des dispositifs qui
assurent aussi automatiquement que possible ce codage :c'tait l'objet de ce chapitre.
Bien videmment, il faut galement des dispositifs de restitution qui assurent le
dcodage, pour que les nombres manipuls redonnent naissance des informations qui nous
soient accessibles : texte, image, vido, son,...
Mais ce qui a radicalement chang, c'est que c'est un outil unique, l'ordinateur (et tous
les priphriques qui l'entourent) qui va servir saisir, modifier, stocker, transporter, restituer,
les informations, quelle que soit la forme o elles se prsentent nous. Plutt que de
multimdia, c'est d'un monomdia universel qu'il faudrait parler. L'ordinateur va pouvoir lui
seul se substituer toutes les techniques dont l'Humanit s'tait dote au fil des sicles pour
"mdiatiser" le rel. Le matre mot ici est celui de numrisation (codage de l'information en
une suite de nombres).
Parler de multimdia, c'est simplement reconnatre que toute
information, quelle que soit sa forme, pourra, aprs numrisation, tre
traite par un outil unique, l'ordinateur, puis tre restitue sous une
forme habituelle et acceptable.
Principe 3-1 : c'est la numrisation qui est au coeur du multimdia

Dans ces conditions, c'est vrai que l'ordinateur devient un outil universel pour traiter
du texte, des images, des sons,... Et plutt que de devoir recommencer des dizaines de fois la
Figure 3-28, on pourra dornavant se contenter d'un schma unique :

Modifier
Transporter

Logiciels
divers

Rel
"mdiatiser"
Informations

Coder

Priphriques
d'entre

Des nombres
(en mmoire)

Tlmatique

Restituer

Priphriques
de sortie

"Rel"
restitu
Informations

Supports
mmoire
externes

Stocker

SYSTEME INFORMATIQUE

Figure 3-30 : schma global de la mdiatisation dans le cas d'un systme informatique
Si les TIC vous font peur, adoptez les TeTIN!
Matriser ces univers nouveaux qui se sont ouverts autour de l'utilisation des ordinateurs, c'est
aussi comprendre les mots qui en parlent et l'volution des conceptions que refltent les
termes employs. Ainsi, pendant plus de 40 ans, on a tout bonnement parl d'informatique
CeFIS-FUNDP

Ch. Duchteau

49

... des informations...

Initiation l'informatique

pour dsigner l'activit de ceux qui tentaient de tirer parti des ordinateurs pour rsoudre des
problmes de natures diverses, mais qui tous tournaient autour du "traitement automatique de
l'information".
Vers le milieu des annes 80, sont apparus, en mme temps que les PC commenaient
envahir les bureaux, les outils logiciels qui devaient permettre tout le monde, et plus
seulement aux informaticiens, de tirer parti des ordinateurs qui taient devenus "personnels".
C'tait le dbut de la seconde tape de la courte histoire de l'informatique : aprs
l'informatique rserve aux informaticiens, on dbouchait sur une multitude d'outils logiciels
la porte des utilisateurs "nafs". On a alors commenc parler de NTI (Nouvelles
Technologies de l'Information) pour dsigner, de manire assez floue d'ailleurs, ce mlange
de technique, de concepts issus de l'informatique, d'usages, etc.
Pendant que les rseaux se rpandaient, permettant aux ordinateurs de communiquer entre
eux, et alors que les "nouvelles" technologies commenaient prendre de l'ge, on a
nouveau chang de vocable pour dsigner cette nouvelle ralit : ce sont aujourd'hui des TIC
(Technologies de l'Information et de la Communication) qu'on parle le plus souvent.
Et ce que nous apprend la numrisation qui permet et sous-tend le phnomne multimdia,
c'est que tous les traitements permis par le multimdia portent sur l'information numrise et
que ds lors on se trouve face des TeTIN (Technologies de Traitement de l'Information
Numrise).

3.13 Vers une civilisation du numrique


Les codages numriques dont nous venons de parler dans le cas de l'obligation de faire
digrer des informations de diverses natures par l'ordinateur, constituent un fait majeur de
notre culture et de notre socit : nous passons d'une civilisation de l'analogique une
civilisation du numrique.
Dans la prsentation mme des informations, on notera le passage de

Figure 3-31 : reprsentations analogique et numrique

La mesure mme du temps qui passe (des dures) a t analogique : le fuite du temps
tait analogue au passage du sable dans un sablier ou celui de l'eau dans une clepsydre. Il se
fait aujourd'hui en comptant les oscillations d'un cristal.
J'ai voqu ci-dessus le passage des vieux disques 33 tours vinyles (o le trac du
sillon tait analogue aux oscillations sonores qui leur avaient donn naissance) au disque
compact (o c'est une reprsentation de nombres que l'on peut trouver le long du sillon).
Dans le mme ordre d'ide, on parle aujourd'hui de tlphone numrique ou de
tlvision numrique : dans les deux cas il s'agit de transformer son ou image en nombres, de
transporter ces derniers (sans dgradation irrparable), et de reconstituer l'arrive le son ou
l'image original.

50

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...des informations...

L'ordinateur est videmment la fois l'une des causes de cette civilisation du


numrique, mais aussi un partenaire incontournable pour traiter (au sens trs large) ces
informations numrises.

3.14 Questions
1.

Un ami, utilisateur d'ordinateur, me dit la phrase suivante : "Voici la disquette avec le


texte de la lettre que je t'ai promis. Mais mfie-toi parce que ce texte tait sur une autre
disquette. Je l'ai d'abord copi sur une disquette d'un format diffrent, puis sur le
disque dur, puis sur la disquette que je te donne. J'ai un peu peur qu'aprs toutes ces
copies successives le texte en question ne soit un peu abm !" Quel commentaire
apporteriez-vous cette assertion ?

2.

On appelle graphe un ensemble de noeuds ou de sommet lis entre eux par des arcs et
on en donne en gnral une reprsentation graphique dont voici un exemple :

Figure 3-32 : graphe

Pourriez-vous proposer trois systmes diffrents de codage sous forme de listes


structures de nombres (ou de lettres, ce qui revient finalement au mme) et qui
permettent de reprsenter un graphe ?
Pour chacun de ces systmes, donnez le codage du graphe reprsent ci-dessus.
Pour chacun des systmes de codage retenu, pourriez vous donner "en franais
courant" les indications de traitement ncessaire (= les manipulations de nombres ou
de lettres effectuer) pour dterminer
- la liste des sommets successeurs immdiats d'un sommet donn;
- la liste de tous les couples de sommets lis par deux arcs de sens opposs;
- la liste des sommets isols.
Et, enfin, tes-vous capable de dire pourquoi je vous pose ce genre de question ?
3.

Pourriez vous trouver des informations qui se prsentent sous plusieurs formes
diffrentes, mais en dessous desquelles nous identifions pourtant la mme
information ?

4.

Existe-t-il votre connaissance une manire de reprsenter les sons du langage parl
sous forme crite, donc de coder des sons par des signes crits ?

5.

Que proposeriez vous comme codage numrique d'une configuration quelconque du


jeu d'chec ? Pourriez-vous en proposer plusieurs ? Et pour le jeu de dame.

CeFIS-FUNDP

Ch. Duchteau

51

... des informations...

6.

52

Initiation l'informatique

Que proposeriez vous comme codage numrique des diffrentes mains (constitues de
13 cartes) d'une donne au whist ?

Ch. Duchteau

CeFIS-FUNDP

4
... pour autant qu'on lui ait indiqu comment mener bien
ce traitement ...

L'ordinateur n'existe pas


4.1

Introduction

Nous savons prsent que les traitements permis par l'ordinateur auront toujours un
caractre formel (ou formaliste) et que ds lors le mot "information" y prendra un sens trs
particulier.
La pseudo-dfinition donne prcdemment, insiste sur la ncessit d'indications de
traitements qui permettent et contrlent le travail de traitement d'informations par l'ordinateur.
Nous pouvons ds lors noncer un principe supplmentaire :
TOUT ce que fait un ordinateur, il le fait gouvern par un programme
Principe 4-1 : tout ce que fait un ordinateur, il le fait gouvern par un programme

Un programme, c'est donc l'ensemble des indications de traitements ncessaires pour


que l'ordinateur puisse mener bien telle ou telle tche de traitement d'information. Ds qu'un
ordinateur agit, c'est qu'il dispose du programme ncessaire pour le faire agir. On dit aussi
parfois logiciel plutt que programme, surtout lorsque ce dernier est d'une taille ou d'une
complexit importantes.
Ds lors le schma de traitement propos plus haut
Informations
reues
(Entres)

Traitements

Informations
rendues
(Sorties)

Informations
consultes

peut se redessiner :

CeFIS-FUNDP

Ch. Duchteau

53

... pour autant...

Informations
reues
(Entres)

Traitements
Informations
traites

Indications de
traitement

Informations
consultes

Indications
supplmentaires

Initiation l'informatique

Informations
rendues
(Sorties)

Figure 4-1 :schma d'un traitement d'informations par un systme informatique

Ainsi donc, un ordinateur nu ( = sans programme pour le faire agir) n'existe pas. A
tout moment, ce qu'on a en face de soi, c'est toujours un tandem ordinateur + programme.
C'est la raison pour laquelle, plutt que de parler dans la suite d'ordinateur, nous utiliserons le
terme systme informatis, qui insiste sur le fait que la seule ralit est l'ordinateur quip de
l'un ou l'autre programme qui guide et dtermine ses actions.
Bien entendu, le point de vue adopt sera fort diffrent suivant qu'il s'agit de celui de
l'utilisateur du couple ordinateur-programme ou de celui du programmeur qui va devoir crer
la partie programme de ce mme couple.

4.2

Le point de vue de l'utilisateur

Pour ce dernier, l'ordinateur quip du logiciel adquat est un outil ou plutt un


instrument qui va l'aider dans une tche particulire :
ordinateur

=instrument
logiciel

4.2.1 Des milliers d'instruments


Ce qui intresse l'utilisateur, c'est de connatre le mode d'emploi de cet instrument,
qu'il s'agisse de faciliter la cration et la prsentation d'un texte (logiciel de traitement de
texte), de simplifier la gestion des emprunts dans une bibliothque (logiciel de gestion d'une
base de donnes), de tracer l'histogramme reprsentatif d'une srie de donnes (logiciel
tableur),...
A chaque fois, l'ordinateur quip du logiciel adquat est peru comme un instrument
qu'il va s'agir de matriser et d'utiliser bon escient dans le cadre d'une tche prcise.
On peut dire qu'aujourd'hui ce sont des milliers de systmes diffrents qui sont la
disposition des utilisateurs, et cela dans des domaines fort divers.
Il y a toutefois un double problme pour l'utilisateur novice :

4.2.2 L'ordinateur n'existe pas


D'une part, il est impossible de dresser la liste des manipulations de base d'un
ordinateur, l'ensemble de ce qu'il serait ncessaire de matriser pour se trouver l'aise face
un clavier et un cran. Et cela, tout bonnement parce que l'utilisateur ne sera jamais face

54

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...pour autant...

un ordinateur, mais toujours face un systme particulier ordinateur + logiciel, aux ractions
spcifiques1.
L'une des demandes les plus frquemment formules par les dbutants (futurs utilisateurs)
est celle d'une initiation pratique (et rapide) aux "manipulations de base" de l'ordinateur : quels
sont les savoir faire lmentaires face l'cran et au clavier ? en un mot, "comment utiliser un
ordinateur ?".
Le formateur est alors dans la position inconfortable du vendeur d'appareils lectromnagers
face un client qui souhaiterait tre rapidement mis au courant des "manipulations de base"
de l'lectromnager. Nous savons tous que "l'appareil lectromnager" n'existe pas et que le
vendeur a intrt se faire prciser si la curiosit du client potentiel se porte plutt sur les
lessiveuses ou les aspirateurs.
Il en va malheureusement de mme de l'ordinateur. Le seul "objet" existant est toujours un
couple ordinateur-logiciel. Un ordinateur "nu" (= sans programme qui le gouverne) n'existe pas
et l'utilisateur n'a jamais faire qu' un tandem particulier "ordinateur-logiciel", les
comportements de ces couples pouvant tre extrmement divers. Ceci est d'autant plus
dissimul que rien ne se modifie dans l'aspect physique du partenaire ordinateur des couples
voqus : l'utilisateur a l'impression de garder la mme "machine" en face de lui, alors mme
que ce concept de machine "nue" n'est pas pertinent.
Notons au passage que cette rduction du systme informatique (ordinateur + logiciel) sa
seule composante matrielle est ce qui rend tellement choquantes des associations comme
"intelligence artificielle" ou des questions comme "l'ordinateur est-il intelligent ?". Si il y a
"intelligence" dans le comportement d'un systme informatique, il faut redire que c'est dans la
partie logicielle qu'elle se trouve : elle sort du cerveau d'un homme qui a d faire l'effort
d'objectiver, de formaliser et d'enclore dans un programme des traitements qui, lorsqu'ils
prennent le contrle de l'ordinateur lui donnent un comportement plus ou moins "intelligent"
(Cf. plus haut). Dans le contexte des utilisations de systmes informatiques, parler
d'ordinateur (seul) n'a tout bonnement aucun sens.

4.2.3 L'outil informatique n'existe pas


Par ailleurs, si la composante matrielle du systme reste constante au travers des
utilisations, la composante logicielle, elle, est par nature extrmement changeante et cela sans
que rien (ou peu de chose) ne signale ces modifications aux yeux de l'utilisateur. Si
l'ordinateur est la partie stable du systme, il est aussi extraordinairement polygame : au cours
d'une simple session d'utilisation, c'est souvent des dizaines de programmes diffrents que
l'utilisateur aura affaire.
L'outil informatique, au singulier, n'existe donc pas : ce sont des milliers d'outils
diffrents, avec leurs rgles de fonctionnement propres et diverses, avec leurs champs
d'applications particuliers et leurs modes d'emploi singuliers qui existent.
Il y a d'ailleurs, avec des environnements comme Windows ou des systmes comme ceux du
MacIntosh, une volont de standardiser, sinon le mode d'emploi des logiciels, du moins la
reprsentation que l'utilisateur peut s'en faire travers des interfaces semblables et des
menus similaires. Mais, mme si le marteau et le tournevis ont prsent la mme couleur, ils
restent des outils diffrents, pour faire des choses distinctes : il en est de mme pour le
tableur et le logiciel de dessin.

Cette constatation a un corollaire important : les utilisations des systmes


informatiques sont des univers sans rgle stable : on ne peut pas parler des rgles d'utilisation
de l'outil puisque il y a des outils, chacun avec ses rgles particulires.

Voir aussi ce propos (DUCHTEAU 94).

CeFIS-FUNDP

Ch. Duchteau

55

... pour autant...

Initiation l'informatique

S'il est un mot bannir du vocabulaire des utilisations de systmes informatiss, c'est
bien le terme "toujours" : la mme action (pression de touche, clic de la souris) ne produit pas
"toujours" les mmes effets

Dans l'univers MS-DOS, l'appui simultan sur les touches Alt Ctrl et Del
produit (presque) "toujours" un ramorage du systme; ce n'est plus vrai
sous Windows; l'appui sur la touche F1 est souvent (pas "toujours") un appel
l'aide; un double-clic sur le nom d'un fichier lance une application ou
produit un message d'erreur; ... Je pourrais ajouter des centaines d'exemples
la liste. Je suis incapable d'en fournir un seul d'une action qui produise
toujours le mme effet; sauf peut tre l'action de retirer la prise de courant...
et encore, il y a les portables...
Combien de fois n'est-il pas arriv qu'un utilisateur novice, qui achevait
d'utiliser un diteur ou un systme de traitement de texte et se retrouvait aux
prises avec MS-DOS, m'ait appel pour tenter d'effacer les lignes "syntax
error" ou "file not found" apparues suite des manipulations inadquates du
systme d'exploitation. L'instant d'avant, il pouvait sa guise "remonter" dans
le texte affich l'cran; quelques secondes plus tard sur le mme cran
l'opration est impossible et n'a plus de sens. En effet, l'cran MS-DOS
retrace une histoire , celle des changes entre l'utilisateur et le systme; par
contre, c'est un espace, celui du texte modifiable, dans un traitement de texte.
Accder une ligne suprieure pour la transformer, cela a du sens dans un
traitement de texte, o la mtaphore spatiale s'applique l'cran, mais cela n'a
pas de sens en MS-DOS o l'cran est une suite d'instants, une histoire; cela
reviendrait vouloir modifier le pass.
Dans l'utilisation des systmes informatiss, vous ne pouvez jamais
dire "toujours"!
Principe 4-2 : il ne faut jamais dire "toujours"

4.3

Le point de vue du programmeur

Le court exemple de la conjugaison abord prcdemment nous montre bien quel


point le point de vue du programmeur peut tre diffrent. Il va s'agir, pour lui, de fournir
toutes les indications de traitement ncessaires l'accomplissement d'une tche par
l'ordinateur. C'est lui qui va crer la partie logicielle des instruments que d'autres pourront
ensuite utiliser.
Le point de dpart de l'activit de programmation est toujours une tche de traitement
formalisable d'informations. A toutes celles de la colonne de gauche du tableau prsent plus
haut, nous pourrions en ajouter d'autres encore : compter les points lors d'un match de tennis,
donner la date de demain, ...
Nous l'avons dj peru avec la mtaphore du copain portugais, il va s'agir, pour le
programmeur, non d'effectuer lui-mme chacune de ces tches lmentaires, mais de fournir
toutes les indications indispensables pour les faire faire.
Chacune de ces tches va donc donner naissance un rel problme : celui d'expliquer
de manire exhaustive et dtaille l'enchanement des actions ncessaires pour mener la tche
bien. En quelque sorte :

56

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

...pour autant...

Programmer
c'est
FAIRE FAIRE
Principe 4-3 : programmer, c'est faire faire

L'ordinateur, qui comme ci-dessus ne peut tre "nu", sera, dans ce contexte de la
programmation, peru non comme un instrument ou un outil qui va aider l'accomplissement
d'un travail, mais plutt comme un excutant qui sera charg d'effectuer une tche. Il est donc
bien plus ressenti comme un obstacle que comme une aide : il faut tout lui dire de la manire
de mener bien la tche concerne.
Nous le verrons dans la suite, c'est l'ordinateur quip d'un langage de programmation qui est
l'interlocuteur du programmeur. Ce langage de programmation va permettre d'exprimer les
indications ncessaires aux traitements, de concevoir et de rdiger les programmes
souhaits.

Ainsi, le schma qui est au cur de l'activit de programmation est le suivant :


Ordinateur =
Excutant

Programmeur

il conoit

il excutera
Tche

elle gouvernera

marche suivre
Figure 4-2 : schma de l'activit de programmation

Ds lors, du point de vue du programmeur :


ordinateur

=executant
langage de programmation

et
Programmer, c'est

face une tche formalisable de traitement d'informations (qu'il


s'agira de prciser),
face un excutant aux capacits limites mais connues,
concevoir et rdiger une marche suivre qui fera faire la tche par
l'excutant.

CeFIS-FUNDP

Ch. Duchteau

57

5
... machine...

Architecture d'un systme informatique


5.1

Architecture gnrale

Nous avons vu que le schma propos page 3 (Figure 2-1 : schma d'un traitement
d'informations) qui prside tout traitement d'information se particularise dans le cas d'un
traitement opr par un systme informatique sous la forme propose page 54 (Figure
4-1 :schma d'un traitement d'informations par un systme informatique).
Ce schma va s'incarner en une ralisation matrielle qui constituera en quelque sorte
l'architecture gnrale d'un systme informatique.
C'est dessein que nous parlerons dsormais de "systme" informatique et non plus
d'ordinateur, puisque, comme nous le savons, "l'ordinateur n'existe pas" (Cf. le principe de la
page 53).

Cinq composants essentiels peuvent tre mis en vidence :

Unit centrale
Priphriques
d'entre

Priphriques
de sortie

Mmoire
centrale

Processeur

Liaisons
Mmoire
externe
Figure 5-1 : architecture gnrale d'un systme informatique

D'abord, le centre du systme, l'unit centrale. C'est l que les traitements sur les
donnes sont effectus, sur base des indications de traitement qui y sont galement
prsentes.

Ensuite, les priphriques d'entre : leur rle est de transformer une information qui se
prsente sous une forme qui nous est habituelle en une srie finie d'entiers, acceptable

CeFIS-FUNDP

Ch. Duchteau

59

... machine ...

Initiation l'informatique

par l'ordinateur (voir le principe nonc page 17). Un priphrique d'entre a donc
pour rle de coder l'information sous une forme acceptable par l'unit centrale.

Egalement les priphriques de sortie : leur rle est de transformer des informations
telles que l'ordinateur les manipule (srie finie d'entiers) en une forme qui nous soit
davantage habituelle. Un priphrique de sortie a donc pour rle de dcoder
l'information manipule par l'ordinateur (des nombres entiers) en une forme habituelle
pour nous, tres humains.

Enfin, la mmoire externe (on dit aussi mmoire de masse, ou mmoire de stockage
long terme) : elle mmorise la fois des informations (donnes) susceptibles d'tre
traites par l'ordinateur et des indications de traitement (programmes) supplmentaires.
On utilise souvent comme synonyme les termes "information" et "donne" pour dsigner ce
que manipule l'ordinateur. Il s'agit bien entendu, dans tous les cas, d'une forme code de ce
que, entre tres humains, nous appelons "information" ou "donne".

Et pour terminer, le cas chant, des liaisons entre le systme considr et d'autres
systmes informatiques : priphriques de communication, connexion un rseau,...

Nous reviendrons dans la suite sur divers composants de ce systme, mais nous allons
dans un premier temps, nous focaliser sur l'unit centrale et procder en quelques sortes des
zooms successifs qui nous amneront examiner avec de plus en plus de dtails de quoi est
faite cette unit centrale.

5.2

L'unit centrale

A un premier niveau d'analyse, nous pouvons la voir comme constitue de trois


lments : la mmoire centrale, le processeur et des liens permettant l'change entre ces deux
entits.

5.2.1 La mmoire centrale


C'est dans ce dispositif que sont mmorises les deux choses qui nourrissent un
ordinateur : les informations (donnes) traiter (sous forme code) et les indications pour
commander ces traitements (programmes).
5.2.1.1 Qu'y a-t-il dans la mmoire centrale ?
D'un premier point de vue, qu'on pourrait qualifier de fonctionnel, la mmoire centrale
contient donc deux choses : les donnes, les informations manipules (dont nous savons dj
qu'elles sont en quelque sorte codes sous la forme de nombres entiers) et les programmes
excutables par le processeur, autrement dit, des sries d'instructions qui indiquent comment
les donnes prsentes doivent tre manipules par ce processeur.
Nous verrons dans la suite que les mmoires externes contiennent elles aussi ces deux
types d'entits, mais il est bon ds prsent, d'noncer un principe important :
Pour qu'un programme excutable puisse faire agir le processeur, il
doit tre prsent en mmoire centrale. Pour que des donnes soient
traites par le processeur, elles doivent galement rsider en mmoire
centrale.
Principe 5-1 : pour tre excutable, un programme doit tre en mmoire centrale

Le mot "excutable" accol au terme "programme" peut paratre tonnant : il insiste


sur le fait que les instructions composant ce programme sont telles quelles acceptables par le
60

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

processeur et susceptibles de le faire agir. Mais surtout, la raison pour laquelle nous parlons
de programme excutable, c'est que nous utiliserons souvent dans la suite le mot programme
pour dsigner, toujours des indications de traitement, mais qui ne sont pas directement
acceptables, excutables, par le processeur.
5.2.1.2 Les deux types de mmoire centrale
Nous pouvons, sur base des principes noncs et de constatations que chacun peut
faire, laborer un court raisonnement :
On sait que :

TOUT ce que fait un ordinateur, il le fait gouvern par un programme (page 53)

Pour qu'un programme excutable puisse faire agir le processeur, il doit tre prsent en
mmoire centrale (principe nonc ci-dessus).
On constate que :

Lorsqu'un ordinateur est mis sous tension (= lorsqu'on le rallume), il commence


travailler (il affiche par exemple "des choses" l'cran)
C'est donc, forcment qu'

Il y a dj en mmoire des programmes qui, ds sa mise sous tension, font agir


l'ordinateur.

Si l'on soutient que les programmes qui font ainsi agir l'ordinateur au dbut de son
activit ont t amens de l'extrieur (c'est dire, par exemple, des mmoires de masse ou
mmoires externes), on ne fait que reporter d'un cran le problme. En effet, aller chercher ces
programmes sur les mmoires de masse constitue une action de l'ordinateur et ds lors, en
vertu des deux principes rappels, il faut qu'un programme soit dj prsent en mmoire
centrale pour permettre cette action.
Cette chane doit bien s'interrompre par la conclusion que, ds le dbut, des
programmes rsident dj en mmoire centrale. De plus, ces programmes (et des donnes
associes) doivent rester dans cette mmoire mme lorsque l'ordinateur n'est plus sous
tension, puisque ces programmes le font agir ds qu'il est aliment en lectricit. Il est donc
indispensable qu'une partie de la mmoire centrale puisse garder les programmes et donnes
qu'elle contient, mme en l'absence d'alimentation lectrique. Cette mmoire dont le contenu
est prserv et est essentiel au moment de la mise sous tension de l'ordinateur est la mmoire
morte.
Il nous faut galement admettre qu'une autre partie de la mmoire centrale est non
prserve : c'est celle qui accueillera les programmes et donnes supplmentaires venant des
mmoires externes et qui rendront l'ordinateur capables d'un tas d'actions supplmentaires.
Cette zone de mmoire, "vide" au dmarrage de l'ordinateur et qui se remplira pendant le
travail avec des programmes (et des donnes) venus de l'extrieur est la mmoire vive.

CeFIS-FUNDP

Ch. Duchteau

61

... machine ...

Principe
TOUT ce que fait un
ordinateur, il le fait
gouvern par un
programme

Initiation l'informatique

Constatation
Ds son branchement,
l'ordinateur "fait des
choses"

Conclusion
Un programme fait
agir l'ordinateur
ds le dbut
Principe
Pour qu'un programme
puisse faire agir
l'ordinateur il doit tre
en mmoire centrale

Conclusion
Ce programme doit rester
en mmoire centrale et y
persister mme lorsque
l'ordinateur n'est pas
branch

Conclusion
Une zone de la mmoire
centrale doit garder les
informations qui y sont
contenues mme sans
alimentation lectrique

Conclusion
Il existe de la
mmoire morte

5.2.1.2.1 La mmoire morte


On vient de le voir, elle est caractrise par plusieurs traits :

Son contenu ne disparat jamais, mme lorsque l'ordinateur n'est plus aliment en
courant lectrique; c'est en quelque sorte une zone de mmoire dont le contenu est
gard en permanence, une zone de mmoire "increvable".
On notera au passage le paradoxe qui veut que la mmoire qui reste en quelque sorte
toujours "vivante" (en me pardonnant cet abus) s'appelle la mmoire "morte".

62

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Pendant le travail de l'ordinateur, le systme peut videmment amener au processeur


des instructions et des donnes prsentes dans cette mmoire morte. Par contre, jamais
cette zone de mmoire ne verra son contenu modifi lors du travail. Il s'agit en quelque
sorte d'une mmoire "intouchable". Le processeur peut y lire des instructions et des
donnes, jamais il ne pourra y crire quoi que ce soit. En anglais cette mmoire est
d'ailleurs dsigne par l'acronyme ROM, signifiant "Read Only Memory" (= mmoire
dont le contenu peut seulement tre lu (par le processeur)).
On notera ici l'emploi consacr par la tradition informatique des termes lire et crire. Lire veut
dire que le processeur copie en son sein une instruction ou une donne prsente en mmoire
centrale; notons au passage que cette lecture ne vide pas la ou les cellules de la mmoire
contenant ce qui a t lu : c'est toujours une copie que le processeur saisit. Ecrire, l'inverse,
signifie que le processeur modifie l'une ou l'autre cellule de la mmoire en y plaant une
donne ou une instruction qui y remplace l'ancien contenu.

LIRE
Mmoire
Processeur
Copie de la
donne

Copie de la
donne

Donne

La donne reste inchange

Figure 5-2 : schma de la lecture

ECRIRE
Mmoire
Processeur
Donne

Copie de la
donne

Nouvelle donne

L'ancien contenu est perdu


et remplac par la copie

Figure 5-3 : schma de l'criture

L'ensemble des programmes et donnes qui restent ( jamais) en mmoire morte


constituent le BIOS (Basic Input Output System). On y trouve essentiellement :

Des programmes de tests internes excuts ds l'allumage de l'ordinateur (pour


vrifier le bon tat d'un certain nombre de constituants.
Un programme commandant au processeur d'aller chercher sur les mmoires
externes un ensemble de programmes et donnes supplmentaires qui seront
amens en mmoire vive et rendront l'ordinateur capable d'actions
supplmentaires; ces programmes supplmentaires et indispensables, chargs en

CeFIS-FUNDP

Ch. Duchteau

63

... machine ...

Initiation l'informatique

mmoire vive, constituent le (ou une partie du) systme d'exploitation (voir page
173) de l'ordinateur.
Ce court programme enferm en mmoire morte et charg d'amener les programmes
supplmentaires indispensables au fonctionnement de l'ordinateur est le
programme de bootstrapping (ou en abrg de "boot").
Un ensemble de programmes et de donnes correspondant aux actions les plus
rudimentaires dont l'ordinateur est capable; ainsi on y trouve par exemple les
programmes permettant des lectures partir du clavier et des affichages l'cran.
Ces programmes correspondant des actions fort lmentaires seront activs de
trs nombreuses reprises par des programmes plus labors, chargs en mmoire
vive, et qui "passeront la main" ces programmes du BIOS, enferms dans la
mmoire morte.
5.2.1.2.2 La mmoire vive
C'est la zone de mmoire dans laquelle viendront prendre place programmes et
donnes venant de l'extrieur. Elle a les caractristiques suivantes :

Son contenu disparat lorsque l'ordinateur n'est plus sous tension


Cette remarque des consquences pratiques videntes : les documents que l'utilisateur est
en train de crer (une lettre en utilisant le couple ordinateur + traitement de texte, un tableau
statistique en utilisant le couple ordinateur + tableur,...) prennent videmment place dans la
zone de mmoire vive. Tant que l'utilisateur n'a pas demand au systme d'enregistrer ce
document sur un support de mmoire externe, la moindre coupure de courant, en vidant la
mmoire vive, peut rduire nant le travail de plusieurs heures.

Le processeur peut y accder tant en lecture qu'en criture; cet accs complet est
rappel par l'acronyme anglais dsignant la mmoire vive : RAM (Random1 Access
Memory).

5.2.1.2.3 Une question


Certains paramtres descriptifs du systme (le type et le nombre de mmoires externes
- disques durs, lecteurs de disquettes2 - , l'indication de la mmoire externe spcifique partir
de laquelle se fera l'opration de bootstrapping, ) sont essentiels au bon fonctionnement ds
la mise en marche. Ces paramtres (au rang desquels il faut aussi placer la date et l'heure) sont
sujets modification (par exemple quand on change de type de disque dur) : ces donnes qui
doivent tre mmorises doivent donc aussi tre modifiables. On ne peut donc les enfermer
dans la mmoire morte : leur modification entranerait dans ce cas la ncessit de changer
physiquement la ROM. Mais si, fasse cette impossibilit de figer ces paramtres en ROM,
on retient la solution de la mmoire vive (dans laquelle les donnes mmorises peuvent de
fait tre modifies), on se heurte une autre difficult : les donnes mmorises en RAM
disparaissent en l'absence d'alimentation lectrique et ds lors, l'ensemble de ces paramtres
devraient tre redemands l'utilisateur ds la mise en marche (et en tout cas avant l'opration
de bootstrapping), ce qui n'est gure concevable.

1
2

64

Le terme Random ne sera pas davantage explicit; dans l'acronyme RAM, c'est le terme Access qu'il faut
souligner.
Voir ci-aprs pour une description plus complte des mmoires de masse (mmoires externes) :
disquettes, disques durs, CD-ROM, cassettes,
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Quelle solution envisager pour mmoriser ces paramtres descriptifs du


systme qui concilie le fait de pouvoir (de temps autre) modifier ces
donnes, mais galement faire en sorte que leurs valeurs soient conserves,
mme en l'absence de branchement de l'ordinateur sur le rseau lectrique.

On pourrait peut-tre proposer une solution o ces donnes soient conserves sur les
mmoires externes (comme par exemple le disque dur) et charges (= amenes) en RAM lors
de l'opration de bootstrapping. Cette solution ne rsiste cependant pas la constatation que
cette opration (qui consiste au dmarrage aller chercher sur les mmoires de masse des
programmes et donnes essentielles la poursuite du travail) ncessite que les caractristiques
de ces mmoires externes soient connues, avant de pouvoir y accder.
En d'autres termes, avant mme d'aller pcher des informations sur le disque dur, le
systme doit connatre le type et les caractristiques de ce disque dur : ces caractristiques ne
peuvent donc tre portes par le disque : elles devraient tre disponibles avant mme d'avoir
t lues.
La solution consiste alimenter une petite portion de la mmoire vive (modifiable) par
une batterie ou une pile lectriques qui assure la "survie" des informations qui y sont
mmorises, mme en l'absence dbranchement sur le rseau (= quand l'ordinateur est
"teint").

C'est un type particulier de mmoire vive, la CMOS, caractrise par le fait qu'elle
ne ncessite qu'une faible alimentation lectrique pour conserver les donnes
(modifiables) mmorises qui est utilise dans ce cas.

L'ensemble de ces paramtres, conservs dans cette zone particulire de la mmoire


vive maintenue sous tension, constitue ce qu'on appelle le setup du systme.

Il est possible, en enfonant une combinaison de touches approprie au dmarrage du


systme (aprs les tests internes et avant le bootstrapping) de modifier les paramtres
mmoriss dans le setup.

5.2.1.3 L'organisation physique de la mmoire centrale


Je ne souhaite pas ici entrer dans les dtails techniques de description des dispositifs
physiques permettant la mmorisation des informations : la seule chose essentielle consiste
savoir que cette mmorisation prend la forme de minuscules charges lectriques contenues
dans de microscopiques condensateurs. Ce qu'il faut en retenir, c'est seulement que ces
dispositifs physiques de mmorisation n'ont que deux tats possibles : chargs ou dchargs.
Ds lors, tout ce qui sera mmoris en mmoire centrale (les donnes comme les
programmes), est finalement "crit" par des juxtapositions de dispositifs lmentaires n'ayant
que deux tats possibles : chargs ou dchargs.
De manire symbolique, on peut ds lors affirmer que tout ce qui est mmoris dans la
mmoire centrale est cod par deux signes 0 et 1. On peut donc modliser la mmoire centrale
comme une juxtaposition de cases ne pouvant comporter que les deux symboles 0 ou 1.
Il est essentiel d'avoir compris qu'il s'agit l d'un modle, pratique et efficace pour parler de la
structure de la mmoire centrale, mais il ne faut pas confondre ce modle avec la ralit
physique dont il rend compte : il n'y a pas de "case" dans un ordinateur, ni de "0" ou de "1".
Un ordinateur, c'est, en fin de compte du sable (silicium) et de l'acier, ou d'un autre point de
vue, des lectrons qui circulent. Mais mme (surtout !) quand on parle de cette manire on est

CeFIS-FUNDP

Ch. Duchteau

65

... machine ...

Initiation l'informatique

bien, chaque fois en prsence de modles d'une certaine "ralit" (peut tre insaisissable
autrement qu'en la modlisant).

Nous savions dj que pour tre traitables par un ordinateur, toutes les informations
devaient tre codes sous le forme de sries finies de nombres entiers (Principe 3-1: codage de
l'information, page 17). Nous pouvons faire prsent un pas de plus : ces nombres entiers
devront eux mmes tre crits sous la forme de succession de 0 ou de 1 : l'alphabet de
l'ordinateur est binaire.
L'alphabet de l'ordinateur est binaire : tout ce qui est crit (cod) en
mmoire centrale, les donnes comme les programmes excutables,
est crit sous la forme d'une succession des symboles 0 et 1.
Principe 5-2 : l'alphabet de l'ordinateur est binaire
Il ne faut pas confondre alphabet et langage : nous avons le mme alphabet ( trs peu de
choses prs) que les allemands ou les portugais, et nous ne parlons videmment pas le
mme langage. L'alphabet de l'ordinateur est binaire, il ne comporte que les deux signes 0 et
1. Le langage de l'ordinateur (pour autant que ce terme ait du sens) pourrait tre compris
comme l'ensemble des mots "compris" par le processeur et capables de la faire agir. On
pourrait alors dire que tous les ordinateurs ont le mme alphabet (binaire) mais que seuls des
ordinateurs quips du mme processeur ont le mme langage.

5.2.1.3.1 L'unit de mmoire lmentaire : le BIT


La mmoire centrale peut donc tre modlise comme une immense juxtaposition de
cases lmentaires, chacune ne pouvant comporter que l'un des symboles 0 ou 1 :

ou

Figure 5-4 : un bit

Une telle case lmentaire, ne pouvant prendre que l'une des deux valeurs 0 ou 1 est
appele un BIT (BInary digiT ou chiffre binaire).
On a pris l'habitude de dsigner par 0 et 1 les deux symboles constitutifs de l'alphabet des
ordinateurs. N'importe quel autre couple de symboles distincts conviendrait videmment. On
pourrait avoir choisi O (pour ouvert) et F (pour ferm) ou encore C (pour charg) et D (pour
dcharg),
Il faut noter qu' l'instar d'une porte qui ne peut tre qu'ouverte ou ferme, un BIT ne peut tre
que 0 ou 1. Une case lmentaire de mmoire n'est jamais vide : elle contient toujours soit 0
soit 1.

Ainsi donc, le BIT, unit lmentaire permettant la mmorisation de l'information, est


donc une unit de mesure de taille mmoire. C'est aussi une unit de mesure possible de
quantit d'information (en gardant le sens formel attribu cette notion d'information aux
chapitres 1 et 2). Nous y reviendrons ci-dessous.

Combien d'informations diffrentes peut on crire (coder) avec 1 BIT ? Et


avec deux ? Et avec 8 ?

5.2.1.3.2 L'octet
Si l'unit lmentaire de la mmoire est bien le BIT, on a pourtant pris l'habitude,
essentiellement pour des raisons historiques, de considrer la mmoire comme organise en
groupes ou en paquets de 8 bits. Un tel groupe est appel octet ou byte.
66

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Figure 5-5 : un octet

Un octet est donc une succession de huit cases lmentaires, ou encore un


octet = 8 bits.
C'est en ralit l'octet (ou byte) que nous utiliserons comme unit de mesure de la
taille d'une mmoire ou comme unit de mesure de quantit d'informations.
Combien d'informations diffrentes peut-on crire (coder) avec un octet ?

Comme on le verra dans la suite, l'octet est une unit trop petite et, exactement comme
un parle de gramme et de kilogramme, on parle aussi d'octet et de kilo-octet. Mais nous
reviendrons ces units, ci-aprs, quand nous aurons pu leur donner un peu plus de sens et de
porte.
Retenons en tout cas que
Tout ce que codera un ordinateur sera crit octet par octet, aussi bien
les informations manipules que les instructions des programmes qui
feront agir le processeur
Principe 5-3 : l'octet est l'unit de taille mmoire et de quantit d'information

5.2.1.4 Les adresses des cellules de la mmoire


Chaque cellule de la mmoire centrale dont la taille est frquemment d'un octet, est
repre par un numro que l'on appelle son adresse. Lorsque le processeur accde la
mmoire centrale, soit pour y lire une information contenue dans une cellule, soit pour y
crire une information, il le fait en prcisant l'adresse de la cellule concerne par cette lecture
ou cette criture. Le processeur se contente donc de prciser l'adresse de la cellule laquelle il
souhaite accder et d'indiquer s'il s'agit de lire le contenu de cette cellule ou d'y crire.
Ainsi, si le processeur souhaite lire le contenu de la cellule d'adresse binaire 1100 (12
en dcimal) il transfre vers la mmoire ( travers le bus d'adresse, voir le schma ci-dessous)
l'adresse 1100 de la cellule souhaite et prcise la mmoire qu'il s'agit de lire le contenu de
cette cellule. Il recueille alors la sortie de la mmoire le contenu ce cette cellule (par
exemple 10000001 (129 en binaire). Ce contenu est transfr vers le processeur travers le
bus de donnes (voir ci-dessous).

CeFIS-FUNDP

Ch. Duchteau

67

... machine ...

Initiation l'informatique

Adresses

Bus d'
adresses

Contenus

00000000 (0)
00000001 (1)
00000010 (2)

11111101 (253)
11111110 (254)
11111111 (255)

01000001 (65)
00000011 (3)

Bus de donnes
Le processeur indique la
cellule laquelle il veut
accder (pour lire ou pour
crire) en prcisant son
adresse

Le processeur recueille le
contenu de la cellule dont
l'adresse est prcise ou
bien y transfre une
nouvelle donne

Processeur
Figure 5-6 : les adresses

Il est important de ne pas confondre l'adresse d'un emplacement mmoire avec son
contenu. Dans le schma prsent ci-dessus, nous avons suppos que les adresses des cellules
mmoires taient crites sur un octet et que les contenus de ces cellules taient galement d'un
octet.
Il est essentiel d'avoir saisi ce mode de fonctionnement : le travail consiste essentiellement en
des changes entre la mmoire centrale et le processeur. Le processeur indique l'adresse de
la cellule concerne par cet change ( travers le bus d'adresses) et crit ou lit ( travers le
bus de donnes) dans cette cellule.

5.2.2 Un dtour par le codage binaire


Mme si le fait que l'alphabet de l'ordinateur est binaire et mme si, heureusement,
nous n'aurons pas explicitement nous en proccuper (ne serait-ce que parce que les
priphriques d'entre et de sortie coderont et dcoderont pour nous), certains faits ne
pourront se comprendre qu'en tenant compte de cette contrainte de l'criture des nombres en
binaire.
5.2.2.1 Comment crivons nous les nombres
Nous avons, chacun le sait, 10 symboles notre disposition, les 10 chiffres : 1, 2, 3, 4,
5, 6, 7, 8, 9 et 0 qui va jouer un rle trs particulier.
Les premiers nombres (de 1 9) peuvent s'crire sans problme par la succession des
symboles disponibles : 1, 2, 3, 4, 5, 6, 7, 8, 9. Pour le suivant, il ne reste plus de symbole
supplmentaire, sauf le 0 : c'est l que va jouer la solution connue sous le vocable de
numration dcimale de position. On crira ds lors 10, ce qui signifie une dizaine et zro
unit. On poursuit le systme jusque 99 (neuf dizaines et neuf units), ensuite on fait le pas
consistant crire 100, soit une centaine, zro dizaine et zro unit.
Dans ce systme, c'est le rang qu'occupe un symbole qui lui donne sa valeur; ainsi
6034
6
6 milliers
3

6 x 10
68

0
0 centaine
0 x 10

3
3 dizaines
1

3 x 10
Ch. Duchteau

4
4 units
0

4 x 10

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Comme on s'est donn dix symboles (0 compris), on dit qu'on note les nombres en
base 10 et ce sont les puissances de 10 qui sont importantes et donnent par ailleurs des
nombres bien "ronds" comme 0, 10, 100, 1000.
5.2.2.2 Comment les nombres sont crits en binaire
Le codage binaire suit les mmes rgles, mais comme on ne permet que deux
symboles (0 et 1), c'est les puissances de deux qui seront importantes.
Ainsi, on commence avec
1

pour noter un

mais on est immdiatement tenu de passer


10

signifiant une deuzaine et zro unit pour noter deux

11

signifiant une deuzaine et une unit pour noter trois

100

signifiant une quatraine, zro deuzaine et zro unit pour noter quatre

puis
puis
etc..
Un nombre comme
1

1 seizaine

0 huitaine

1 quatraine

0 deuzaine

1 unit

1x2
0x2
1x2
0x2
1x2
signifie donc seize + quatre + un, soit vingt et un, qui serait crit 21 (deux dizaines et une
unit) en notation dcimale.
Pour passer de la notation dcimale la notation binaire, la mthode est simple et je
vais l'illustrer sur un exemple : le codage en binaire de cent.
divisions successives
1
on
divise
par 2
Quotient :
0
Reste :
1

3
on
divise
par 2
Quotient :
1
Reste :
1

6
on
divise
par 2
Quotient :
3
Reste :
0

12
on
divise
par 2
Quotient :
6
Reste :
0

25
on
divise
par 2
Quotient :
12
Reste :
1

50
on
divise
par 2
Quotient :
25
Reste :
0

100
on
divise
par 2
Quotient :
50
Reste :
0

lecture de gauche droite du codage binaire


Figure 5-7 : criture en binaire

On divise donc le nombre initial puis les quotients successifs obtenus par 2 en notant
chaque fois le reste de cette division (qui sera forcment 1 ou 0). On arrte lorsque le quotient
est nul : les restes successifs obtenus donnent alors (de gauche droite) l'criture en binaire du
2
nombre initial. Ici, 100 s'crira donc en binaire 1100100 (une quatraine (2 ) + une trente5
6
deuzaine (2 ) + une soixante-quatraine (2 ))
Il faut bien noter que les nombres bien "ronds" sont en binaire les puissances de 2
(alors qu'en dcimal, il s'agissait des puissances de 10) :
CeFIS-FUNDP

Ch. Duchteau

69

... machine ...

10
100
1000
10000
100000

Initiation l'informatique

soit en dcimal
soit en dcimal
soit en dcimal
soit en dcimal
soit en dcimal
etc.

2
4
8
16
32

5.2.3 Comment les informations sont codes en mmoire


Nous savions dj que toutes les informations taient devenues des nombres entiers. Il
reste voir comment ces nombres sont cods en binaire.
5.2.3.1 Le codage des caractres
Chaque caractre s'tait vu associer un nombre entier (entre 0 et 255) travers le code
ASCII ou le code ANSI (Voir pages 20 et 23).
Le nombre maximal de caractres reprsentables s'explique prsent si l'on ajoute que
un caractre (ou plutt l'entier qui lui est associ) est cod sur un octet.
On a en effet 256 configurations diffrentes d'un octet, depuis
0

Figure 5-8 : l'octet nul

jusque
1

Figure 5-9 : l'octet codant 255

qui est l'criture binaire de 255.


Ainsi, le caractre A auquel le code ASCII avait associ l'entier 65 sera cod par l'octet
correspondant l'criture binaire de 65, soit
0

Figure 5-10 : l'octet codant A

ou encore, une soixante-quatraine et une unit.


Le codage d'un texte, succession de caractres, se fera travers la succession des octets
codant ces caractres (un octet par caractre du texte).
5.2.3.2 Le codage des nombres entiers
5.2.3.2.1 Les entiers : des successions de caractres-chiffres
Un nombre entier peut d'abord tre considr comme la succession des caractres qui
servent l'crire. Il est alors cod comme n'importe quelle portion de texte raison d'un octet
par caractre.
Ainsi, dans la phrase "On pouvait compter 253 prsents la runion" (qu'on pourrait
trouver par exemple au sein d'un texte produit et manipul l'aide d'un logiciel de traitement
de texte), "253" n'est pas considr comme un entier, mais plutt comme la succession des
caractres "2", "5" et "3" au mme titre que le mot "compter" est cod comme la succession
des caractres "c", "o", "m", "p", "t", "e" et "r".

70

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Il va de soi que dans ce cas l'entier est cod comme la succession des caractres qui le
composent et pour coder "253", on utilisera 3 octets.
5.2.3.2.2 Les entiers vus comme des nombres
Lorsqu'on souhaite par exemple effectuer des calculs sur les entiers considrs, il est
vident qu'ils doivent tre considrs comme des nombres en non comme du texte.

Comment l'ordinateur peut-il savoir si le "253" qu'on frappe au clavier doit


tre considr comme un nombre ou comme du texte ?

Il suffit d'indiquer sur combien d'octets sont cods les entiers. Malheureusement, la
rponse cette question n'est pas uniforme. Le chapitre prcdent nous a appris que la seule
ralit tait toujours un systme informatique, autrement dit, un couple ordinateur + logiciel.
Le choix du nombre d'octets retenus pour crire en mmoire un entier dpend donc du logiciel
qui quipe l'ordinateur considr.
C'est toujours le mme problme : parler du codage des entiers par l'ordinateur n'a pas de
sens (puisque "l'ordinateur n'existe pas". C'est on le devine, le logiciel qui contrle l'ordinateur
qui fait dcider de la manire dont ce qui est frapp au clavier va tre cod en mmoire; "253"
frapp au clavier sera cod comme du texte (sur trois octets) si c'est tel ou tel logiciel qui est
l'oeuvre et cod comme un entier sur deux octets si c'est tel autre ou sur 4 octets pour un
troisime.

Si nous retenons (ce qui est fort souvent le cas) le chiffre de deux octets, pour le
codage d'un nombre entier, nous sommes en mesure de mener le raisonnement suivant : en
gnral (sauf si on souhaite ne reprsenter que des nombres positifs), un BIT va servir
retenir le signe du nombre entier considr :
signe

Figure 5-11 : codage d'un entier

En ralit, le codage du signe est un peu plus complexe que ce qui est indiqu ici, mais
le rsultat revient en gros admettre que un BIT tant perdu pour le signe, il ne reste plus que
15 bits pour crire l'entier coder.
La rponse est alors immdiate : avec les 15 bits restant on a droit 215 configurations
diffrentes, soit 32.768 configurations. Si 0 est compt comme positif (et cod avec une
succession de 15 zros), on pourra donc crire sur les 15 bits les nombres entre 0 et 32.767 (ce
qui fait bien 32.768 configurations diffrentes).
Pour les ngatifs, on a droit aussi 32.768 configurations; comme on peut commencer
-1, on pourra crire les nombres de -1 -32.768.
Ainsi, on pourra coder au total tous les entiers entre -32.768 et 32.767.

Quels entiers pourraient-on coder, si le codage se fait sur quatre octets ? Et si


l'on dcide de ne coder sur deux octets que les entiers positifs (zro
compris) ?

Comme on le voit, les entiers codables sont relativement limits en taille. Mme si l'on
augmente le nombre d'octets utiliss pour ce codage, il subsistera toujours une borne priori
sur la grandeur des entiers manipulables.
CeFIS-FUNDP

Ch. Duchteau

71

... machine ...

Initiation l'informatique

On touche l une des contraintes essentielles de l'univers informatique. En mathmatique,


lorsqu'il est question de l'ensemble des entiers (ce qu'on note souvent

Z), on sait que cet

ensemble est infini : il n'y a pas de limite la taille des entiers. En informatique, c'est
seulement un intervalle fini de l'ensemble des entiers qui est reprsentable et manipulable : on
ne peut coder tous les entiers imaginables.

En rsum, il faut retenir que


Les nombres entiers codables et manipulables par l'ordinateur sont de
taille finie. On ne peut travailler qu'avec un intervalle limit de
l'ensemble des entiers (par exemple de -32.768 32.767).
Une question se pose alors : que se passe-t-il lorsque les manipulations effectues sur
les entiers conduisent dpasser les bornes fatidiques au-del desquelles les entiers ne
peuvent plus tre cods (en utilisant le nombre d'octets fix) ? Ainsi, avec des entiers cods
sur deux octets, que se passe-t-il lorsque on commande une opration comme 20.000 + 20.000
qui, conduit un rsultat, 40.000, qui n'est plus reprsentable ?
A nouveau, la rponse cette question n'est pas uniforme, mais dpend du logiciel qui
contrle l'ordinateur pendant ce dpassement de la taille des nombres entiers reprsentables.

Voici par exemple, dans le cas d'un petit programme, crit en Pascal, qui
commande l'ordinateur de placer en mmoire (dans deux cases destines
contenir des entiers et constitues chacune de deux octets) puis d'en afficher
la somme, le rsultat surprenant obtenu :
var A,B : integer;

(on dfinit deux casiers pouvant contenir chacun un entier)

begin
A:=20000;
B:=20000;

(on place 20000 dans le premier casier)


(on place 20000 dans le second casier)

writeln('La somme de ',A,' et ',B,' est ',A+B);

(on demande l'affichage de la somme des contenus des deux casiers contenant
chacun l'entier 20000)

end.

L'excution de ce programme conduit l'affichage


La somme de 20000 et 20000 est -25536

Le rsultat correct, 40.000, qui n'est pas codable est remplac par un nombre
ngatif, -25.536 !
Avec certains logiciels, le rsultat est aberrant : la somme de deux entiers positifs
donne un rsultat ngatif. Avec d'autres, les choses sont plus claires : l'ordinateur "se plante"
ou signale une erreur.
5.2.3.3 Le codage des nombres rels
Il faut signaler nouveau que la succession des symboles constituant le nombre peut
tre vues comme du texte cod octet par octet. Ainsi, "345,56" peut tre cod comme du texte,
sur 6 octets successifs.
Ce qui intresse ici, c'est de considrer "345,56" comme un nombre. On sait dj qu'il
sera cod, en virgule flottante, sous la forme de deux entiers, la mantisse soit 34556 et
l'exposant soit 2. Rappelons en effet qu'on passe de
345,56 3,4556 x 102 puis 34556 et 2 (Voir page 24)
On devine dans ces conditions que mantisse et exposant intervenant dans le codage du
nombre seront cods sparment sur un certain nombre d'octets.
72

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

A nouveau, il me faut signaler que la ralit est un peu plus complique que ce que j'en dcris
ici. L'important, ce sont les conclusions auxquelles on arrive.

Si par exemple la mantisse est code sur 3 octets et l'exposant sur 1 octet, on est
conduit aux contraintes suivantes :

Les trois octets de la mantisse permettent puisque l'un des bits est perdu pour le signe
un nombre maximal de l'ordre de 223 soit 8.388.608 qui est un nombre de 7 chiffres.
Retenons donc que le nombre de chiffres gards dans l'criture de la mantisse est
limit cause du codage effectu.

Le codage de l'exposant sur un octet conduit, puisque l aussi un BIT est perdu pour le
signe, un exposant de l'ordre de 27 soit 128.
Il faut cependant ajouter que, comme le codage se fait en binaire, l'criture en virgule flottante
fait appel aux puissances de 2 et non de 10 et que ds lors si l'exposant maximal est de
128
l'ordre de 128, la grandeur du nombre est de l'ordre de 2
ou, en revenant la base 10, de
38
l'ordre de 10 .

Ainsi donc l'exposant est limit, mme s'il permet de coder des nombres de l'ordre de
1038 qui sont normes.
Ds lors, travers le codage de la mantisse et de l'exposant, on constate les deux faits
essentiels suivants :
Le nombre de chiffres possibles pour l'criture du rel, ce que l'on appelle souvent le
nombre de chiffres significatifs, est limit; par ailleurs l'exposant, mme s'il permet de
considrer des nombres d'un trs grand ordre de grandeur est aussi limit. Un exemple fera
mieux comprendre ces deux constatations.
Supposons, pour simplifier l'explication, que les octets retenus pour coder la mantisse
conduisent trois chiffres significatifs seulement et que l'exposant puisse tre de l'ordre de 30.
Si je fournis les nombres 1234999,0 et 1234000,0 et que je demande de calculer la diffrence,
le rsultat au lieu d'tre comme il se doit 999,0 sera gal 0 : le systme ne fera aucune
diffrence entre les deux nombres 1234999.0 et 1234000.0. En effet
1234999.0
devient
1.23 x 106
puisque seuls trois chiffres significatifs peuvent tre
codages sont bien identiques.

1234000.0
devient
1.23 x 106
retenus pour la mantisse et ces deux

Le codage des nombres rels, avec une taille limite pour la mantisse, conduit donc
omettre lors du codage certains chiffres significatifs. Des erreurs surviennent alors cause de
ces oublis : c'est ce qu'on appelle des erreurs de troncature.
En rsum, il faut retenir que
Les nombres rels codables et manipulables par l'ordinateur mme
s'ils peuvent tre normes ( cause de la taille permise pour l'exposant)
ne sont cods qu'en retenant un certain nombre de chiffres significatifs
( cause de la mantisse). On constate alors des erreurs qui peuvent tre
importantes : les erreurs de troncature.

!
CeFIS-FUNDP

Voici nouveau, pour les amateurs, un court programme en Pascal qui


illustre les erreurs de troncature dues au nombre limit de chiffres significatifs
Ch. Duchteau

73

... machine ...

Initiation l'informatique

des rels, tant donn le nombre d'octets disponibles pour la mantisse :


(on dfinit deux casiers A et B destins recevoir des rels avec
une mantisse code sur 3 octets et un exposant sur 1 octet; ceci
permet de retenir 7 chiffres significatifs)
extended; (on dfinit deux casiers C et D destins recevoir des rels
avec une mantisse code sur 8 octets et un exposant sur 2 octets;
ceci permet de retenir 19 chiffres significatifs)

var A,B : single;

C,D :

begin

(on place dans A un rel comportant plus de chiffres que le


nombre de chiffres significatifs pouvant tre retenus tant donn
la taille de la mantisse (3 octets))
B:=123456789000.0; (on place dans B un autre nombre rel comportant lui aussi plus
de chiffres que le nombre de chiffres significatifs pouvant tre
retenus tant donn la taille de la mantisse (3 octets))
C:=123456789999.0; (on place dans C un rel comportant moins de chiffres que le
nombre de chiffres significatifs pouvant tre retenus tant donn
la taille de la mantisse (8 octets))
D:=123456789000.0; (on place dans D un autre nombre rel comportant moins de
chiffres que le nombre de chiffres significatifs pouvant tre
retenus tant donn la taille de la mantisse (8 octets))
(Il faut noter que, pour nous, A-B donne le nombre 999, tout comme C-D)
A:=123456789999.0;

writeln('La diffrence de 123456789999.0 et 123456789000.O est ',A-B);

(On demande ici l'affichage de la diffrence entre A et B; ce devrait tre 999.0)


writeln('La diffrence de 123456789999.0 et 123456789000.0 est ',C-D);

(On demande ici l'affichage de la diffrence entre C et D; ce devrait tre 999.0)


end.

Voici ce que donne l'excution de ce petit programme :


La diffrence de 123456789999.0 et 123456789000.O est

0.00000000000000E+0000

(La diffrence de A et B qui devrait thoriquement donner 999 donne en ralit 0 :


les derniers chiffres de A et B n'ont pu tre retenus tant donn la taille de la
mantisse (3 octets))
(Il faut savoir que l'criture 0.0000...E+00... signifie 0.000... x 100 soit 0 x 1 soit 0)
La diffrence de 123456789999.0 et 123456789000.0 est

9.99000000000000E+0002

(La diffrence de C et D donne bien 999, puisque le rsultat signal soit


9.9900...E+0002... signifie 9.990 x 102 soit 9.99 x 100 soit 999. dans ce cas le
rsultat est bien correct puisque les deux nombres rels C et D ont pu tre cods avec
tous leurs chiffres tant donn la taille plus grande des mantisses permises.)

5.2.3.4 Le codage des dessins


Nous nous limiterons ici au codage bitmap o le dessin est vu, aprs discrtisation,
comme un ensemble de points, les pixels. De plus, la version de codage aborde ici est
simplifie, mme si les principes illustrs sont ceux qui prsident la plupart des codages
bitmap.
Deux informations sont en tout cas ncessaires pour commencer : le nombre de pixels
sur la hauteur de l'image et le nombre de pixels sur sa largeur. Chacune de ces quantits est
par exemple code sur 2 octets.
Il faut aussi indiquer en gnral le nombre de couleurs possible pour le dessin soit le
nombre de couleurs possibles pour n'importe quel pixel) : 16, 256, 16.777.216

74

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Pourquoi deux octets pour coder le nombre de pixels sur la hauteur et la


largeur et pas un octet ? ou quatre ?
Pourquoi ces nombres de couleurs possibles pour chaque pixel et pas 1000 ou
10.000 ?

Vient ensuite le codage de la succession de tous les pixels, avec pour chaque pixel
simplement l'indication de la couleur qui le caractrise. Cette couleur peut tre code sur
octet (2 pixels codable sur un octet, ce qui conduit 16 couleurs seulement), un octet (256
couleurs) ou trois octets (16.777.216 couleurs).
5.2.3.5 Le codage des sons
Nous savons dj qu'un chantillonnage du signal lectrique correspondant au son
traiter est effectu. Lorsque l'on souhaite que le codage du son ait une qualit analogue celle
des CD-Audio, cet chantillonnage se fait avec une frquence de 44,1 KHz (le signal est
analys 44.100 fois par seconde). On utilise en gnral deux octets pour coder chacune des
valeurs obtenues lors de l'chantillonnage et cela pour chaque canal (gauche et droit) dans le
cas d'un son stro. C'est donc 2 x 44.100 x 2 octets, soit 176400 octets (environ 176 Ko), qui
sont alors ncessaire pour coder une seconde de son, avec cette qualit. Le codage de son
rclame donc des quantits normes de mmoire, puisque pour coder une minute, plus de 10
millions d'octets (10 Mo) sont ncessaires. (Voir ci-dessous la dfinition du Ko et du Mo).

5.2.4 Comment les instructions des programmes excutables sont codes en


mmoire
Nous savons dj que la mmoire centrale comportera des donnes, codes comme
dcrit ci-dessus, mais galement les programmes excutables par le processeur. Sans entrer
dans un dtail qui ne sera possible qu'aprs la description de ce dernier, nous pouvons dj
signaler que ces instructions seront videmment (comme tout le reste) code en binaire sur un
ou plusieurs octets.

5.2.5 Retour sur les units de mesure


Nous savons prsent que l'octet est l'espace sur lequel on code un caractre. Nous
pouvons ds lors donner davantage de signification aux diverses units utilises pour mesurer
la taille des dispositifs de mmorisation et la quantit d'informations.
5.2.5.1 Les units de mesure de taille mmoire
Au del de l'octet, on va trouver :
Le KiloOctet (Ko) qui vaut 1024 octets.
On pourrait s'tonner de ce chiffre : on aurait pu penser que le KiloOctet soit
exactement 1000 octets. En ralit, on a retenu 1024 cause du fait que l'ordinateur
travaillant en binaire, 1024 est un nombre, proche de 1000 et bien "rond" lorsqu'on
utilise le binaire. En effet 1024 est gal 210 ou encore, en binaire, 10000000000.
Sachant que de plus, un octet est la place prise par le codage d'un caractre et en
admettant qu'un page dactylographie comporte environ 2000 caractres, on peut dire
que 1 Ko est la taille ncessaire en mmoire pour coder l'ensemble des caractres d'une
demi-page ou encore que 1 Ko quivaut environ page.

Le MgaOctet (Mo) qui vaut 1024 Ko (210 Ko ou 220 octets), soit environ 500 pages.

Le GigaOctet (Go) qui vaut 1024 Mo (210 Mo ou 220 Ko ou 230 octets), soit environ
500.000 pages.

CeFIS-FUNDP

Ch. Duchteau

75

... machine ...

Initiation l'informatique

Le TraOctet (Mo) qui vaut 1024 Go, soit environ 500.000.000 pages.

5.2.5.2 Le caractre formaliste des units de mesure


Ces diverses units de mesure, dont les plus utilises sont le Ko et le Mo servent
galement mesurer la quantit d'informations. Mais tout se passe nouveau de manire trs
formaliste puisque, par exemple, pour valuer la quantit d'informations contenue dans un
texte, on se contente de compter le nombre de caractres (octets) qui le composent.
Ainsi, en informatique, les deux textes suivants comportent chacun la mme quantit
d'information, savoir 16 octets (en comptant les espaces, figurs ici par le symbole de
soulignement)
A_BC_DE_FG_HI_JK

7_13_19_22_28_35

mme si on vous assure que les caractres du second texte constituent coup sr les rsultats
du prochain tirage gagnant du Lotto ! Pour l'informaticien, ces deux documents comportent la
mme quantit d'information !

5.2.6 Le processeur et ses relations avec la mmoire centrale


Aprs avoir examin de plus prs l'organisation de la mmoire centrale, il nous faut
prsent dcrire ce qui constitue le coeur du systme, l'endroit o les instructions constituant
les programmes excutables sont "comprises" et excutes, l'endroit o les donnes
manipuler sont traites : le processeur.
5.2.6.1 Principes d'architecture
Ce sont les principes d'organisation et de fonctionnement du processeur et, surtout, de
ses liens avec la mmoire centrale qui seront illustrs ici. Il ne faut donc pas y chercher une
tude dtaille et technique des processeurs tels qu'ils se prsentent aujourd'hui.
C'est l'organisation qui est commune tous les ordinateurs qui sera dcrite ici. Les dtails
relatifs telle ou telle machine qui complexifie la description seront largement passs sous
silence.

76

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Mmoire centrale
Interface d'entre/sortie pour l'accs aux priphriques d'entre,
aux priphriques de sortie et aux mmoires externes

Bus de commande

Bus d'adresses

Registre d'adresses

Bus de donnes

Registres

Registre d'instruction
Compteur
ordinal

Horloge
Unit Arithmtique et
logique

Unit de commande

Processeur

Figure 5-12 : architecture gnrale d'une unit centrale

Le processeur est, dans son principe, constitu de deux composantes : l'unit de


commande et l'unit arithmtique et logique.
5.2.6.1.1 L'unit de commande ou de contrle
C'est au sein de cette unit que rsident :

L'horloge interne du processeur : ce sont les battements de cette horloge qui cadencent
le travail de toute l'unit centrale. Tout le fonctionnement du processeur, l'accs la
mmoire, etc., est synchronis sur le rythme impos par cette horloge. Sa frquence,
sur les processeurs actuels quipant les PC, est de l'ordre de 200 MHz (200 MgaHertz
soit 200 millions de battements par seconde).

Le compteur ordinal : c'est un registre particulier de l'unit de commande qui contient,


comme on va le voir, l'adresse de l'instruction excuter par le processeur (instruction
prsente en mmoire centrale). On peut deviner qu'en gnral, la fin de l'excution
d'une instruction, le compteur ordinal augmentera simplement de 1 pour qu'on passe
l'instruction dont l'adresse suit celle de l'instruction qui se termine.

J'ai signal ci-dessus que ce compteur ordinal est un registre: Ce terme de registre dsigne
simplement une cellule de mmorisation prsente au sein du processeur. C'est un peu
comme une cellule mmoire ceci prs qu'elle fait partie du processeur et non de la
mmoire centrale.

Le registre d'adresses est galement une cellule susceptible de contenir une


information crite en binaire. Cette information sera toujours l'adresse d'une cellule de

CeFIS-FUNDP

Ch. Duchteau

77

... machine ...

Initiation l'informatique

la mmoire centrale laquelle le processeur souhaite accder (pour en ramener le


contenu ou pour y crire un nouveau contenu). C'est en quelque sorte travers ce
registre que le processeur indique l'emplacement en mmoire de la cellule avec
laquelle il souhaite travailler.
On devine dj que la taille de ce registre d'adresses est un paramtre important de
description et d'valuation d'un processeur et donc d'une unit centrale. Si ce registre a
une taille d'un octet, on pourra y placer seulement 256 adresses diffrentes (de
00000000 (0) 11111111 (255)). Autrement dit, mme si la mmoire centrale
comportait des milliers de cellules, le processeur ne pourrait travailler qu'avec les
cellules dont l'adresse pourrait tre code dans le registre d'adresses (ici entre 0 et
255). La taille du registre d'adresses donne donc la quantit de cellules auxquelles le
processeur pourra accder : on dit que cette taille dtermine la mmoire adressable par
le processeur.

Les premiers micro-ordinateurs (ceux de la dcennie 70) possdaient un registre


d'adresses d'une taille de 2 octets (16 bits), ce qui permettait d'adresser 216 cellules de
mmoire ou 65536 cellules dont le contenu tait par ailleurs d'un octet, ce qui
conduisait une taille de mmoire adressable de 65536 octets ou 64 Ko.
Les PC apparus au dbut des annes 80 possdaient un registre d'adresses d'une taille
de 20 bits, permettant d'adresser 220 cellules (d'un octet) soit 1 Mo.
Les (micro)-ordinateurs actuels ont un registre d'adresses de 4 octets permettant au
processeur d'adresser 232 soit 4294967296 cellules ou 4 Go.

Le registre d'instruction est aussi une cellule de mmorisation interne l'unit de


commande du processeur. C'est dans ce registre que seront amenes, l'une aprs
l'autre, les instructions excuter par le processeur pendant le droulement de
l'excution d'un programme.

5.2.6.1.2 L'unit arithmtique et logique (UAL)


C'est cette composante du processeur qui va effectuer les oprations de nature
arithmtique ou logique sur les donnes ramenes dans les registres prsents dans cette mme
unit pour placer les rsultats de ces oprations dans ces mmes registres. Ces oprations
seront commandes chaque fois par une instruction prsente dans le registre d'instruction.
Comme on le verra, les oprations possibles pour cette UAL consistent additionner,
soustraire, comparer,... les donnes prsentes au sein des registres de cette unit. Le nombre
des registres varie avec le type de processeur considr : de quelques-uns quelques dizaines.
Leur taille est galement variable : de un quelques octets. On les dsigne souvent comme
des registres de donnes, puisqu'ils contiennent des donnes en provenance de la mmoire ou
qui sont les rsultats d'oprations effectues par l'UAL et qui devront tre rcrites en
mmoire.
Le processeur est en liaison avec la mmoire centrale et avec les dispositifs qui
accueillent les donnes de l'extrieur (en provenance des priphriques d'entre ou des
mmoires externes ou destination des priphriques de sortie ou des mmoires externes).
Ces liaisons sur lesquelles vont circuler ce qui est chang entre processeur et
mmoire centrale sont des bus. Ils sont essentiellement de trois types :

78

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.2.6.1.3 Le bus d'adresses


C'est la liaison travers laquelle les adresses de cellules mmoires auxquelles le
processeur veut accder (pour y lire ou y crire) sont achemines. Ce bus met donc en
communication le registre d'adresses et la mmoire.
5.2.6.1.4 Le bus de donnes
C'est travers cette liaison que les donnes ou les instructions contenues dans les
cellules mmoires seront achemines vers le processeur pour prendre place soit dans le
registre d'instructions soit dans l'un ou l'autre des registres prsents dans l'UAL.

La taille (= la largeur) du bus de donnes est un paramtre important d'une unit


centrale. C'est en quelque sorte le nombre d'octets qui peuvent transiter, en un seul
voyage, entre le processeur et la mmoire.
Dans les processeurs du dbut de la micro-informatique, un seul octet tait achemin
la fois le long du bus de donnes : on parlait de micro-processeur 8 bits, comme
dans les premiers PC (quips de processeurs Intel 8088). On a eu ensuite des bus de
donnes acheminant 2 octets la fois, comme dans les processeurs Intel 80286 (dits
processeurs 16 bits); puis ceux permettant des changes de 4 octets (32 bits) comme
les Intel 80386.
Dans les processeurs Intel Pentium actuels, c'est 8 octets (64 bits) qui peuvent
transiter cte cte entre la mmoire et le processeur.

5.2.6.1.5 Le bus de commandes (ou de contrle)


Nous en dirons fort peu de choses : il achemine des signaux de contrle et de
synchronisation entre les divers organes de l'unit centrale.
5.2.6.2 Principes de fonctionnement
Nous les illustrerons ci-dessous par un exemple lmentaire. Ds prsent, il est bon
de signaler les lments suivants :

A chaque type de processeur est associ un ensemble d'instructions destines faire


agir ce processeur. Ces instructions, codes en binaire sur un ou plusieurs octets,
rsident en mmoire. Leur succession constitue un programme "en langage machine"
destin faire traiter des donnes (galement prsentes en mmoire).

Ces instructions correspondent des actions dont le processeur est capable : aller chercher
le contenu d'une ou plusieurs cellules mmoire pour les ramener dans des registres de
l'UAL, additionner les contenus de certains de ces registres en plaant le rsultat dans
un autre registre, recopier en mmoire le contenu d'un de ces registres, etc..
Le langage machine est donc l'ensemble des instructions propres un processeur et qui vont
le faire agir. Ce langage est propre chaque type de processeur et il est donc abusif de parler
de "langage machine" comme si les termes de ce langage taient communs toutes les
machines. Il faudrait en ralit parler du langage de tel type de processeur, les instructions le
composant tant diffrentes de celles du langage d'un autre type de processeur.

Il est difficile de dcrire de quoi se compose typiquement une instruction en langage


machine, d'autant que, comme signal, cela peut varier d'un processeur un autre.

Le plus souvent cependant, une telle instruction comporte :


L'indication de l'opration qui doit tre effectue par le processeur : lecture en
mmoire, criture en mmoire, addition, soustraction, comparaison,... La partie de
l'instruction qui donne cette indication s'appelle le code opratoire.
CeFIS-FUNDP

Ch. Duchteau

79

... machine ...

Initiation l'informatique

L'indication des donnes ncessaires pour mener bien l'opration commande :


adresses des cellules mmoire dans lesquelles le processeur va lire la ou les
donnes ramener dans des registres, adresses des cellules mmoire o le
processeur va crire les contenus de certains de ces registres, etc..
L'excution des instructions suit en principe le cheminement suivant :
Le compteur ordinal ayant une certaine valeur, cette valeur est recopie dans le
registre d'adresses et le processeur accde en lecture la cellule de mmoire
dsigne par cette adresse. Le contenu de cette cellule, considr comme une
instruction, est ramen, travers le bus de donnes, dans le registre d'instructions
du processeur.
L'instruction ramene dans le registre d'instructions est dcode et excute. Ceci
ncessite le plus souvent de nouveaux accs la mmoire pour y lire ou y crire
des donnes. Ces accs se font, comme toujours, en plaant les adresses (qui taient
mentionnes dans l'instruction qui est en train d'tre excute) dans le registre
d'adresses, en accdant aux cellules d'adresses indiques et en transfrant dans ces
cellules (criture) ou partir de ces cellules (lectures) les donnes traiter, travers
le bus de donnes.
Une fois l'instruction excute, le compteur ordinal augmente gnralement de 1 et
tout recommence.

5.2.7 Un exemple simplifi d'unit centrale, de langage machine et d'excution


d'un programme
Comme un court exemple vaut mieux qu'un long discours, nous allons dcrire un
modle extrmement simplifi d'unit centrale et un langage machine correspondant au
modle simplifi du processeur de cette unit centrale. Nous dcrirons ensuite un traitement
que nous souhaiterions faire excuter par cette unit centrale, nous crirons le programme en
langage machine correspondant ce traitement (= les indications destines au processeur pour
mener bien ce traitement) et nous suivrons pas pas l'excution de ce programme.

Il est essentiel d'avoir compris qu'il ne s'agit ici que d'un exemple,
extrmement simplifi, mais qui illustre les principes de fonctionnement de
tout ordinateur. Tout ordinateur fonctionne un peu comme cela, mais pas
exactement comme cela.

5.2.7.1 Un modle simplifi d'unit centrale


La mmoire centrale de cette unit centrale (voir figure ci-dessous) est constitue de
seulement 32 cellules d'un octet. Les adresses de ces cellules vont de 0 31 (de 00000
11111 en codage binaire). Cette taille n'est pas dus au hasard : elle rsulte de la taille du
registre et du bus d'adresses qui est seulement de 5 bits.
Le compteur ordinal et le registre d'adresses du processeur sont constitus de 5 bits.
Le registre d'instructions peut accueillir un octet.
L'UAL ne comporte qu'un seul registre pour accueillir des donnes; sa taille est d'un
octet. Un second registre est prsent dans l'UAL, le code condition (2 bits) dont le
contenu ne sera modifi que lors de l'excution d'une instruction de comparaison.
Le bus de donnes permet d'acheminer un octet entre la mmoire et le processeur ou
vice-versa.

80

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...


Adresses

Bus d'adresses

Contenus des cellules

00000
00001

(0)
(1)

00010
00011

(2)
(3)

00100
00101

(4)
(5)

00110
00111

(6)
(7)

01000
01001

(8)
(9)

01010
01011

(10)
(11)

01100
01101

(12)
(13)

01110
01111

(14)
(15)

10000
10001

(16)
(17)

10010
10011

(18)
(19)

10100
10101

(20)
(21)

10110
10111

(22)
(23)

11000
11001

(24)
(25)

11010
11011

(26)
(27)

11100
11101

(28)
(29)

11110
11111

(30)
(31)
Bus de donnes

Registre d'adresses

Reg

d'instruct.

Registre de donnes

Compteur ordinal

Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-13 : modle simplifi d'unit centrale

CeFIS-FUNDP

Ch. Duchteau

81

... machine ...

Initiation l'informatique

5.2.7.2 Un modle simplifi de langage machine adapt au modle simplifi d'unit centrale
Chaque instruction destination du processeur simplifi est code sur un octet et a la
structure suivante :

Les trois premiers bits de l'octet codant l'instruction constituent le code opratoire,
c'est dire l'indication de l'opration effectuer par le processeur. Le code opratoire
tant cod sur 3 bits, on a donc la possibilit de dsigner seulement 8 (23) oprations
diffrentes.

Les 5 bits suivants de l'octet codant une instruction dsignent en gnral une adresse
mmoire (pour y lire ou y crire une donne).
Les 8 instructions disponibles sont les suivantes :

1.

L'instruction de lecture : son code opratoire est 000, la seconde partie (=les 5 bits
suivants) est une adresse. Son effet est prendre copie du contenu de la cellule dont
l'adresse est indique et de l'amener travers le bus de donnes dans le registre de
donnes de l'UAL (dont elle remplace l'ancien contenu). On notera que le contenu de
la cellule consulte n'est pas modifi.

2.

L'instruction d'criture en mmoire : son code opratoire est 001, la seconde partie
(=les 5 bits suivants) est l'adresse d'une cellule mmoire. Son effet est copier dans la
cellule dont l'adresse est indique le contenu du registre de donnes de l'UAL.
L'ancien contenu de cette cellule est perdu; par contre, le registre de l'UAL garde son
contenu inchang.

3.

L'instruction d'addition : son code opratoire est 010, la seconde partie (=les 5 bits
suivants) est une adresse. Son effet est prendre copie du contenu de la cellule dont
l'adresse est indique, de l'amener travers le bus de donnes vers l'UAL et de
l'additionner au contenu actuel de ce registre de donnes.
Dans cette version extrmement simplifie, on ne se proccupe pas des dbordements qui
peuvent se produire lorsque l'addition conduit un rsultat qui ne tient plus sur un seul octet.
Par exemple, si le registre de donnes contenait 10000000 (128 en dcimal) et que cette
instruction d'addition ramne comme contenu de cellule l'octet 10000011) (131 en dcimal), la
somme 100000011 (259) ne peut pas tenir sur le seul octet constituant le registre de donnes.
Dans les vrais processeurs, cette ventualit est bien entendu traite.

4.

L'instruction de soustraction : son code opratoire est 011, la seconde partie (=les 5
bits suivants) est une adresse. Son effet est prendre copie du contenu de la cellule dont
l'adresse est indique, de l'amener travers le bus de donnes vers l'UAL et de la
soustraire du contenu actuel de ce registre de donnes. Comme d'habitude, le contenu
de la cellule consulte reste inchang, et l'ancien contenu du registre de donne est
perdu.

5.

L'instruction de comparaison : son code opratoire est 100, la seconde partie (=les 5
bits suivants) est une adresse. Son effet est prendre copie du contenu de la cellule dont
l'adresse est indique, de l'amener travers le bus de donnes vers l'UAL et de la
comparer au contenu actuel du registre de donnes. Le rsultat de cette comparaison
va se retrouver dans le registre code condition de l'UAL

82

si le registre de donne de l'UAL est gal la donne amene de la mmoire par


cette instruction de comparaison, le code condition prend la valeur 00 (l'ancienne
valeur du code condition tant perdue)

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

si le registre de donne de l'UAL est strictement suprieur la donne amene de


la mmoire par cette instruction de comparaison, le code condition prend la valeur
10 (l'ancienne valeur du code condition tant perdue)
si le registre de donne de l'UAL est strictement infrieur la donne amene de
la mmoire par cette instruction de comparaison, le code condition prend la valeur
01 (l'ancienne valeur du code condition tant perdue)
Dans tous les cas, le registre de donne de l'UAL reste inchang la suite de cette
opration de comparaison.
6.

L'instruction de branchement conditionnel brancher si le code condition vaut 10; son


code opratoire est 101.
Avec ce premier exemple de branchement, on entre dans un autre type d'instruction. Il est
important d'en saisir l'utilit et la porte, d'autant que ce genre d'instruction est sans doute
plus malais saisir.

L'excution des diverses instructions prsentes jusqu'ici provoquait un accs la


mmoire centrale (pour y crire ou y lire une donne). Ce ne sera plus le cas des
instructions de branchement. Ces instructions vont ventuellement provoquer un
changement du compteur ordinal. Ainsi l'instruction de branchement conditionnel
brancher si le code condition vaut 10 aura l'effet suivant :

Si le code condition vaut 10, le compteur ordinal prend comme valeur l'adresse
qui accompagnait l'instruction de branchement conditionnel. Ainsi, si l'instruction
tait 10101100 (code condition 101 : branchement si code condition vaut 10,
adresse 01100) le compteur ordinal prendra cette valeur 01100, condition que le
code condition soit gal 10.
Si le code condition ne vaut pas 10, le compteur ordinal augmentera simplement
de 1, comme la fin de l'excution de n'importe quelle instruction.
En d'autres termes, si une instruction de comparaison prcdente avait fait passer le
code condition 10 (ce qui signifie que lors de cette comparaison le registre de
donnes tait strictement suprieur la donne ramene) le compteur ordinal sautera
la valeur crite aprs le code opratoire 101; sinon le compteur ordinal augmentera
simplement de 1.
Si la situation tait la suivante (code condition gal 10, compteur ordinal gal
00010) lorsque l'instruction de branchement a t ramene :
101
Reg

01100
d'instruct.

Registre de donnes

00010
Compteur ordinal

10
Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-14 : le branchement conditionnel (1)

l'excution va provoquer un saut du compteur ordinal qui passera 01100 :

CeFIS-FUNDP

Ch. Duchteau

83

... machine ...

101

01100

Reg

d'instruct.

Initiation l'informatique

Registre de donnes

01100

10

Compteur ordinal

Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-15 : le branchement conditionnel (2)

par contre, si on avait un code condition diffrent de 10


101
Reg

01100
d'instruct.

Registre de donnes

00010
Compteur ordinal

00
Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-16 : le branchement conditionnel (3)

on passera une situation ou le compteur ordinal augmente simplement de 1 (passant


de 00010 00011.
101

01100

Reg

d'instruct.

Registre de donnes

00011

10

Compteur ordinal

Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-17 : le branchement conditionnel (4)

7.

L'instruction de branchement conditionnel brancher si le code condition vaut 00; son


code opratoire est 110. Cette instruction aura l'effet suivant :

8.

Si le code condition vaut 00, le compteur ordinal prend comme valeur l'adresse
qui accompagnait l'instruction de branchement conditionnel. Ainsi, si l'instruction
tait 11001100 (code condition 110 : branchement si code condition vaut 00,
adresse 01100) le compteur ordinal prendra cette valeur 01100, condition que le
code condition soit gal 00.
Si le code condition ne vaut pas 00, le compteur ordinal augmentera simplement
de 1, comme la fin de l'excution de n'importe quelle instruction.
L'instruction de branchement pure et simple. Son code opratoire est 111. Elle a pour
effet de recopier dans le compteur ordinal les 5 bits accompagnant le code opratoire.
On aura compris que le rle des instructions de branchement est de rompre la squentialit
de l'excution des instructions constituant un programme. En effet, pour toutes les instructions
habituelles, le compteur ordinal augmente de 1 la fin de leur excution; comme le compteur
ordinal dsigne l'adresse de l'instruction qui sera ensuite excute, on constate que les
instructions seront excutes dans l'ordre o elles se succdent en mmoire centrale.

84

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Avec le branchement, le compteur ordinal, plutt que d'augmenter de 1 va pouvoir prendre


une valeur dfinie. L'instruction qui sera excute aprs ce branchement pourra donc tre
n'importe laquelle et pas obligatoirement celle qui suivait en mmoire centrale.

En rsum, le jeu des instructions disponibles pour ce modle simplifi d'unit centrale
est donc le suivant :
Code
Opratoire
000

Adresse Opration
commande
?????

Action produite

CHARGER

copier le contenu de la cellule dont l'adresse suit dans le


registre de donnes de lUAL (dont l'ancien contenu est perdu)
001
?????
SAUVER
crire le contenu du registre de donnes dans la cellule dont
l'adresse suit (l'ancien contenu tant alors perdu)
010
?????
ADDITIONNER additionner le contenu de la cellule dont l'adresse suit au
registre de donnes (dont l'ancien contenu est perdu)
011
?????
SOUSTRAIRE soustraire le contenu de la cellule dont l'adresse suit du registre
de donnes (dont l'ancien contenu est perdu)
100
?????
COMPARER
le contenu du registre de donne au contenu de la cellule dont
l'adresse suit et
*
placer 00 dans le code condition si le registre = le contenu
de la cellule
*
placer 10 dans le code condition si le registre > le contenu
de la cellule
*
placer 01 dans le code condition si le registre < le contenu
de la cellule
Cette comparaison ne modifie pas le registre de donnes.
101
?????
BRANCHER SI placer dans le compteur ordinal l'adresse mentionne si le code
>
condition vaut 10 (registre > cellule lors de la dernire
instruction de comparaison); sinon incrmenter de 1 ce
compteur (comme la fin d'une instruction normale)
110
?????
BRANCHER SI placer dans le compteur ordinal l'adresse mentionne si le code
=
condition vaut 00 (registre = cellule lors de la dernire
instruction de comparaison); sinon incrmenter de 1 ce
compteur (comme la fin d'une instruction normale)
111
?????
BRANCHER
sauter dans tous les cas l'instruction dont l'adresse suit
5.2.7.3 Un problme et sa traduction en langage machine (pour le modle simplifi)
On souhaite disposer d'un programme qui sur base du contenu des cellules d'adresses
10, 11 et 12, contenus que nous dsignerons par a, b et c, fasse placer dans la cellule d'adresse
13, la plus grande des deux quantits a+b ou c. Autrement dit, la fin de l'excution de ce
programme (qui reste crire), la cellule d'adresse 13 contiendra max(a+b, c), a, b et c
dsignant les contenus des cellules d'adresses 10, 11 et 12.
Les seules instructions notre disposition sont les 8 dcrites ci-dessus. Les oprations
commandes seront les suivantes :
1 amener a, contenu de la cellule 01010 (10), dans le registre de donnes de l'UAL
le registre de donnes contient a, le code condition est inconnu

2 additionner b, contenu de la cellule 01011 (11) au registre de donnes de l'UAL


le registre de donnes contient a+b, le code condition est inconnu

3 comparer le contenu du registre de donnes au contenu c de la cellule 01100 (12)


le registre de donnes contient toujours a+b,

CeFIS-FUNDP

Ch. Duchteau

85

... machine ...

Initiation l'informatique

si a+b (contenu du registre de donnes) est gal c (contenu de la cellule 12), le


code condition vaut 00
si a+b (contenu du registre de donnes) est strictement suprieur c (contenu de la
cellule 12), le code condition vaut 10
si a+b (contenu du registre de donnes) est strictement infrieur c (contenu de la
cellule 12), le code condition vaut 01
A ce stade, deux chemins peuvent tre suivis :
si a+b (contenu du registre de donnes) est strictement suprieur c (contenu de la
cellule 12), c'est dire si le code condition vaut 10, il suffit alors d'crire le contenu
a+b du registre de donnes dans la cellule 13; cette cellule 13 contiendra alors a+b
qui sera bien la plus grande des deux quantits a+b et c
dans les autres cas, (a+b est infrieur ou gal c), c'est c qui doit prendre place dans
la cellule 13; dans ce cas on ramnera donc c dans le registre de donnes puis on
rcrira ce registre de donnes dans la cellule 13
Il faut donc ici placer une instruction de branchement conditionnel qui fera sauter le compteur
ordinal l'adresse de la dernire instruction du programme lorsque le code condition vaut 10
(ce qui signifie que a+b>c). Si le code condition n'est pas 10 le compteur ordinal augmentera
de 1 et fera passer l'instruction suivante.

4 brancher l'instruction qui porte le numro 6 si le code condition vaut 10; sinon continuer
normalement
5 amener c, contenu de la cellule 12, dans le registre de donnes de l'UAL
le registre de donnes contient prsent c; on est dans le cas o a+b est infrieur ou
gal c

6 crire le contenu du registre de donnes de l'UAL dans la cellule 13


le registre de donnes contient a+b (si on avait effectu le branchement) ou c (si on
avait poursuivi normalement); on retrouve donc soit a+b, soit c dans la cellule 13.

Sous une forme plus schmatique, on peut crire :


amener a, contenu de la cellule 10, dans le registre de donnes

additionner b, contenu de la cellule 11, au registre de donnes

comparer c, contenu de la cellule 12, au registre de donnes

a+b>c
code condition vaut 10

a+b=c

code condition vaut 00

a+b<c
code condition vaut 01

brancher vers cette instruction si le code condition vaut 10 (a+b>c)


sinon poursuivre normalement

amener c, contenu de la cellule 12, dans le registre de donnes

crire le contenu du registre de donnes dans la cellule 13

Figure 5-18 : schma du programme de calcul de max(a+b,c)

Il reste crire explicitement les instructions correspondantes :


000 01010
86

(charger la cellule 01010 (10) dans le registre de donnes)

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

(additionner la cellule 01011 (11) au registre de donnes)


010 01011
(comparer le registre de donnes la cellule 01100 (12))
100 01100
(brancher la dernire instruction si le code condition vaut 10 (registre>cellule))
101 ?????
(charger la cellule 01100 (12) dans le registre de donnes)
000 01100
(sauver le registre de donnes dans la cellule 01101 (13))
001 01101
Comme on le voit, il est impossible de placer l'adresse pour le branchement tant qu'on
ne sait pas explicitement o les instructions du programme vont prendre place en mmoire. En
effet, c'est l'adresse explicite de la dernire instruction qui doit prendre la place des ?????

Si le programme est rang partir de la cellule d'adresse 00000, comme ci-dessous


Adresses

Contenus des cellules

00000
00001

(0)
(1)

00001010 charger la cellule 01010 (10) dans le registre


01001011 additionner la cellule 01011 (11) au registre

00010
00011

(2)
(3)

10001100 comparer le registre la cellule 01100 (12)


101????? brancher si code cond = 10 (registre>cellule)

00100
00101

(4)
(5)

00001100 charger la cellule 01100 (12) dans le registre


00101101 sauver le registre dans la cellule 01101 (13)

Figure 5-19 : rangement du programme en mmoire (1)

alors les ????? deviennent 00101 (5) puisque la dernire instruction (celle o il faut sauter) est
range dans la cellule d'adresse 00101.
Si le programme tait rang partir de la cellule d'adresse 00010 (2), comme cidessous
Adresses

Contenus des cellules

00000

(0)

00001
00010

(1)
(2)

00001010 charger la cellule 01010 (10) dans le registre

00011
00100

(3)
(4)

01001011 additionner la cellule 01011 (11) au registre


10001100 comparer le registre la cellule 01100 (12)

00101
00110

(5)
(6)

101????? brancher si code cond = 10 (registre>cellule)


00001100 charger la cellule 01100 (12) dans le registre

00111

(7)

00101101 sauver le registre dans la cellule 01101 (13)

Figure 5-20 : rangement du programme en mmoire (2)

alors les ????? deviendraient 00111 (7) puisque la dernire instruction (celle o il faut sauter)
est range dans la cellule d'adresse 00101.
Dans ce qui suit, on rangera le programme partir de la cellule 00000. Notons au
passage qu'il tait impratif que le rangement du programme en mmoire prserve la zone
constitue des cellules d'adresses 10, 11 et 12 qui contenaient les donnes a, b et c.

Il est videmment important de savoir comment un programme est rang en


mmoire. Qui dcide de l'endroit o le programme sera rang ? qui range les
instructions et les donnes en mmoire ?

Nous pouvons prsent suivre l'excution du programme rang en mmoire comme


indiqu ci-dessous. Il fera placer dans la cellule 13 le maximum des quantits a+b (cellules 10
et 11) et c (cellule 12).
Il est impratif de suivre pas pas l'excution du programme concern en comprenant que
cette excution suit un schma immuable et parfaitement automatique.

CeFIS-FUNDP

Ch. Duchteau

87

... machine ...

Initiation l'informatique

La seule difficult concerne l'instruction de branchement et l'effet qu'elle va avoir sur le


droulement du programme.

On a initialement :
Adresses

Bus d'adresses

Contenus des cellules

00000

(0)

00001010 charger la cellule 01010 (10) dans le registre

00001
00010

(1)
(2)

01001011 additionner la cellule 01011 (11) au registre


10001100 comparer le registre la cellule 01100 (12)

00011
00100

(3)
(4)

101????? brancher si code cond = 10 (registre>cellule)


00001100 charger la cellule 01100 (12) dans le registre

00101
00110

(5)
(6)

00101101 sauver le registre dans la cellule 01101 (13)

00111
01000

(7)
(8)

01001
01010

(9)
(10)

00001010 10

01011
01100

(11)
(12)

01001011 75
10001100 140

b
c

01101
01110

(13)
(14)

01111
10000

(15)
(16)

10001
10010

(17)
(18)

10011
10100

(19)
(20)

10101
10110

(21)
(22)

10111
11000

(23)
(24)

11001
11010

(25)
(26)

11011
11100

(27)
(28)

11101
11110

(29)
(30)

11111

(31)
Bus de donnes

Registre d'adresses

Reg Instruct

Registre de donnes

Compt. ordinal

Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-21 : programme de calcul de Max(a+b,c)

88

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

On notera au passage que les contenus des cellules 0 et 10 sont identiques, comme
celles de 1 et 11 ou 2 et 12. Nous y reviendrons.
Ce qui va provoquer le dmarrage de l'excution est le fait que le compteur ordinal,
prend la valeur 00000 suite l'excution de l'instruction qui prcdait.

CeFIS-FUNDP

Quelle pourrait tre cette instruction prcdemment excute ? Comment le


programme dont elle fait partie se trouve-t-il en mmoire ?

Ch. Duchteau

89

... machine ...

Initiation l'informatique

5.2.7.4 L'excution du programme de calcul de Max(A+B,C)


5.2.7.4.1 Premire phase du premier cycle : chargement de la premire instruction dans le
registre instruction.
1

le compteur ordinal, dans lequel l'adresse 00000 de la premire instruction du programme

avait t place est recopi dans le registre d'adresses


l'instruction 00001010 contenue dans la cellule 00000 est slectionne et

charge dans le registre d'instructions


Adresses

Contenus des cellules

00000

(0)

00001010 charger la cellule 01010 (10) dans le registre

00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111

(1)

01001011
10001100
10100101
00001100
00101101

(2)
(3)
(4)
(5)
(6)

comparer le registre la cellule 01100 (12)


brancher en (5) si code cond = 10 (registre>cellule)
charger la cellule 01100 (12) dans le registre
sauver le registre dans la cellule 01101 (13)

(7)
(8)
(9)
(10)

00001010 10
01001011 75
10001100 140

(11)
(12)
(13)
(14)
(15)

... ... ...

Bus d'adresses

additionner la cellule 01011 (11) au registre

... ... ... ... ...

10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

Bus de donnes

00000
Registre d'adresses
3

000

01010

Reg Instruct

Registre de donnes

00000
Compt. ordinal

Code condition

Figure 5-22 : premire phase du premier cycle

90

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.2.7.4.2 Deuxime phase du premier cycle :dcodage et excution de la premire instruction


4

l'adresse 01010 (10) mentionne par cette instruction CHARGER est place dans le registre
d'adresses

la cellule d'adresse 01010 est slectionne et son contenu 00001010 (10)

est amen dans le registre de donnes.

Le compteur ordinal est augment de 1


Adresses

Bus d'adresses

Contenus des cellules

00000
00001

(0)
(1)

00001010 charger la cellule 01010 (10) dans le registre


01001011 additionner la cellule 01011 (11) au registre

00010
00011

(2)
(3)

10001100 comparer le registre la cellule 01100 (12)


10100101 brancher en (5) si code cond = 10 (registre>cellule)

00100
00101

(4)
(5)

00001100 charger la cellule 01100 (12) dans le registre


00101101 sauver le registre dans la cellule 01101 (13)

00110
00111

(6)
(7)

01000
01001
01010

(8)
(9)
(10)

00001010 10

01011

(11)

01001011 75

01100

(12)

10001100 140

01101
01110

(13)
(14)

01111
... ... ...

(15)

10110
10111

(22)
(23)

11000
11001

(24)
(25)

11010
11011

(26)
(27)

11100
11101

(28)
(29)

11110
11111

(30)
(31)

... ... ... ... ...

01010

Bus de donnes

Registre d'adresses
4

000

01010

Reg Instruct
00000

00001010

Registre de donnes
7

Compt. ordinal

Code condition

Figure 5-23 : 2me phase du premier cycle

CeFIS-FUNDP

Ch. Duchteau

91

... machine ...

Initiation l'informatique

5.2.7.4.3 Premire phase du deuxime cycle : Chargement de la deuxime instruction dans le


registre instruction
8

le contenu du compteur ordinal, soit 00001, est transfr dans le registre d'adresses

l'instruction 01001011 contenue dans la cellule d'adresse 00001 (1) est slectionne et

10

charge dans le registre d'instruction


Adresses

Bus d'adresses

Contenus des cellules

00000

(0)

00001010 charger la cellule 01010 (10) dans le registre

00001

(1)

01001011 additionner la cellule 01011 (11) au registre

00010

(2)

10001100 comparer le registre la cellule 01100 (12)

00011
00100

(3)
(4)

10100101 brancher en (5) si code cond = 10 (registre>cellule)


00001100 charger la cellule 01100 (12) dans le registre

00101
00110

(5)
(6)

00101101 sauver le registre dans la cellule 01101 (13)

00111
01000

(7)
(8)

01001
01010

(9)
(10)

00001010 10

01011
01100

(11)
(12)

01001011 75
10001100 140

01101
01110

(13)
(14)

01111
... ... ...

(15)

10110
10111

(22)
(23)

11000
11001

(24)
(25)

11010
11011

(26)
(27)

11100
11101

(28)
(29)

11110
11111

(30)
(31)

... ... ... ... ...

00001

Bus de donnes

Registre d'adresses
10 010

01011

00001010

Reg Instruct
8

Registre de donnes

00001
Compt. ordinal

Code condition

Figure 5-24 : premire phase du deuxime cycle

92

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.2.7.4.4 Deuxime phase du deuxime cycle : dcodage et excution de la deuxime


instruction
11

l'adresse 01011 (11) mentionne par cette instruction ADDITIONNER est place dans le
registre d'adresses

12

la cellule d'adresse 01011 est slectionne et son contenu 01001011 (75)

13

est additionn au contenu du registre de donnes.

14

Le compteur ordinal est augment de 1.


Adresses Contenus des cellules
00000
(0)
00001010 charger la cellule 01010 (10) dans le registre
00001
(1)
01001011 additionner la cellule 01011 (11) au registre
00010
(2)
10001100 comparer le registre la cellule 01100 (12)
00011
(3)
10100101 brancher en (5) si code cond = 10 (registre>cellule)
00100
(4)
00001100 charger la cellule 01100 (12) dans le registre
00101
(5)
00101101 sauver le registre dans la cellule 01101 (13)
00110
(6)
00111
(7)
01000
(8)
01001
(9)
01010 (10)
00001010 10
01011 (11)
01001011 75

12

Bus d'adresses

01100
01101
01110
01111
... ... ...
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

10001100 140

(12)
(13)
(14)
(15)

... ... ... ... ...


(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

01011

Bus de donnes

Registre d'adresses
11

010 01011

13

Reg Instruct

Registre de donnes

00010
Compt. ordinal

01010101

14

Code condition

Figure 5-25 : deuxime phase du deuxime cycle

CeFIS-FUNDP

Ch. Duchteau

93

... machine ...

Initiation l'informatique

5.2.7.4.5 Premire phase du troisime cycle : chargement de la troisime instruction dans le


registre instruction
15

le compteur ordinal voit son contenu 00010 transfr dans le registre d'adresses

16

l'instruction 10001100 contenue dans la cellule d'adresse 00010 (2) est slectionne et

17

charge dans le registre d'instruction


Adresses Contenus des cellules
00000
(0)
00001010 charger la cellule 01010 (10) dans le registre
00001
(1)
01001011 additionner la cellule 01011 (11) au registre
00010
(2)
10001100 comparer le registre la cellule 01100 (12)

16

00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
... ...
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

Bus d'adresses

00001010 10
01001011 75
10001100 140

... ... ... ...


(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

00010
Registre d'adresses

Bus de donnes

17

15

10100101 brancher en (5) si code cond = 10 (registre>cellule)


00001100 charger la cellule 01100 (12) dans le registre
00101101 sauver le registre dans la cellule 01101 (13)

(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)

100 01100
Reg Instruct

01010101
Registre de donnes

00010
Compt. ordinal

Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-26 : premire phase du troisime cycle

94

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.2.7.4.6 Deuxime phase du troisime cycle : dcodage et excution de la deuxime


instruction
18

l'adresse 01100 (12) mentionne par cette instruction COMPARER est place dans le
registre d'adresses

19
20

la cellule d'adresse 01100 est slectionne et son contenu 10001100 (140)


est compar au contenu du registre de donnes : comme le contenu 01010101 (85) du
registre est infrieur au contenu de la cellule (140), le code condition passe 01 (de toute
manire, le contenu du registre de donnes reste inchang)

21

Le compteur ordinal est augment de 1.


Adresses
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100

19

Bus d'adresses

01101
01110
01111
... ... ...
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

Contenus des cellules


(0)
00001010 charger la cellule 01010 (10) dans le registre
(1)
01001011 additionner la cellule 01011 (11) au registre
(2)
10001100 comparer le registre la cellule 01100 (12)
(3)
10100101 brancher en (5) si code cond = 10 (registre>cellule)
(4)
00001100 charger la cellule 01100 (12) dans le registre
(5)
00101101 sauver le registre dans la cellule 01101 (13)
(6)
(7)
(8)
(9)
(10)
00001010 10
(11)
01001011 75
(12)
10001100 140
(13)
(14)
(15)
... ... ... ... ...
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

01100
Registre d'adresses
18

Bus de donnes

100 01100

20

Reg Instruct

01010101

Registre de donnes

00011

01

Compt. ordinal

Code condition

21

Figure 5-27 : deuxime phase du troisime cycle

CeFIS-FUNDP

Ch. Duchteau

95

... machine ...

Initiation l'informatique

5.2.7.4.7 Premire phase du quatrime cycle : chargement de la quatrime instruction dans le


registre instruction
22

le compteur ordinal voit son contenu 00011 transfr dans le registre d'adresses

23

l'instruction 10100101 contenue dans la cellule d'adresse 00011 (3) est slectionne et

24

charge dans le registre d'instruction


Adresses Contenus des cellules
00000
(0)
00001010 charger la cellule 01010 (10) dans le registre
00001
(1)
01001011 additionner la cellule 01011 (11) au registre
00010
(2)
10001100 comparer le registre la cellule 01100 (12)
00011
(3)
10100101 brancher en (5) si code cond = 10 (registre>cellule)

23

00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
... ... ...
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

Bus d'adresses

00001100 charger la cellule 01100 (12) dans le registre


00101101 sauver le registre dans la cellule 01101 (13)

(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)

00001010 10
01001011 75
10001100 140

... ... ... ... ...


(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

00011
Registre d'adresses

Bus de donnes

24

101 00101

01010101

Reg Instruct

Registre de donnes

22

00011

01

Compt. ordinal

Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-28 : premire phase du quatrime cycle

96

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.2.7.4.8 Deuxime phase du quatrime cycle : dcodage et excution de la quatrime


instruction
25

cette instruction demande de sauter l'instruction d'adresse 00101 (5) si le code condition
vaut 10 et cela en plaant cette adresse 00101 dans le compteur ordinal; dans le cas
contraire le compteur ordinal est simplement augment de 1. Comme ici, le code condition
vaut 01, c'est cette dernire ventualit qui est choisie : le compteur ordinal s'incrmente de
1 et passe 00100 (4). Il n'y a donc pas au cours de l'excution de cette instruction de
branchement de nouvel accs la mmoire.
Adresses
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
... ... ...
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

00011
Registre d'adresses

Contenus des cellules


(0)
00001010 charger la cellule 01010 (10) dans le registre
(1)
01001011 additionner la cellule 01011 (11) au registre
(2)
10001100 comparer le registre la cellule 01100 (12)
(3)
10100101 brancher en (5) si code cond = 10 (registre>cellule)
(4)
00001100 charger la cellule 01100 (12) dans le registre
(5)
00101101 sauver le registre dans la cellule 01101 (13)
(6)
(7)
(8)
(9)
(10)
00001010 10
(11)
01001011 75
(12)
10001100 140
(13)
(14)
(15)
... ... ... ... ...
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
Bus de donnes

100 01100
Reg Instruct

01010101
Registre de donnes

00100

01

Compt. ordinal

Code condition

25

Figure 5-29 : deuxime phase du quatrime cycle

CeFIS-FUNDP

Ch. Duchteau

97

... machine ...

Initiation l'informatique

5.2.7.4.9 Premire phase du cinquime cycle : chargement de la cinquime instruction dans


le registre instruction
26

le contenu du compteur ordinal, soit 00100, est transfr dans le registre d'adresses

27

l'instruction 00001100 contenue dans la cellule d'adresse 00100 (4) est slectionne et

28

charge dans le registre d'instruction


Adresses Contenus des cellules
00000
(0)
00001010 charger la cellule 01010 (10) dans le registre
00001
(1)
01001011 additionner la cellule 01011 (11) au registre
00010
(2)
10001100 comparer le registre la cellule 01100 (12)
00011
(3)
10100101 brancher en (5) si code cond = 10 (registre>cellule)
00100
(4)
00001100 charger la cellule 01100 (12) dans le registre

27

00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
... ... ...
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

Bus d'adresses

00101101 sauver le registre dans la cellule 01101 (13)

(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)

00001010 10
01001011 75
10001100 140

... ... ... ... ...


(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

00100

Bus de donnes

Registre d'adresses
28

26

000 01100

01010101

Reg Instruct

Registre de donnes

00100

01

Compt. ordinal

Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-30 : premire phase du cinquime cycle

98

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.2.7.4.10 Deuxime phase du cinquime cycle : dcodage et excution de la cinquime


instruction
29

l'adresse 01100 (12) mentionne par cette instruction CHARGER est place dans le registre
d'adresses

30

la cellule d'adresse 01100 (12) est slectionne et son contenu 10001100 (140)

31

est charg dans le registre de donnes.

32

Le compteur ordinal est augment de 1.


Adresses
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100

30

Bus d'adresses

01101
01110
01111
... ... ...
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

Contenus des cellules


(0)
00001010 charger la cellule 01010 (10) dans le registre
(1)
01001011 additionner la cellule 01011 (11) au registre
(2)
10001100 comparer le registre la cellule 01100 (12)
(3)
10100101 brancher en (5) si code cond = 10 (registre>cellule)
(4)
00001100 charger la cellule 01100 (12) dans le registre
(5)
00101101 sauver le registre dans la cellule 01101 (13)
(6)
(7)
(8)
(9)
(10)
00001010 10
(11)
01001011 75
(12)
10001100 140
(13)
(14)
(15)
... ... ... ... ...
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

01100
Registre d'adresses
29

Bus de donnes

000 01100

31

Reg Instruct

10001100

Registre de donnes

00101
Compt. ordinal

01
Code condition

32

Figure 5-31 : deuxime phase du cinquime cycle

CeFIS-FUNDP

Ch. Duchteau

99

... machine ...

Initiation l'informatique

5.2.7.4.11 Premire phase du sixime cycle : chargement de la sixime instruction dans le


registre instruction
33

le contenu du compteur ordinal, soit 00101, est transfr dans le registre d'adresses

34

l'instruction 00101101 contenue dans la cellule d'adresse 00101 (5) est slectionne et

35

charge dans le registre d'instruction


Adresses Contenus des cellules
00000
(0)
00001010 charger la cellule 01010 (10) dans le registre
00001
(1)
01001011 additionner la cellule 01011 (11) au registre
00010
(2)
10001100 comparer le registre la cellule 01100 (12)
00011
(3)
10100101 brancher en (5) si code cond = 10 (registre>cellule)
00100
(4)
00001100 charger la cellule 01100 (12) dans le registre
00101
(5)
00101101 sauver le registre dans la cellule 01101 (13)

34

00110
00111
01000
01001
01010
01011
01100
01101
01110
... ... ...
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

Bus d'adresses

(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)

00001010 10
01001011 75
10001100 140

... ... ... ... ...


(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

00101

Bus de donnes

Registre d'adresses
35

33

001 01101

10001100

Reg Instruct

Registre de donnes

00101

01

Compt. ordinal

Code condition

Unit de contrle

Unit arithmtique et logique

Figure 5-32 : premire phase du sixime cycle

100

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.2.7.4.12 Deuxime phase du sixime cycle : dcodage et excution de la sixime


instruction
36

l'adresse 01101 (13) mentionne par cette instruction SAUVER est place dans le registre
d'adresses

37

la cellule d'adresse 01101 (13) est slectionne et

38

le contenu 10001100 (140) du registre de donnes est crit dans cette cellule

39

Le compteur ordinal est augment de 1 et passe 00110 (6).


Adresses
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101

37

Bus d'adresses

01110
01111
... ... ...
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111

Contenus des cellules


(0)
00001010 charger la cellule 01010 (10) dans le registre
(1)
01001011 additionner la cellule 01011 (11) au registre
(2)
10001100 comparer le registre la cellule 01100 (12)
(3)
10100101 brancher en (5) si code cond = 10 (registre>cellule)
(4)
00001100 charger la cellule 01100 (12) dans le registre
(5)
00101101 sauver le registre dans la cellule 01101 (13)
(6)
(7)
(8)
(9)
(10)
00001010 10
(11)
01001011 75
(12)
10001100 140
(13)
10001100 140
(14)
(15)
... ... ... ... ...
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)

01100
Registre d'adresses
36

Bus de donnes

001 01101

38

Reg Instruct

10001100

Registre de donnes

00110

01

Compt. ordinal

Code condition

39

Figure 5-33 : deuxime phase du sixime cycle

CeFIS-FUNDP

Ch. Duchteau

101

... machine ...

Initiation l'informatique

5.2.7.5 En guise de rsum


Chaque tape de l'excution d'un programme correspond au chargement et
l'excution d'une instruction :
1re phase :

2me phase

le compteur ordinal vient de changer ( la fin de l'excution de l'instruction


prcdente)
le contenu du compteur ordinal est recopi dans le registre d'adresse
on accde en lecture la cellule qui porte cette adresse
le contenu de cette cellule, toujours considr cette phase comme une
instruction, est amen dans le registre d'instruction de l'unit de commande du
processeur
l'instruction va tre dcode et excute; cette excution est diffrente selon
qu'il s'agit des instructions "normales" ou des instructions de branchement

Dans le cas d'une instruction normale (CHARGER, SAUVER, ADDITIONNER,


COMPARER,...)

le code opratoire de l'instruction est dcod et le processeur se prpare excuter


l'opration correspondante
l'adresse constituant la seconde partie de l'instruction est recopie dans le registre
d'adresse
on accde la mmoire en lecture (pour les instructions CHARGER,
ADDITIONNER,...) ou en criture (pour l'instruction SAUVER) la cellule dont
l'adresse est indique
s'il s'agit d'une lecture, le contenu de la cellule est amen vers l'unit arithmtique et
logique du processeur (et l'opration demande est effectue); s'il s'agit d'une
criture, le contenu du registre de donnes du processeur est transfr dans la
cellule mmoire
le compteur ordinal s'augmente de 1
Dans le cas d'une instruction de branchement (BRANCHER, BRANCHER SI >,
BRANCHER SI =)
dans le cas d'un branchement non conditionnel, l'adresse constituant la seconde
partie de l'instruction en cours d'excution est recopie dans le compteur ordinal
(qui prend cette valeur au lieu de s'augmenter de 1);
s'il s'agit d'un branchement conditionnel, le code condition est consult, si la
condition est vrifie l'adresse constituant la seconde partie de l'instruction en cours
d'excution est recopie dans le compteur ordinal (qui prend cette valeur au lieu de
s'augmenter de 1), sinon le compteur ordinal augmente simplement de 1
Donc dans le cas d'un branchement, il n'y a pas, dans cette seconde phase d'accs la
mmoire; tout se passe l'intrieur du processeur l'objectif tant soit de faire
augmenter de 1 le compteur ordinal, soit de lui appliquer un changement brutal.
Il faut noter que lorsque quelque chose est amen dans un registre du processeur ou dans une
cellule mmoire, ce qui s'y trouvait auparavant disparat.
Par contre lorsqu'une cellule ou un registre est consult pour accder (en lecture) ce qui s'y
trouve, le contenu n'est pas modifi. C'est seulement une copie qui est prise.

102

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.2.7.6 Quelques remarques


5.2.7.6.1 Instructions ou donnes
On l'a vu, rien ne permet de distinguer formellement une instruction d'une donne :
c'est seulement le moment o l'on y accde qui fait considrer le contenu d'une cellule comme
une instruction (1re phase) ou comme une donne (2me phase).
Ainsi, dans l'exemple trait ci-dessus, l'instruction CHARGER (00001010) contenue
dans la cellule d'adresse 0 est identique la donne 10 (00001010) contenue dans la cellule
d'adresse 10. Il en va de mme pour l'instruction de la cellule d'adresse 1 et la donne
contenue dans la cellule d'adresse 11 ou encore de l'instruction de la cellule 2 et de la donne
de la cellule 12.
Ainsi donc, face au contenu d'une cellule mmoire, il est impossible de dcider s'il
s'agit d'une instruction ou d'une donne; et lorsque le contexte permet de dterminer qu'il
s'agit d'une donne, il est impossible de distinguer si le nombre binaire considr fait partie du
code d'un caractre, d'un entier, d'un rel, d'un pixel, d'un chantillonnage de son, etc..
Remarquons encore, tant donn ces remarques, qu'il est tout fait possible qu'un
programme modifie les instructions le constituant pendant le cours de son excution.
5.2.7.6.2 Sans branchement, pas de programme
Si les diverses instructions de branchement n'existaient pas, l'excution des
programmes serait purement squentielle : la fin de l'excution de chaque instruction, le
compteur ordinal augmente de 1 ce qui fait qu'on passe l'excution de l'instruction range
dans la cellule suivante, et ainsi de suite.
Les instructions de branchement vont permettre de briser cette squentialit de
l'excution en faisant en sorte que l'instruction excute dans la suite soit non pas celle qui
suit, mais n'importe quelle autre (celle vers laquelle on "branche", en plaant son adresse dans
le compteur ordinal).
Ce sont donc les branchements qui vont permettre de traduire en langage machine les
rptitions d'un groupe d'instructions ( la fin on branche au dbut) ou encore, comme dans
l'exemple trait, le fait de choisir un cheminement ou un autre dans les instructions
constituant le programme.

Que pensez-vous du petit programme suivant, crit dans le langage du modle


simplifi d'unit centrale dcrit plus haut :
Adresses
00000 (0)
00001 (1)

Contenus des cellules


00000000
11100000

en imaginant qu' un moment donn, le compteur ordinal devient gal 0 ?


5.2.7.7 Exercices
1. Pourriez vous crire pour l'unit centrale simplifie utilise dans l'exemple prcdent
un programme qui trie les donnes dsignes par a et b, contenues dans les cellules
d'adresse 00001 (1) et 00010 (2). Autrement dit, l'issue de l'excution de ce
programme la cellule 1 contiendra la plus petite des quantits a et b et la cellule 2 la
plus grande.

CeFIS-FUNDP

Ch. Duchteau

103

... machine ...

2.

Initiation l'informatique

Pourriez-vous crire le programme qui ajoute 3 au contenu de la cellule d'adresse


00001.

Il est impratif de se rendre compte que le modle simplifi prsent ici, s'il
nous a permis d'exposer et d'illustrer les principes qui sont la base du
fonctionnement de pratiquement tous les ordinateurs, est infiniment plus
simple que les units centrales relles. Quelques remarques vont permettre
d'largir le propos.

5.2.8 Architecture et fonctionnement d'une unit centrale, en gnral


5.2.8.1 Le modle d'ordinateur de Von Neumann : calculateur universel programme
enregistr
L'organisation dcrite ci-dessus et les principes de fonctionnement mis en vidence
travers l'exemple sont caractristiques de tout ordinateur conforme au modle dvelopp par
John von Neumann dans un article3 publi le 30 juin 1945 et qui fut la naissance (du moins
sur le plan thorique) des ordinateurs modernes.
Les concepts essentiels en sont les suivants :

L'unit centrale est constitue d'une mmoire centrale et d'un processeur : entre ces
deux entits, instructions et donnes vont pouvoir tre changes.

Les instructions constituant les programmes qui vont faire agir le processeur sont
enregistres en mmoire centrale au mme titre que les donnes; rien ne permet donc
de distinguer une instruction (code en binaire) d'une donne (code en binaire). Ces
instructions peuvent elles-mmes tre modifies pendant l'excution du programme
qu'elles constituent.

A tout moment c'est la valeur d'un registre particulier du processeur, le compteur


ordinal (en anglais P-Counter), qui donne la fin de l'excution de chaque instruction
par le processeur, l'adresse en mmoire de l'instruction qui sera excute ensuite.
Habituellement, ce compteur ordinal augmente de 1 la fin de l'excution de chaque
instruction; il peut aussi faire un saut en prenant une valeur particulire indique par
une instruction de branchement.

Outre les changes avec la mmoire centrale, le processeur effectue essentiellement


des calculs et des comparaisons sur les donnes prsentes dans ses registres de
donnes. Le processeur est un calculateur, mais universel, puisque la succession des
oprations qu'il va excuter et le choix des donnes pour ces oprations ne sont pas
fixs une fois pour toute mais sont prciss dans un programme.

Une seule instruction la fois est amene de la mmoire centrale et excute par
l'unique processeur.
Ces principes de fonctionnement restent ceux de la plupart des ordinateurs modernes.

104

Il y a d'autres types d'ordinateurs comme ceux o tout un ensemble de processeurs


(parfois des milliers) travaillent en parallle sur des donnes et sur base
d'instructions provenant de la mme mmoire centrale (avec tous les problmes de
synchronisation qu'on peut imaginer).
Il existe aussi des ordinateurs neuronaux dont le fonctionnement singe en quelque
sorte ce que nous savons du cerveau humain. Ces ordinateurs sont constitue de

"First draft of a report on the EDVAC"


Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

"neurone" lectroniques connects entre eux, des signaux lectriques pouvant


transiter le long de ces connexions.

5.2.8.2 Le langage machine


La structure et la nature des instructions de l'exemple simplifi taient particulirement
lmentaires. Les vraies instructions des vrais processeurs sont videmment plus complexes,
mais l'exemple permet cependant de tirer quelques conclusions gnrales :

Chaque processeur est caractris par les actions dont il est capable et par le jeu
d'instructions qui vont commander ces actions. Ces instructions, qui sont toujours des
configurations binaires, constituent le langage du processeur, ce qu'on appelle parfois
le langage machine.
Le concept de langage machine, au singulier, est inadquat : il y a autant de langages
machines que de types de processeurs diffrents.
Bien videmment, l'volution dans le temps de ces processeurs fait qu'on peut en quelque
sorte y tracer une gnalogie et les successeurs d'un processeur donn continuent le plus
souvent "comprendre" le langage du processeur auquel ils succdent, l'inverse n'tant pas
ncessairement vrai.

Le nombre de ces instructions varie donc d'un processeur l'autre : de quelques


dizaines plus de cent (sinon des centaines).

La teneur, la porte et la complexit de ces instructions sont galement trs variables.


On peut cependant dire que gnralement, la plupart des instructions comportent un
code opratoire (indiquant au processeur l'action effectuer) suivi d'une ou plusieurs
adresses (prcisant o les donnes doivent tre lues en mmoire et/ou o les rsultats
de l'opration effectue doivent tre crits en mmoire).

Diverses instructions de branchements conditionnel ou non conditionnel sont videmment


disponibles.
5.2.8.3 Quelques questions
Plusieurs questions restent traiter. Motives par l'exemple prsent, elles sont
cependant d'une porte trs gnrale.

Comment le programme excuter se trouve-t-il plac dans la mmoire l'endroit o


on le trouve ?
Ainsi dans le cas de l'exemple propos page 88 le programme cr se trouve en mmoire
partir de la cellule d'adresse 0 et s'tend jusqu' la cellule d'adresse 5. Comment le
programme se trouve-t-il log l ? D'o venait-il ?

Comment les donnes traiter se trouvent-elles places en mmoire o on peut les


trouver ?
Dans le mme exemple, les donnes traiter sont places dans les cellules d'adresse 10, 11
et 12. Qui les dispose dans ces cellules ? D'o viennent les donnes qui y seront dposes ?

Comment le compteur ordinal prend-il comme valeur l'adresse de la premire


instruction du programme excuter, ce qui va lancer l'excution de ce dernier ? Que
se passe-t-il la fin de l'excution du programme considr ?

La rponse ces questions est en grande partie commune : c'est un autre programme
qui se charge d'aller chercher le programme excuter (par exemple sur une mmoire de
masse : disquette, disque dur,...) et les donnes et les place des endroits convenables de la
mmoire. Ce programme se termine par un branchement l'adresse de la premire instruction
du programme qui vient d'tre install. A la fin de l'excution du programme considr, c'est
CeFIS-FUNDP

Ch. Duchteau

105

... machine ...

Initiation l'informatique

le plus souvent un nouveau branchement qui va "passer la main" un autre programme, et


ainsi de suite.
Mais cette rponse est insatisfaisante, puisqu'on peut reposer les 3 mmes questions
propos de ce programme qui se charge de l'installation. On peut rpondre que ce dernier est
lui aussi install (par un autre programme). De proche en proche, on va remonter jusqu'
l'instant 0, celui de la mise en marche. Ce qui se passe lors de cette mise en marche, c'est
simplement le fait que le compteur ordinal prend automatiquement une valeur qui est
simplement celle d'un tout premier programme enferm en ROM et qui va se charger d'aller
prendre un autre programme sur mmoire de masse, l'installer en mmoire centrale et passer
la main ce programme, qui lui mme en installera d'autres, etc.

Ainsi, la mise en marche d'un ordinateur de type PC, le compteur ordinal prend la
valeur 1048560, ce qui provoque l'excution d'un programme log en mmoire morte
partir de l'adresse 1048560. Ds lors une srie de programmes situs en ROM sont
excuts les uns "passant la main" (par un branchement) aux autres, en un
enchanement purement dterministe. Bien videmment, au bout d'un temps, ce sont
les interventions venues de l'extrieur sous forme de donnes (au dpart du clavier
ou de la souris, par exemple) qui vont faire voluer le flot des programmes qui seront
chargs en mmoire et excuts. (0ctobre 1998)

Il est donc important d'avoir cette vision dynamique de ce qui se passe dans l'unit
centrale : plusieurs programmes cohabitent en mmoire centrale, s'excutent certains
moments et passent ensuite la main d'autres.
Ce qu'on peut en tout cas dire c'est qu' aucun moment le processeur n'est "arrt";
constamment des instructions sont ramenes, excutes et, le compteur ordinal se modifiant,
font place d'autres, et cela sans arrt.

5.2.9 Les paramtres d'valuation d'une unit centrale


On sait que les performances du matriel voluent sans cesse (mme si le principe de
fonctionnement reste celui dcrit dans les annes 40 par von Neumann). Il est essentiel de
disposer d'une grille d'analyse de ces volutions et pour cela de connatre les principaux
paramtres permettant de dcrire et d'valuer une unit centrale.
5.2.9.1 La taille de la mmoire adressable : taille du registre d'adresses
On sait que pour accder une cellule de la mmoire, que ce soit en lecture ou en
criture, le processeur place dans le registre d'adresses l'adresse de la cellule atteindre. La
taille du registre d'adresse est donc un paramtre fondamental puisqu'elle dtermine le nombre
des adresses possibles des cellules de la mmoire.
Ainsi dans l'exemple d'unit centrale prsent plus haut, la taille du registre d'adresses
tait de 5 bits, ce qui permet de noter (en binaire) des adresses allant de 00000 (0) 11111
(31). Il serait donc parfaitement inutile dans ce cas d'avoir une mmoire centrale qui
comporterait plus de 32 cellules, puisque au del de la 32me le processeur ne pourrait
indiquer dans le registre d'adresses les adresses correspondantes.
C'est un peu comme si on imposait que les numros des maisons d'une rue ne comportent
qu'au plus 2 chiffres (dcimaux). En admettant qu'une des maisons puisse avoir le chiffre 0,
on pourrait adresser du courrier aux 100 maisons portant les numros de 0 99. Si des
maisons supplmentaires sont bties dans cette rue, jamais on ne pourra leur affecter un
numro (sur deux chiffres) et jamais elles ne pourront recevoir du courrier.

106

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

On peut aisment calculer que si le registre d'adresses possde une taille de n bits, 2n
cellules pourront tre adressables. Si chaque cellule adressable a une taille d'un octet, on aura
alors 2n octets de mmoire adressable.

Dans le monde de la micro-informatique, la taille du registre d'adresses (et du bus


d'adresses qui lui est associ) ont volu au cours du temps. Les premiers microordinateurs rellement commercialiss possdaient un registre d'adresses sur 16 bits
(processeurs 8080) ce qui permettait d'adresser 216 cellules d'un octet soit 65536
octets ou 64 Ko. Vinrent ensuite des units centrales avec des registres d'adresses de
20 bits (processeurs 8086 ou 8088) permettant d'accder une mmoire de 220 octets
ou 1048576 octets, soit 1 Mo.
Actuellement la taille des registres et bus d'adresses est de 32 octets permettant
thoriquement d'adresser une mmoire de 232 octets soit 4294967296 octets ou 4 Go.
(Voir aussi page 77) (Novembre 2000)

5.2.9.2 La taille de la mmoire effectivement disponible


Mme si les processeur actuels permettent en thorie d'adresser 4 Go de mmoire, la
mmoire effectivement disponible est beaucoup moindre. De plus, quand on parle de mmoire
disponible, il s'agit essentiellement de la mmoire vive (RAM), la seule o les programmes et
les donnes venant de l'extrieur peuvent venir prendre place.

Dans le pass, la mmoire effectivement disponible tait gnralement identique la


mmoire adressable (64 Ko, 1 Mo). Aujourd'hui la mmoire quipant effectivement
11/2001 la plupart des systmes est comprise entre quelques dizaines de Mo (16 Mo au
minimum) et quelques centaines de Mo (256 Mo). A l'heure o j'cris ces lignes, la
taille habituelle est en moyenne de 64 ou 128 Mo. (Novembre 2001)
Rappelons, tant donn ce qui a t dit page 75, que 1 Mo est l'quivalent d'environ
un million de caractres soit 500 pages de texte bien remplies. Dire qu'un ordinateur
dispose d'une mmoire de 128 Mo, c'est dire que si l'on remplissait compltement
cette mmoire avec du texte (ce qui ne pourra jamais tre le cas pour la mmoire
centrale qui doit aussi contenir des programmes), on pourrait y placer l'quivalent de
64000 pages de texte.

5.2.9.3 Le temps d'accs la mmoire


C'est le dlai entre le moment o le processeur demande un accs telle cellule de la
mmoire, par exemple pour y lire l'information, et le moment o le contenu de cette cellule est
disponible. Ce temps d'accs la mmoire centrale se mesure en nano-secondes
(milliardimes de seconde).

C'est sans doute le moment de rappeler les prfixes, tant multiplicatifs que de
division :
kilo
x 1.000
mili
/1.000
mega
x 1.000.000
micro
/1.000.000
giga
x 1.000.000.000
nano
/1.000.000.000
tera x 1.000.000.000.000
pico /1.000.000.000.000

Pour donner un ordre d'ide de ce qu'est une nano-seconde, disons que la lumire qui
se propage pourtant 300.000 km/s, parcourt seulement 30 centimtres pendant une nanoseconde.

CeFIS-FUNDP

Ch. Duchteau

107

... machine ...

Initiation l'informatique

Les mmoires les plus rapides actuellement (SRam) ont des temps d'accs de
quelques nano-secondes (une petite dizaine de ns). Les mmoire plus lentes (DRam)
ont des temps d'accs de quelques dizaines de ns. Il y a environ un facteur 10 entre
les temps d'accs mmoires les plus lentes et les plus rapides.

5.2.9.4 La prsence de mmoire-cache et sa taille


La plupart des systmes rcents intgrent deux sinon trois catgories de mmoire
centrale eu gard leur rapidit. A ct de la plus grosse partie de la mmoire, relativement
lente, on trouve en gnral une zone de mmoire nettement plus rapide, qu'on appelle la
mmoire cache.
On s'arrange ds lors pour que :

Autant que possible, le programme actuellement actif rside en tout ou en partie dans
cette zone de mmoire-cache laquelle le processeur accde beaucoup plus
rapidement qu'au reste de la mmoire; il en est de mme pour les donnes actuellement
traites.

Lorsque le processeur a besoin d'instructions ou de donnes qui ne sont pas prsentes


dans le cache, il y a change entre le cache et la mmoire habituelle pour amener les
instructions et donnes ncessaires dans le cache et cela, bien entendu, sans que cet
change se fasse par l'intermdiaire du processeur.
PROCESSEUR
&
'
MEMOIRE CACHE

MEMOIRE
CENTRALE
CLASSIQUE
Figure 5-34 : rle de la mmoire cache

Pourquoi les changes entre la mmoire classique et la mmoire cache se


font-ils sans que les informations (instructions ou donnes) changes ne
transitent par le processeur ?

5.2.9.5 La taille d'une cellule mmoire


Elle est en gnral d'un octet. Elle peut cependant tre plus grande sur certains
systmes.
5.2.9.6 La taille du bus de donnes
C'est elle qui conditionne la quantit d'octets changs en une fois entre la mmoire et
le processeur, que ces octets reprsentent des donnes ou des instructions.
C'est cette caractristique (la "largeur" du bus de donnes) qui a servi caractriser et
nommer les processeurs. Ainsi, au fil de l'volution des systmes informatiques, on a eu des
processeurs 8 bits (un octet seulement est chang lors des transferts entre mmoire et
processeur), des processeurs 16 bits (2 octets la fois chaque change), des processeurs 32

108

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

bits et on en est aujourd'hui des processeurs 64 bits (8 octets sont changs d'un coup entre
la mmoire centrale et le processeur).

Ainsi, en ce qui concerne la famille des processeurs Intel, on a eu successivement


(sans parler du 4004) le processeur 8088 (processeur 8 bits), le 80286 (processeur 16
11/2001 bits), le 80386 et le 80486 (processeurs 32 bits) et le Pentium (processeur 64 bits).
(Voir aussi page 79)

Un petit exemple fera comprendre le progrs apport par le passage d'un processeur
8 bits un processeur 16 bits. Nous savons que les entiers sont souvent cods sur 2
octets en mmoire (Voir page 71). Imaginons donc que nous avons deux entiers A et
B dont nous souhaitons obtenir simplement la somme. Le premier entier A est cod
sur deux octets et le second B galement. Avec un langage machine du type de celui
dvelopp dans l'exemple trait ci-dessus et avec un processeur 16 bits, il suffit de
trois "voyages" entre la mmoire et le processeur pour obtenir la somme. En effet,
on va amener (dans un registre de donnes du processeur) en une fois les deux
octets dans lesquels A est crit (premier transfert),
on va galement amener en une fois les deux octets codant B pour les additionner
ceux dj prsents dans le registre de donnes (deuxime transfert);
enfin le rsultat (cod sur deux octets) sera en une fois transfr vers les deux
cellules de la mmoire qui contiendront le codage de la somme (troisime
transfert).
Par contre, avec un processeur 8 bits, il faudra en tout 6 transferts :
on va amener (dans un registre de donnes du processeur) l'octet codant la partie
droite du nombre A; comme on ne peut transfrer qu'un octet la fois, c'est la
seule possibilit;
on va amener l'octet codant la partie droite du nombre B en l'additionnant la
partie droite de A dj prsente dans le processeur;
on va transfrer l'octet constituant la somme des deux parties droites ainsi
obtenue dans une cellule de la mmoire : celle-ci contiendra la partie droite du
rsultat; (on garde dans le processeur le report ventuel obtenu suite l'addition);
on va amener (dans un registre de donnes du processeur) l'octet codant la partie
gauche du nombre A; comme on ne peut transfrer qu'un octet la fois, c'est la
seule possibilit;
on va amener l'octet codant la partie gauche du nombre B en l'additionnant la
partie gauche de A dj prsente dans le processeur (et au report ventuel obtenu
suite l'addition des parties droites);
on va transfrer l'octet constituant la somme des deux parties gauches ainsi
obtenue dans une cellule de la mmoire : celle-ci contiendra la partie gauche du
rsultat.
Pour effectuer le mme traitement d'addition de deux entiers, il aura bien fallu 6
transferts avec un processeur 8 bits et seulement 3 avec un processeur 16 bits !

5.2.9.7 Le nombre et la taille des registres de donnes du processeur


Il s'agit l d'un paramtre trs technique et sur lequel je n'insisterai gure. L'exemple
d'unit centrale prsent incluait un processeur ne prsentant que deux registres internes, le
registre de donnes proprement dit et le registre code-condition. On devine que plus les
registres du processeur sont nombreux et plus leur taille est importante, plus on risque d'avoir
un systme efficace.

CeFIS-FUNDP

Ch. Duchteau

109

... machine ...

Initiation l'informatique

5.2.9.8 Le jeu d'instructions disponibles pour le processeur et la "puissance" de ces


dernires
Il s'agit galement d'un paramtre trs technique et qui ne sera pas abord en dtail.
Nous l'avons dj voqu page 105. L'exemple dvelopp montrait un processeur imaginaire
ne comportant que 8 instructions; de plus les oprations commandes par ces instructions
taient fort lmentaires. Pour obtenir en mmoire, l'adresse 00011 (3) la somme des
contenus des deux cellules d'adresses respectives 00001 (1) et 00010 (2), on tait oblig de
donner trois instructions en squence :
000 00001
010 00010
001 00011

charger le contenu de la cellule 00001 (1) dans le registre de donnes


y additionner le contenu de la cellule 00010 (2)
crire le registre de donnes dans la cellule 00011 (3)

On devine que certains processeurs disposent d'instructions plus puissantes et que, par
exemple, une seule instruction permettrait alors de faire le mme travail :
00001111
code opratoire, cod
sur un octet et commandant de lire successivement le contenu de
deux cellules mmoire
(dont les adresses suivent) et de placer le
rsultat dans une cellule (dont l'adresse suit
galement)

00000001
adresse (1) code sur un octet
de la cellule
contenant
la
premire donne

00000010
adresse (2) code sur un octet
de la cellule
contenant
la
seconde donne
qui doit tre
additionne la
premire

00000011
adresse (3) code sur un octet
de la cellule o
le rsultat de
l'addition doit
tre plac.

Il est vident que l'criture de programmes, dans ce cas, utilisera bien moins
d'instructions que dans le premier cas voqu.
Le nombre et la puissance des instructions propres un processeur constituent ds lors
un paramtre important de description de l'efficacit d'un systme.
5.2.9.9 La vitesse d'horloge
On a vu (page 77) que les battements d'une horloge permettaient de synchroniser le
travail des divers lments de l'unit centrale. La frquence laquelle cette horloge oblige ces
divers lments travailler est videmment un paramtre important. Les valeurs actuelles de
cette frquence sont de plusieurs centaines de mga-hertz (= plusieurs centaines de millions
de battements pas seconde). On annonce (avec le Pentium IV) 2 GHz de frquence.

Les premiers micro-processeurs travaillaient avec une frquence de quelques MHz


(de 0,108 MHz pour le 4004 8 MHz pour le 8088); on est ensuite pass quelques
11/2001 dizaines de MHz (de 12 MHz pour le 80286 100 MHz pour le 80486). On en est
aujourd'hui des frquences de plusieurs centaines de MHz (de 166 MHz pour le
Pentium 300 MHz pour le Pentium II). Le Pentium III a dpass le GigaHertz et on
en est un Pentium IV 2 GHz. (Novembre 2001)

110

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Evolution de la vitesse d'horloge


2500
2000

En MHz

2000
1500

1130

1000
450
500
12

100

200

33

166

0,108

1971

1979

1982

1985

1989

1993

1995

1997

1999

2000

Figure 5-35 : volution de la frquence d'horloge des processeurs

5.2.9.10 Le nombre d'instructions excutes par seconde


La puissance d'une unit centrale s'value parfois en MIPS (Million d'Instructions Par
Seconde).
Bien videmment, le nombre de MIPS d'un systme ne donne qu'une ide relativement
grossire de la puissance de ce dernier puisque, comme signal ci-dessus, un autre paramtre
essentiel est la puissance des instructions dont on parle. Ainsi, il vaut peut tre mieux un
systme "tournant" 100 MIPS avec des instructions puissantes et complexes plutt qu'un
systme 200 MIPS avec des instructions rudimentaires du type de celles prsentes dans
l'exemple dvelopp. C'est ce qui fait dire certains que MIPS signifie "Mauvais Indicateur
de la Puissance d'un Systme" !

CeFIS-FUNDP

Ch. Duchteau

111

... machine ...

Initiation l'informatique

Les premiers micro-ordinateurs "tournaient" quelques MIPS (0,75 pour le 8088 et


2,66 pour le 80286). On a eu ensuite des systmes quelques dizaines de MIPS (11
11/2001 MIPS pour le 80386 et 70 MIPS pour le 80486). La mesure en MIPS des
performances d'un systme n'est plus gure utilise pour les systmes actuels, mais
leur puissance dpasse aujourd'hui le millier de MIPS.
Evolution de la vitesse (en MIPS)
1200

1000

En MIPS

1000
800

600

600
250

400
200

0,06

70

11

2,66

0,75

300

Processeurs

Pe
nt
iu
m
Pe
nt
iu
m
Pr
o
Pe
nt
iu
m
II
Pe
nt
iu
m
III

80

38
80

48

6
28
80

80

40

04

88

Figure 5-36 : volution de la vitesse des processeurs

Etant donn ce que nous avons dit du fonctionnement d'un systme


informatique, n'est il pas tonnant qu'un systme avec une frquence
d'horloge de 100 MHz puisse "tourner", par exemple, 100 MIPS ?

Afin de rsumer l'volution des systmes (bass sur les micro-processeurs Intel), on
peut proposer le tableau suivant (11/2001) :
Type

4004

8088

80286

80386

Anne

1971

1979

1982

1985

Taille des registres de ?


calcul

16 bits

16 bits

32 bits

Taille du bus de donnes

8 bits

16 bits

32 bits

Registre (et bus) d'adresses ???

20 bits

24 bits

32 bits

Frquence d'horloge (MHz) 0,108 MHz

5 8 MHz

6 12 MHz

16 33 MHz

Vitesse (MIPS)

0,06 MIPS

0,33 0,75

0,9 2,66

5 11 MIPS

Nombre de transistors

2300

29.000

134.000

275.000

Prix (en $)

200

360

360

299

112

4 bits

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Type

80486

Pentium

Pentium Pro

Pentium II

Anne

1989

1993

1995

1997

Taille des registres de 32 bits


calcul

32 bits

32 bits

32 bits

Taille du bus de donnes

32 bits

64 bits

64 bits

64 bits

Registre (et bus) d'adresses 32 bits

32 bits

32 bits

32 bits

Frquence d'horloge (MHz) 25 100 MHz

60 166 MHz

150 200 MHz

233 300 MHz

Vitesse (MIPS)

20 70 MIPS

100 250 MIPS 400 MIPS ???4

Nombre de transistors

1.600.000

3 millions

5,5 millions (31 avec 7,5 millions


le cache de 512 K)

Prix (en $)

950

878

974

Remarques

Mmoire cache de
8 Ko
Coprocesseur
arithmtique

Mmoire cache Mmoire cache de Mmoire cache


512 Ko
de 512 Ko
de 16 Ko
Coprocesseur
arithmtique

Type

Pentium III

Pentium IV

Anne

1999

2000 ?

Taille des registres de 32 bits


calcul

32 bits

Taille du bus de donnes

64 bits

64 bits

Registre (et bus) d'adresses 32 bits


Mmoire adressable

32 bits

Frquence d'horloge (MHz) 450 1130 MHz

1,4 GHz
2,8 GHz

600 MIPS ???

Vitesse (MIPS)
Nombre de transistors

Prix (en $)

8,2 millions
28 millions (avec le
cache) ?

42 millions
(avec le cache)

250 (800 MHz)


990 (1.13 GHz)

160 (1,3 GHz)


500 (2 GHz)

Cache interne de
512 Ko

Cache interne de
256 Ko

Le nombre de transistors implants sur la "puce" constituant le processeur est une


bonne mesure de la complexit et des performances de ce dernier. Depuis les premiers
processeurs, on constate empiriquement que ce nombre de transistors double environ tous les
18 mois : c'est ce qu'avait prvu Moore ds 1965 dans une conjecture qui porte son nom, la
"loi de Moore".

Comme prcis, on n'value plus gure en MIPS les performances des processeurs rcents.

CeFIS-FUNDP

Ch. Duchteau

113

... machine ...

Initiation l'informatique

Figure 5-37 : loi de Moore


On notera l'chelle logarithmique en ordonne, dans le graphique prcdent.

!
5.3

Le co-processeur arithmtique, ajout aux processeurs de la fin des annes 80, est un
dispositif spcialis dans le calcul portant sur les nombres rels cods en virgule
flottante. Ce dispositif fait aujourd'hui partie intgrante des processeurs.

Les mmoires externes

5.3.1 Rle
A complter

5.3.2 Contenu
A complter

5.3.3 Classification
A complter

5.3.4 Paramtres de description et d'valuation


A complter
Cassettes
(streamer)

Disquettes
5"1/45
Double
densit

Disquettes
5"1/46
Haute
densit

Disquettes
3"
Double
densit2

Disquettes
3"
Haute
densit

Disques
durs

Disques
CD ROM

Disques
CD

Disques
DVD ROM

Capacit

2 Go ( 8 Go
4 Go

360Ko

1,2 Mo

720 Ko

1,44 Mo

20 Go

600 Mo

600 Mo

17 Go

Temps
d'accs

Pas de sens

100 ms (
600 ms
200 ms

100 ms (
600 ms
200 ms

100 ms (
600 ms
200 ms

100 ms (
600 ms
200 ms

5 ms ( 20
ms
10 ms

80 ms (
200 ms
100 ms

100 ms (
200 ms
200 ms

100 ms (
200 ms
200 ms

Vitesse de
transfert6

500 K/s ( 3
Mo/s
2 Mo/s

30 Ko/s (
150 Ko/s

30 Ko/s (
150 Ko/s

30 Ko/s (
150 Ko/s

30 Ko/s (
150 Ko/s

1 Mo/s ( 20
Mo/s
10 Mo/s

5 Mo/s

5 Mo/s

10 Mo/s

5
6

114

En voie de disparition
moyenne et pas instantane
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique
Prix du
lecteur
Prix du
support

... machine ...

7000 F (
30.000 F

2500 F

2500 F

2500 F

2500 F

5000 F (
30.000 F

4.000 F

Graveur
10.000 F

10.000 F

250 F( 700

10 F( 50 F

10 F( 50 F

15 F( 50 F

15 F( 50 F

pas de sens

pas de sens

50 F

Pas de sens

En gris, les supports aujourd'hui pratiquement disparus. (11/2001)

5.3.5 Panorama des dispositifs de mmorisation au sein d'un systme informatique


A complter

5.4

Les priphriques d'entre


A complter

5.5

Les priphriques de sortie

5.5.1 L'cran
A complter

5.5.2 Les imprimantes


5.5.2.1 Fonction
Priphrique de sortie, l'imprimante a comme rle de transformer des octets reus par
l'ordinateur en traces sur du papier.
5.5.2.2 Types d'changes entre l'ordinateur et l'imprimante
Avant d'aborder quelques paramtres de description et d'valuation, il est essentiel de
prciser comment s'oprent les changes entre l'ordinateur et l'imprimante et cela en voquant
plusieurs questions :
-

que reprsentent les octets envoys par l'ordinateur l'imprimante ?

comment l'imprimante est-elle capable de les transformer en signes sur du papier ?

quel est le rle (plus ou moins grand) de l'ordinateur dans la prparation de ce qui doit
tre envoy l'imprimante ?

5.5.2.2.1 Les changes de type texte (et les imprimantes travaillant en mode texte)
Les octets envoys par l'ordinateur l'imprimante reprsentent des caractres : ainsi
chaque octet est interprt par l'imprimante, par exemple travers le code ASCII, comme
reprsentant un caractre tracer.
Si l'imprimante est capable de tracer sur le papier les caractres correspondant aux
octets reus, c'est qu'elle possde pour chaque caractre possible la reprsentation point par
point du dessin raliser. Ainsi, recevant l'octet 657 (caractre A dans le code ASCII),
l'imprimante consulte le dessin bitmap (point par point) qu'elle a pour ce caractre et imprime
sur le papier le nuage de points ainsi trouv.

Not en dcimal et non en binaire comme c'est rellement le cas, pour des questions de facilit de lecture.

CeFIS-FUNDP

Ch. Duchteau

115

... machine ...

Initiation l'informatique

Figure 5-38 : reprsentation bitmap d'un caractre

C'est donc que l'imprimante dispose d'une mmoire morte dans laquelle ces
informations pour le trac sont enfermes. L'imprimante peut d'ailleurs possder plusieurs
polices diffrentes (Roman, Sans Serif, Courier...), dans plusieurs types d'impression (italique,
largi, gras, ...). Voici par exemple le type de reprsentation qu'elle pourrait possder.

Figure 5-39 : reprsentation bitmap de caractres en ROM d'une imprimante

Signalons qu'il est possible d'adjoindre la plupart des imprimantes travaillant en


mode texte des cartouches de mmoire morte comportant les descriptions de polices
supplmentaires.
Encore faut-il que l'ordinateur puisse signaler l'imprimante les changements de
police, de style (gras, italique,...), etc. effectuer. Certains des octets envoys l'imprimante
ne sont donc pas destins tre imprims. Ils ont pour mission d'indiquer l'imprimante les
changements de police ou de style attendus. Ce sont les premiers caractres du code ASCII
(ceux portant les numros de 0 32, que nous avons appel les caractres de contrle) qui
vont jouer ce rle d'indicateurs. Lorsqu'ils sont reus par l'imprimante, rien n'est imprim,
mais cette dernire change en quelque sorte d'tat : les caractres qui suivront seront imprims
dans une autre police, un autre style,...
Malheureusement, il n'y a pas un standard unique de ces caractres de contrle,
valable pour toutes les imprimantes travaillant en mode texte, et qui permettrait de signaler
ces changements attendus.

116

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Ainsi, sur les imprimantes de type EPSON (qui furent longtemps un standard en ce
qui concerne les imprimantes matricielles), ce sont des suites de caractres
commenant toujours par le caractre de code 27 (souvent appel "Escape", et
obtenu au clavier par l'appui sur la touche "Esc") qui jouent le rle d'indicateurs pour
ces changements. Par exemple, la suite de code 27 (Esc) et 52 (4) demandent
l'imprimante un passage en italique.
Sur la HP 500 (une des imprimantes jet d'encre les plus rpandues), c'est la
squence 27 (Esc) 40 (() 115 (s) 49 (1) 83 (S) qui provoque le passage au mode
italique.

Lorsqu'une imprimante travaille en mode texte, l'ordinateur se contente donc de lui


envoyer d'une part les octets correspondant aux caractres imprimer, d'autre part les
caractres de contrle permettant les changements de polices, de styles,... C'est le plus souvent
(mais pas toujours) lorsque l'ordinateur est quip d'un logiciel de traitement de texte que du
texte est ainsi envoy vers une imprimante. Le logiciel de traitement de texte comporte alors
les indications ncessaires concernant les caractres de contrle correspondant telle ou telle
imprimante. Sur base du choix de police et de mise en forme souhait par l'utilisateur et fourni
au systme ( travers le logiciel de traitement de texte), et sachant quelle est l'imprimante
slectionne, les caractres de contrle adquats sont glisss au sein des caractres imprims
pour provoquer les choix dsirs. Cet ensemble d'indications qui servent en quelque sorte
d'interface logiciel entre le programme de traitement de texte et l'imprimante s'appelle un
pilote d'imprimante (driver d'imprimante).

C'est la raison pour laquelle, lorsqu'on dite ou lorsqu'on demande l'affichage d'un
fichier contenant un texte dj prpar par un logiciel de traitement de texte et
destination d'une imprimante travaillant en mode texte, on y trouve, non seulement
des caractres normaux, mais encore un tas de caractres inattendus et correspondant
aux caractres de contrle insrs dans le texte original.

Signalons encore que ce travail "en mode texte" est de plus en plus rare dans les
environnements de travail actuels. Il tait pourtant le plus souvent la rgle pour les logiciels
travaillant dans l'environnement MS-DOS sur PC.
5.5.2.2.2 Les changes de type graphique (et les imprimantes travaillant en mode graphique)
Ici, les octets envoys par l'ordinateur ne sont plus interprts comme codant des
caractres mais plutt comme dcrivant une portion de graphique tracer sur le papier.
L'imprimante interprte donc les octets comme la reprsentation bitmap (point par point) d'un
graphique imprimer sur le papier.
Disons d'emble que dans ce cas c'est l'ordinateur qui se charge de la plus grande
partie du travail. C'est lui, qui disposant simplement de la signification graphique (pour
l'imprimante concerne) des diffrents octets (= quel octet envoyer pour que l'imprimante
sorte telle configuration de points sur un petit espace de la feuille), va calculer quels octets
envoyer pour obtenir textes et graphiques.
Il faut donc remarquer qu'ici, lorsque du texte (des caractres) doivent tre tracs par
l'imprimante, c'est l'ordinateur qui se charge de la tche consistant calculer quels octets
"graphiques" envoyer pour que l'imprimante dessine les caractres souhaits.
Dans ce mode d'change graphique, l'imprimante se contente donc de dessiner sur base
des indications convenables correspondant aux octets reus de l'ordinateur. Elle est alors
capable de dessiner aussi bien des graphiques que du texte, condition que l'ordinateur se
charge de lui envoyer les octets de commandes de trac souhaites.

CeFIS-FUNDP

Ch. Duchteau

117

... machine ...

Initiation l'informatique

On verra ci-dessous que dans le cas des imprimantes aiguilles ou jet d'encre, la tte
d'impression se dplace horizontalement le long du papier en y laissant un ensemble de points
disposs verticalement. Ainsi, si le dessin et le texte figurant ci dessous doivent tre tracs par
l'imprimante

Figure 5-40 : graphique imprimer

la tte d'impression fera un ensemble de passages horizontaux accompagns, l'issue du trac


d'une bande horizontale, d'une avance verticale convenable de la tte (ou du papier). Ainsi,
par exemple, lors d'un des parcours horizontaux de la tte, la tranche suivante sera trace :

Figure 5-41 : tranche graphique imprimer

En y regardant de plus prs, on constatera que le dessin et les morceaux de caractres


sont constitus de successions de points noirs ou blancs disposs verticalement. C'est la
juxtaposition de ces colonnes de points qui constituera le dessin effectu.

Figure 5-42 : impression en colonnes

C'est donc l'ordinateur qui, ici, va envoyer les octets reprsentant les diverses colonnes
(avec les combinaisons de points noirs ou blancs) l'imprimante, celle-ci se contentant
d'aligner les colonnes de points ainsi commandes.
Les rsultats obtenus sur l'imprimante correspondent donc essentiellement, non aux
capacits de cette dernire, mais au travail pralable fait par l'ordinateur, donc aux possibilits
des logiciels utiliss. Il faut savoir qu'un environnement comme Windows (sur les PC)
travaille essentiellement de cette manire. Au point de vue des polices disponibles, on n'est
plus du tout limit par celles dont l'imprimante possderait en mmoire morte une description
bitmap, mais uniquement par celles dont l'ordinateur possde la description.

?
118

Nous avons vu qu'il existait deux modes de codage des dessins : bitmap et
vectoris. Si l'ordinateur possde un mode de reprsentation des caractres
faire tracer par l'imprimante, quel est selon vous le mode de codage le
plus appropri ?
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Ajoutons encore que frquemment, c'est d'une description vectorise des diffrents
caractres (dans diffrentes polices et selon diffrentes mises en valeur) que le systme
dispose. Une telle description vectorise considre un caractre non comme un ensemble de
points, mais comme un objet compos de segments, de courbes, etc.. Ainsi, par exemple, le
caractre A peut tre dcrit par quelques grandeurs comme dans le schma ci-aprs :.

L
h

Figure 5-43 : caractre vectoris

Disposant de ce type de description, il est ais de passer un trac bitmap (point par
point) qui sera aussi correct que possible, quelle que soit la taille du caractre tracer : il
suffit d'ajuster chaque fois les longueurs L et h

Figure 5-44 : agrandissement d'un caractre vectoris

Aprs tre pass de cette reprsentation vectorise la reprsentation bitmap des


caractres, dans la taille souhaite, il suffit alors l'ordinateur d'envoyer vers l'imprimante les
octets correspondant ces nuages de points.

Ainsi en est-il, sous Windows, des polices dites True Type : le systme qui possde
la description vectorise de ces polices, en gnre une description bitmap, tenant
compte de la taille souhaite, et envoie cette description l'imprimante graphique.

Il est important de saisir que si l'on dispose seulement d'une reprsentation bitmap du
caractre, dans une taille donne
ce qui donne, vu de prs

CeFIS-FUNDP

Ch. Duchteau

119

... machine ...

Initiation l'informatique

Figure 5-45 : caractre bitmap

et que l'on souhaite passer d'autres tailles de caractres, le processus d'agrandissement va


conduire des rsultats peu satisfaisants :

Figure 5-46 : agrandissement bitmap

Une autre solution envisageable, si l'on veut en rester une reprsentation de type
bitmap, est de disposer de cette reprsentation pour diverses tailles de caractres. Dans ce cas,
il ne suffit donc pas que l'ordinateur possde la description point par point du caractre A,
mais plutt la description point par point du caractre A pour toutes les tailles souhaites. On
devine la quantit d'informations stocker pour faire dessiner dans plusieurs tailles, pour
diffrents styles, tous les caractres de plusieurs polices.
5.5.2.2.3 Les changes de type programme
Dans ce dernier cas les octets transmis par l'ordinateur constituent un programme (=
des indications de traitement) qui sera excut par l'imprimante et lui fera produire une page.
On devine aisment que dans ce cas l'imprimante est en ralit un ordinateur part entire,
disposant d'un processeur et d'une bonne capacit de mmoire vive pour stocker et excuter
les programmes ainsi reus.
Nous aurons l'occasion dans la suite d'aborder la programmation et les langages de
programmation. Pour faire court, ces langages permettent, avec un mode d'expression
suffisamment proche du ntre de dcrire les traitement attendus par l'ordinateur. Un
programme exprim dans un tel langage doit cependant tre traduit pour donner naissance
un programme "en langage machine" (= dans le langage du processeur concern), le seul qui
soit excutable.

Plusieurs langages de description de page l'intention de ce type d'imprimantes


existent : citons par exemple PostScript ou PCL (Printer Control Language).

En ce qui concerne l'impression de texte, c'est, on s'en doute, l'imprimante, qui se


charge de l'essentiel du travail. C'est elle, par exemple, qui dispose des descriptions
vectorises de diverses polices et des programmes de conversion de ces polices vectorises en
description bitmap. L'ordinateur peut se contenter de lui envoyer, travers un programme
respectant la syntaxe du langage de description de page choisi, le texte imprimer, le type de
police, la mise en valeur, la taille,... C'est l'imprimante qui interprte le programme reu,
gnre les bonnes reprsentations bitmap sur base des descriptions vectorises qu'elle
possde, etc..
120

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Signalons enfin que ce sont essentiellement les imprimantes Laser et jets d'encre qui
travaillent de cette manire : une "laser" est donc avant tout un ordinateur (spcialis dans le
travail d'impression).
5.5.2.3 Les paramtres descriptifs et d'valuation d'un imprimante
5.5.2.3.1 Type des changes
Le premier critre important est celui du type d'changes permis : dans quel mode
(texte, graphique, programme) l'imprimante peut-elle travailler ? Nous dcouvrirons cidessous les imprimantes matricielles, jet d'encre et laser. Disons ds prsent que les deux
premires familles travaillent souvent en mode texte et en mode graphique et que la dernire
le fait en mode programme.
5.5.2.3.2 Vitesse d'impression
Il s'agit videmment d'un critre fort important : combien de caractres par seconde
(CPS) une imprimante travaillant en mode texte est-elle capable d'imprimer; combien de
minutes faut-il une imprimante travaillant en mode graphique ou programme pour produire
une page, ou mieux, combien de pages par minute (PPM) ce type d'imprimante peut-elle
sortir ?
Nous disposons donc de deux units : les CPS (caractres par seconde), pour les
imprimantes de type texte, les PPM (pages par minute) pour les deux autres types.
5.5.2.3.3 Rsolution
C'est du nombre de points distincts qui peuvent tre imprims par unit de longueur
(tant horizontalement que verticalement) qu'il s'agit ici. On parle galement de "dfinition" ou
de "densit" dans ce contexte. Cette rsolution s'exprimera en points par pouce (en anglais
Dot Per Inch : DPI). Plus ce nombre est lev, plus la qualit du document imprim sera
remarquable.
5.5.2.3.4 La taille de la mmoire tampon
Quel que soit le mode de relation entre l'ordinateur et l'imprimante, on devine
aisment que si cette dernire avait seulement la possibilit de stocker un seul octet avant de
l'imprimer, l'ordinateur perdrait un temps norme envoyer, un par un, les octets qu' chaque
fois l'imprimante traiterait.
Notons d'ailleurs que ce mode de fonctionnement serait absolument impossible pour le
travail en mode programme.
Les imprimantes disposent donc en gnral d'une zone de mmoire vive qui sert de
tampon (buffer en anglais) permettant de stocker plusieurs octets (reprsentant des caractres,
des colonnes de points ou encore des instructions) en attente d'impression. Plus la mmoire
tampon est importante, moins nombreux seront les changes entre ordinateur et imprimante et
ds lors plus rares seront les interruptions du travail de l'ordinateur pour l'envoi de paquets
d'octets.
Ce sont, on le devine, les imprimantes travaillant en mode programme qui disposent
de la plus grande taille de mmoire : on parle alors simplement de mmoire vive plutt que de
mmoire tampon.
5.5.2.3.5 Autres paramtres importants
-

Le prix et le prix des consommables; il faut tre particulirement attentif au cot de


ces derniers : rubans encreurs, recharge d'encre, toner,... (Cf. ci-dessous).

Le bruit qui est un facteur essentiel du confort d'utilisation.

CeFIS-FUNDP

Ch. Duchteau

121

... machine ...

Initiation l'informatique

Le type de connexion physique avec l'ordinateur : parallle ou srie.


Dans le cas d'un liaison srie, les octets sont envoys le long d'un seul fil, bit aprs bit.
On peut donc imaginer qu'une srie de 0 et de 1 voyagent le long du fil, l'un derrire
l'autre, par groupes de 8.

Figure 5-47 : liaison srie

Disons qu'en ralit, il y a plus d'un fil pour prendre en compte des contraintes
techniques (par exemple, l'imprimante doit pouvoir signaler certaines choses
l'ordinateur). Ce type de liaison srie est compatible avec des distances assez
importantes (l'imprimante peut tre loigne de l'ordinateur). Enfin, ces liaisons sries
sont frquemment utilises pour relier l'ordinateur autre chose qu'une imprimante
(autre ordinateur, modem,...).
Dans le cas d'une liaison parallle ce sont les 8 bits constituant un octet qui seront
envoys ensemble le long de 8 fils de liaison et qui chemineront en parallle

Figure 5-48 : liaison en parallle

Comme ci-dessus il faut signaler qu'il y a en ralit plus de 8 fils, pour des raisons
techniques, mais le principe est bien celui dcrit. Ce mode de liaison est gnralement
limit en longueur : on ne peut gure dpasser les 3 mtres de distance entre
l'ordinateur et son imprimante.
Beaucoup d'imprimantes sont connectables au choix en srie ou en parallle,
videmment travers des prises physiquement distinctes.
-

La taille du papier, la possibilit d'alimenter l'imprimante "en continu",... sont aussi


des paramtres prendre en compte.

5.5.2.4 Les diverses varits d'imprimantes


5.5.2.4.1 L'imprimante matricielle
Ce type d'imprimante est galement appel imprimante aiguilles. Le principe en est
simple : une tte d'impression munie d'une srie d'aiguilles disposes verticalement se dplace
horizontalement le long d'un ruban encreur lui mme parallle la feuille de papier.

122

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Figure 5-49 : Imprimante matricielle

A chaque micro-dplacement de la tte, certaine aiguilles viennent frapper le ruban qui


laisse une trace sur le papier : on obtient donc une srie de points disposs en colonne :
certains restent blancs (les aiguilles correspondantes n'ont pas boug), d'autres sont colors
(ils correspondent aux aiguilles qui ont frapp le ruban et le papier).
Vu de profil, le dispositif se prsente donc comme suit :

Figure 5-50 : mcanisme d'impression aiguilles

Le nombre d'aiguilles est variable : on trouve des imprimantes 9 aiguilles (ce sont
bien entendu celles dont la rsolution est la moins bonne), 24 aiguilles ou mme davantage.
Beaucoup d'entre elles offrent la possibilit d'une impression brouillon (rapide mais de
qualit mdiocre) ou encore d'une impression de meilleure qualit (en anglais : Near Letter
Quality : qualit presque courrier).
Les caractristiques essentielles de ce type d'imprimante sont les suivantes :
-

elles travaillent gnralement soit en mode texte, soit en mode graphique;

elles sont bruyantes;

elles permettent des copies carbones des documents produits;

leur vitesse en mode texte dpend de la qualit attendue, mais elle est relativement
faible (180 300 CPS sont des valeurs maximales; en mode graphique, il faut en
gnral plusieurs minutes pour produire une page;

CeFIS-FUNDP

Ch. Duchteau

123

... machine ...

Initiation l'informatique

leur rsolution est de 120 300 DPI;

les modles d'entre de gamme sont bon marchs, de mme que les consommables.

Ces imprimantes peuvent galement travailler en mode graphique, et dans ce cas on


n'est limit que par les possibilits logicielles de l'ordinateur : gnration de polices, outils de
cration graphique.

Il est important de signaler que les imprimantes matricielles sont en voie de


disparition tant donn leur lenteur, le bruit gnr par leur utilisation et leur
mdiocre dfinition.

5.5.2.4.2 L'imprimante jet d'encre


Si le principe reste celui d'une tte d'impression qui se dplace horizontalement le long
du papier en laissant des juxtapositions de colonnes verticales de points, il n'y a plus cette fois
d'impact mcanique ni de ruban encreur. Le ct de la tte d'impression qui fait face au papier
est muni d'une srie d'orifices disposs verticalement et travers lesquels des microgoutelettes
d'encre sont envoyes directement sur le papier. Le nombre de ces micro-gicleurs est variable
et la tte d'impression est videmment accompagne d'un rservoir d'encre. Le plus souvent,
c'est toute la tte qui est remplace lorsque le rservoir est vide.
Signalons encore que, le plus souvent, les imprimantes jet d'encre sont proposes
avec des capacits d'impression en couleur, mme si les documents ainsi produits restent
relativement cher (tant donn le cot des ttes-rservoirs).
Les caractristiques essentielles de ce type d'imprimante sont les suivantes :
-

elles travaillent gnralement soit en mode texte, soit en mode graphique, soit, le plus
souvent, en mode programme;

elles sont trs silencieuses;

leur vitesse reste assez rduite, en gnral de plusieurs minutes par page (surtout en
impression couleur);

leur rsolution est de 300 DPI ou plus, ce qui conduit des documents d'excellente
qualit;

les modles d'entre de gamme sont bon marchs, mais les consommables sont trs
chers ce qui dbouche sur un prix d'utilisation assez lev.

5.5.2.4.3 L'imprimante Laser


Le principe est fondamentalement diffrent de ceux des deux types dj vus. Ici, il n'y
a plus de tte d'impression, mais un rouleau (charg lectrostatiquement positivement); un
rayon laser (correctement orient) vient frapper ce rouleau et neutralise les points touchs. Un
dispositif de dpt d'encre en poudre trs fine (toner) et charge positivement dpose alors
des particules d'encre (charge positivement), uniquement sur les points du rouleau
pralablement neutraliss. Une feuille de papier charge ngativement vient ensuite au contact
du rouleau et fixe les particules d'encre sur sa surface.
L'encre est ensuite fixe dfinitivement par chauffage.

124

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

Figure 5-51 : schma de fonctionnement d'une imprimante laser

Les imprimantes Laser travaillent essentiellement en mode "programme" : ce sont


donc de vritables ordinateurs dots d'un processeur et de mmoire vive et capable
d'interprter et d'excuter les programmes de description de page reus de l'ordinateur.
Leurs qualits fondamentales sont la rapidit et la qualit : elles conviennent bien
lorsque la quantit de documents imprimer est importante.
Les caractristiques essentielles de ce type d'imprimante sont les suivantes :
-

elles travaillent gnralement en mode programme;

elles sont trs silencieuses;

leur vitesse est importante : en gnral plusieurs pages par minute

leur rsolution est de 300 DPI au minimum et frquemment de 600 DPI;

elles sont assez chres, de mme que les consommables et ne peuvent tre amorties
que lorsque les quantits imprimes sont importantes.
Voici titre d'exemple le rsultat d'une impression Laser :

Exemple de sortie de texte et graphique sur une imprimante Laser.


Le prsent texte est en police ARIAL de taille 11 points, avec un passage en taille 7
passage en italique et un passage en gras.
On peut galement obtenir des caractres de trs grande taille :

CeFIS-FUNDP

Ch. Duchteau

points

, un

125

... machine ...

Initiation l'informatique

A,B,C
Et voici, sous un petit graphique, un texte en police Times, 12 points, avec quelques mots en taille 7
Et pour continuer
points, un passage en italique et un passage en gras.
quelques mots dans la police Script, puis quelques uns dans la
police Braggadocio, puis dans la police Colonna, puis dans la police DESDEMONA.

Et il y en a des dizaines et des dizaines d'autres qui


sont disponibles .

Figure 5-52 : impression laser

126

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

... machine ...

5.5.2.4.4 Tableau rcapitulatif


Matricielle8
Caractristiques - 9 aiguilles 24 aiguilles
(et plus)
- bruyante
- copies carbone possibles
- peu coteuse
- Texte (Draft ou NLQ9) +
graphique
- grande largeur
120 DPI ( 300 DPI
Rsolution
(Graphique)
Vitesse

180 CPS (300 CPS


(Texte)
10 Min/page (Graph)
3 Ko ( 32 Ko

Taille de la
mmoire tampon
10.000 F ( 30.000 F
Prix
Prix par page

1F

Jet d'encre
- N/B ou couleur
- silencieuse
- bonne qualit
- Texte + graphique
- prix
lev
des
cartouches

Laser
- silencieuse
- rapide
- pour usage intensif
- travaille en mode
programme
(processeur intgr)

300 DPI

600 DPI

120 ( 300 CPS


(Texte)
1 ppm (Graphique)
8 Ko ( 32 Ko

4 ppm ( 20 ppm

12.000 F ( 30.000 F
3F (N/B)
20 F
(
(Couleur)

1 Mo ( 70 Mo
(RAM)
50.000 F ( 200.000
F et +
2,50 F

120 F

Figure 5-53 : paramtres d'valuation des imprimantes

5.5.2.5 Questions
1. Le texte suivant peut il avoir t produit par une imprimante travaillant en mode
texte ? Et en mode graphique ? Et en mode programme ?
TEXTE BIEN HORIZONTAL
Et le texte suivant ?

2.

8
9

Expliquez pourquoi.
Pensez-vous que l'on puisse parler de la rsolution d'une imprimante travaillant en
mode texte ? Pourquoi ?

3.

Un de vos amis souhaite acqurir une imprimante. Quelles questions lui poseriez-vous
pour l'aider prendre sa dcision.

4.

Que reprsentent les octets envoys par l'ordinateur l'imprimante ?

Pratiquement disparues aujourd'hui.


NLQ : Near Letter Quality : Qualit Presque Courrier

CeFIS-FUNDP

Ch. Duchteau

127

... machine ...

5.

Initiation l'informatique

Par quel(s) type(s) d'imprimante (texte, graphique, programme) le texte suivant est-il
vraisemblablement produit ?
Le texte crit ici fait un mlange puvantable de polices

diffrentes. en devient trs difficilement lisible.

128

Ch. Duchteau

CeFIS-FUNDP

6
... pour autant qu'on lui ait indiqu comment mener bien
ce traitement ...

La programmation et ses langages


6.1

Introduction

6.1.1 Programmer ?
Nous avons eu dj l'occasion d'aborder l'activit de programmation (Cf. page 56); le
schma qui est au cur de cette activit est le suivant

Dispositif
excutant

Programmeur

il conoit

il excutera
Tche

elle gouvernera

marche suivre
Figure 6-1 : schma de l'activit de programmation

Rappelons que :

"programmer", c'est rdiger une marche suivre, un programme, destination d'un


"dispositif excutant" qui, en suivant les instructions (= les ordres) figurant dans ce
programme va mener bien la tche correspondante;

dans notre contexte, un programme est une srie d'indications d'oprations effectuer
sur des donnes, dans un certain ordre.

6.1.2 Le langage machine


Nous avons dcouvert dans le chapitre prcdent les principes qui gouvernent le
fonctionnement de l'ordinateur et l'importance du "langage machine".
On peut rsumer ces principes en disant que des nombres (instructions) logs en mmoire
centrale font agir le processeur sur d'autres nombres (donnes) galement logs en mmoire
centrale. Les nombres constituant le programme qui va faire effectuer des oprations par le
processeur sont donc prsents au mme titre que les donnes dans la mmoire centrale.
L'ordinateur est bien un calculateur programme enregistr (en mmoire).
CeFIS-FUNDP

Ch. Duchteau

129

Les langages de programmation

Initiation l'informatique

C'est dire que le schma gnral prsent ci-dessus se particularise :


il excutera
Programmeur

il conoit

Processeur

Calcul

il gouvernera

programme en
langage-machine
Figure 6-2 : schma de l'activit de programmation en langage machine

Le dispositif excutant qui nous destinons les programmes crits en langage machine
est ici clairement le processeur et le type de tche excute par ce dernier est toujours
explicitement un calcul (addition, comparaison,... de nombres (cods en binaire)).
Nous avons compris galement que seules les instructions formules explicitement en
binaire (code opratoire et adresses prcises) et correspondant exactement aux possibilits du
processeur pouvaient prendre place en mmoire pour constituer un programme excutable
(par le processeur).

6.1.3 Les limitations de l'expression en langage machine


On imagine aisment la difficult de retenir les codes opratoires (binaires) des
diverses instructions, d'crire les adresses mmoires (binaires) intervenant dans ces mmes
instructions.
De plus, nous l'avons vu dans l'exemple trait plus haut, une partie du programme (par
exemple les adresses des instructions o conduisent les branchements) doit tre rcrit si le
programme est log en mmoire dans un endroit plutt que dans un autre (voir Figure 5-19 :
rangement du programme en mmoire (1) et Figure 5-20 : rangement du programme en
mmoire (2), page 87).
Enfin, un langage machine est propre une famille de processeurs et tout le processus
de programmation doit tre repris si les mmes traitements doivent tre exprims pour un
autre processeur.
On aura compris que l'criture des instructions d'un programme en langage machine
n'est pas une sincure et que reprer une erreur ou une modification effectuer dans une
longue succession de suites de 0 et de 1 constitue une tche fastidieuse et infiniment loigne
de nos capacits.
Il est donc normal qu'on ait cherch d'autres manires d'exprimer les traitements
attendus d'un ordinateur, en ne restant pas cantonn au langage machine.
C'est l'exploration des progrs raliss dans ces modes d'expression des indications de
traitements qui va prsent retenir notre attention : en d'autres termes nous allons dcouvrir
l'volution ("logique" plutt que "chronologique") des langages de programmation.

130

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

6.2

Les langages de programmation

Le triple point de vue sur les langages de programmation

Un langage de programmation est, nous allons le dcouvrir, un moyen d'expression


travers lequel le programmeur va fournir l'ordinateur (et plus prcisment au processeur) les
indications de traitement qu'il souhaite.
Il va nous falloir des critres ou encore une grille d'analyse qui permettent de comparer
ces divers langages entre eux. Cette "paire de lunette" travers laquelle nous allons examiner
ces divers modes d'expression et leur volution est triple :

6.2.1 L'organisation des donnes traiter et la manire de les dsigner


Nous le savons, les instructions (constituant un programme) vont commander au
processeur d'agir sur des donnes (prsentes dans les cellules -octets ou succession d'octetsde la mmoire centrale). Que sont ces donnes manipules et comment puis-je les dsigner au
sein des instructions exprimant les traitements effectuer : voil la premire question que je
poserai chacun des langages envisags.

6.2.2 Les oprations permises sur les donnes et la manire d'exprimer ces
oprations
Quels types de traitements de ces donnes vais-je pouvoir commander au sein des
instructions et comment vais-je exprimer ces traitements possibles : c'est la seconde question
ou le second critre travers lequel j'examinerai chacun des langages de programmation
envisag.

6.2.3 Les manires d'organiser l'excution des instructions commandes


Et enfin, une fois les donnes dsignes et les oprations exprimes, il faut encore
savoir comment on va pouvoir organiser la succession des oprations commandes. En effet,
un programme c'est non seulement une suite d'instructions de manipulations de donnes, mais
aussi les structures organisatrices qui indiqueront dans quel ordre les manipulations
commandes auront lieu.

6.3

Retour sur le langage machine

A la lumire de ces critres, on peut rexaminer le langage machine (ou plutt les
langages machines, puisqu'il y en a autant que de type de processeurs).

6.3.1 L'organisation des donnes traiter et la manire de les dsigner, en langage


machine
Les donnes traites sont disponibles sous forme de nombres (crits en binaire) dans
les cellules de la mmoire; pour manipuler une donne, il faut indiquer expressment l'adresse
de la cellule qui la contient. La dsignation d'une donne fait donc usage explicite de l'adresse
de la cellule la contenant.

6.3.2 Les oprations permises sur les donnes et la manire d'exprimer ces
oprations, en langage machine
Ces oprations sont exactement celles dont le processeur est capable : additionner,
comparer, soustraire,... Elles doivent tre exprimes par le code opratoire (en binaire)
figurant au sein des instructions. On colle donc compltement aux possibilits opratoires du
processeur et on exprime ces oprations travers le code opratoire.

CeFIS-FUNDP

Ch. Duchteau

131

Les langages de programmation

Initiation l'informatique

6.3.3 Les manires d'organiser l'excution des instructions commandes, en


langage machine
On sait que c'est le compteur ordinal qui dsigne l'adresse de l'instruction qui va tre
ramene (dans le registre d'instruction) puis excute.
Le droulement habituel voit, la fin de chaque instruction, le compteur ordinal
augmenter de 1, afin de pointer vers l'instruction suivante (= contenue dans la cellule dont
l'adresse est la suivante). Ds lors, les instructions sont excutes dans l'ordre o elles se
prsentent au sein de la mmoire, de manire parfaitement squentielle.
Cette excution squentielle peut tre brise par les instructions de branchement,
inconditionnel ou conditionnel. Dans ce cas, le compteur ordinal, au lieu d'augmenter de 1,
effectue un saut pour pointer vers la cellule dont l'adresse est mentionne au sein de
l'instruction de branchement. On doit donc dsigner explicitement l'adresse de l'instruction o
l'on saute.
Ce mcanisme de branchement est essentiel : c'est lui qui va permettre de rpter certaines
suites d'instructions et de choisir certains moment d'excuter ou non telle squence
d'instructions.
Le fait de devoir dsigner de manire explicite, au sein de chaque branchement, l'adresse de
l'instruction o l'on saute, rend l'criture du programme particulirement dlicate puisque ces
adresses ne sont connues que lorsque l'on sait quelles adresses le programme tout entier
est log.
Ce problme peut tre partiellement rsolu par l'existence d'instruction de branchement
effectuant des sauts non vers des adresses absolues, mais vers des adresses relatives : non
pas "donner au compteur ordinal la valeur 101" (et donc sauter l'instruction d'adresse 101),
mais plutt "ajouter 010 au contenu du compteur ordinal" (et donc sauter l'instruction dont
l'adresse s'obtient en ajoutant 010 l'adresse de l'instruction actuelle).

6.3.4 En rsum, pour le langage machine

Le dispositif excutant est le processeur et la tche effectue est toujours une suite de
calculs.

Les instructions composant le programme sont explicitement crites en binaire.

Une instruction, c'est un code opratoire et une (ou plusieurs) adresses


code
opratoire

adresse d'une donne ou


d'une autre instruction

Les donnes sont ranges dans les cellules de la mmoire et dsignes dans le
programme par leurs adresses explicites (en binaire).

Les oprations souhaites sont exprimes dans le code opratoire. Elles correspondent
exactement aux possibilits du processeur.

On dispose de trois structures d'organisation du droulement :


o

la squence,

le branchement,

le branchement conditionnel.

saut : le programme se poursuit


ailleurs qu' l'instruction suivante

mais, on doit dsigner explicitement l'adresse des instructions o l'on "saute".

132

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

6.4

Les langages de programmation

Un premier pas : les langages d'assemblage

On va le voir, le dispositif excutant reste ici le processeur (comme pour le langage


machine) et on continue donc commander ce dernier d'effectuer des calculs (et bien
entendu des changes avec la mmoire centrale). La Figure 6-2 : schma de l'activit de
programmation en langage machine, page 130, reste donc d'application.
Trs peu de temps aprs l'apparition des premiers ordinateurs (et donc de l'criture des
premiers programmes en langage machine), apparat l'ide de rdiger les programmes en
remplaant les constituants binaires de ceux-ci par des symboles : les langages permettant ce
type d'expression s'appellent langages d'assemblage.
Voici titre d'exemple ce que pourrait devenir le programme dvelopp plus haut pour
calculer max (a+b, c) dans le cas du modle extrmement simplifi d'unit centrale :
Oprations souhaites

charger la cellule 01010 (10) dans le registre

Programme
en langage
machine
000 01010

additionner la cellule 01011 (11) au registre

010 01011

comparer le registre la cellule 01100 (12)

100 01100

brancher si code cond = 10 (registre>cellule)

101 00101

charger la cellule 01100 (12) dans le registre

000 01100

sauver le registre dans la cellule 01101 (13)

001 01101

Programme en langage
d'assemblage

)
)
)
)
)
)

LOAD A
ADD B
COMP C
JUMPP FIN
LOAD C
FIN

SAVE D

6.4.1 L'organisation des donnes traiter et la manire de les dsigner, en langage


d'assemblage
On dsignera les cellules de la mmoire non plus par leur adresse explicite mais par un
nom symbolique (A, B1, X, ...). Ainsi, dans le cas de l'exemple, la cellule d'adresse 01010 (10
en dcimal) est note A; les autres cellules contenant d'autres donnes seront dsignes par B,
C et D.
Notons que ces noms symboliques continuent dsigner des cellules de la mmoire.

6.4.2 Les oprations permises sur les donnes et la manire d'exprimer ces
oprations, en langage d'assemblage
Les codes opratoires, difficiles mmoriser, sont ici remplacs par des
mnmoniques. Ainsi, l'opration de chargement dans le registre de donnes, partir de la
mmoire, est dsigne par le mot LOAD (charger en anglais); l'addition du contenu d'une
cellule au registre de donnes sera not ADD, qui est tout de mme plus ais mmoriser que
le code opratoire 001. Il en sera de mme pour les autres instructions : SUB, COMP, JUMP,
JUMPP, JUMPN, SAVE.
Notons que les oprations commandes par ces mnmoniques continuent tre
exactement celles dont le processeur est capable.

6.4.3 Les manires d'organiser l'excution des instructions commandes, en


langage d'assemblage
On va garder les mmes structures organisatrices que celles du langage machine :
squence , branchement et branchement conditionnel.
CeFIS-FUNDP

Ch. Duchteau

133

Les langages de programmation

Initiation l'informatique

Mais, dans le cas du branchement (JUMP) ou des branchements conditionnels


(JUMPP et JUMPN), l'adresse de l'instruction o il faut brancher (sauter) est remplace par un
nom symbolique, appel aussi tiquette ou label. Et l'instruction o s'effectue le saut est
prcde du mme label. Ainsi, dans le cas de l'exemple :
adresses en
mmoire
brancher si code cond = 10 (registre>cellule)

00011 101 00101

charger la cellule 01100 (12) dans le registre

00100 000 01100

sauver le registre dans la cellule 01101 (13)

00101 001 01101

)
)
)

JUMPP FIN
LOAD C
FIN

SAVE D

On ne doit donc plus se soucier de manire explicite des adresses prcises des
instructions vers lesquelles s'effectuent les sauts ni, ds lors, des adresses occupes en
mmoire par le programme. Ceci constitue une relle facilit.
Notons que les manires d'organiser le droulement des oprations par les langages
d'assemblage collent encore tout fait ce qui se passait en langage machine et au
fonctionnement mme du processeur.

6.4.4 Une comparaison langage machine - langage d'assemblage


Langage machine

Langage d'assemblage

Il faut connatre explicitement les adresses


des cellules o les donnes sont ranges.
Ainsi, dans le cas de l'exemple :

On dsigne les donnes traiter par des


noms symboliques, tiquettes des cellules
les contenant.

a
b
c
rsultat

* 01010 (10)
* 01011 (11)
* 01100 (12)
* 01101 (13)

Les oprations sont dsignes par leur code


opratoire (binaire) : 000, 001,...

Les oprations sont dsignes par des


mnmoniques : LOAD, SAVE, ADD,
COMP, JUMP, JUMPP, JUMPN.
Ces oprations correspondent exactement
aux possibilits du processeur.

Certaines instructions font effectuer des


sauts qui rompent le droulement squentiel des instructions : les branchements et
branchements conditionnels.

Il existe des mnmoniques pour les


instructions de branchement (comme
pour toutes les autres). Mais on ne doit
plus indiquer la suite de l'instruction de
branchement l'adresse explicite de la
cellule contenant l'instruction o l'on
saute : on fait seulement figurer une
dsignation symbolique de l'instruction
o l'on saute et cette dernire est prcde
du mme nom symbolique.

Ainsi, dans le cas de l'exemple :

Ainsi, dans le cas de l'exemple :

101 adresse explicite o est loge l'instruction


001 01101
134

JUMPP
FIN

Ch. Duchteau

FIN

SAVE D
CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

Mais on colle encore parfaitement aux


possibilits du processeur, en ce qui
concerne l'organisation du droulement
du programme (squence et branchement)

6.4.5 Les assembleurs


Une fois le texte du programme rdig, on va saisir celui-ci au clavier pour l'introduire
dans la mmoire centrale de l'ordinateur. Ce programme prend donc place comme du texte au
sein de la mmoire, les caractres le constituant tant cods selon les codes ASCII, ANSI ou
d'autres. Pendant cette opration de saisie du texte, l'ordinateur est en gnral gouvern par un
programme diteur de texte qui permet la frappe et la modification de texte brut (sans mise
en forme).
Ce texte cod ne constitue videmment pas, quand on examine les octets successifs le
constituant, le programme attendu en langage machine. Il va bien entendu falloir une
traduction qui sur base du texte (cod) du programme gnrera les octets constituant le
programme en langage machine (pour le processeur considr). Ainsi, la chane LOAD sera
reconnue et donnera naissance au code opratoire 000 et ainsi de suite pour les autres
mnmoniques dsignant les oprations.
Les symboles dsignant les cellules contenant les donnes seront aussi remplacs par
des adresses explicites, de mme que les tiquettes figurant au sein des instructions de
branchement.
Cette traduction est bien entendu effectue par l'ordinateur gouvern ce moment l
par un programme de traduction qu'on appelle un assembleur.
Un assembleur est donc un programme qui sur base du texte d'un programme crit
dans le langage d'assemblage pour tel processeur (le programme source) gnre le programme
correspondant en langage machine (programme objet), pour le mme processeur.

Comment, votre avis, le programme assembleur a-t-il t cr ?

Cette traduction automatique postule videmment que les rgles d'orthographe et de


syntaxe qui sont de mise pour l'criture des programmes en langage d'assemblage aient t
respectes, sinon la traduction n'est pas possible. Ainsi si l'on a mal orthographi le mot
LOAD et qu'il est devenu LOOD, l'assembleur sera videmment incapable d'assurer la
traduction et de gnrer le programme en langage machine attendu. Il en va de mme pour le
respect des rgles d'criture des symboles pour les cellules ou les tiquettes des branchement.
Fort souvent, au lieu de dire qu'on crit un programme en langage d'assemblage, on parle
d'criture en assembleur, confondant ainsi le langage et le programme qui assurera la
traduction partir de ce langage. On parle donc, improprement, de "programmation en
assembleur" au lieu de "criture de programmes en langage d'assemblage".

6.4.6 En rsum, pour les langages d'assemblage

Les oprations sont dsignes par des mnmoniques; les cellules o sont ranges les
donnes et les adresses des instructions vers lesquelles on effectue des branchements
(sauts) font l'objet de dsignations symboliques.

CeFIS-FUNDP

Ch. Duchteau

135

Les langages de programmation

Initiation l'informatique

Une instruction en langage d'assemblage est donc un texte comportant en gnral trois
partie :
Label (tiquette)

Dsignation de l'opration

facultatif

mnmonique

Dsignation symbolique

cellules contenant les ou label de l'instruction


donnes
o l'on saute

Les cellules contenant les donnes traiter sont dsignes par des symboles : A, B1,
..., mais on continue donc travailler sur le contenu de cellules mmoire.

Les oprations permises sont exprimes par des mnmoniques. Elles correspondent
exactement aux possibilits du processeur.

On dispose, comme en langage machine de trois structures d'organisation du


droulement :
o

la squence,

le branchement,

le branchement conditionnel.

saut : le programme se poursuit


ailleurs qu' l'instruction suivante

mais, l'instruction o l'on saute reoit un label (tiquette); c'est ce label qui figure dans
l'instruction de branchement.

Le langage d'assemblage colle encore parfaitement aux possibilits du processeur. Les


programmes crits en langage d'assemblage sont traduits en langage machine par un
programme assembleur.
Il faut bien comprendre que tant le langage d'assemblage que l'assembleur
correspondant sont spcifiques un type de processeur.

On peut dire qu'on est dbarrass de l'criture explicite en binaire, de la gestion


explicite des adresses des cellules o prennent place les donnes, et de la gestion des
adresses des cellules contenant les instructions vers lesquelles on saute.

6.5

Les langages volus impratifs

Des pas dcisifs vont tre ici accomplis et qui vont dfinitivement nous loigner du
processeur et de ses contraintes. En d'autres termes, s'il va toujours s'agir de faire traiter des
donnes par un dispositif, il faut se faire de ce dispositif une image qui n'est plus du tout celle
du processeur et du fonctionnement, dcrit prcdemment, de l'unit centrale. En effet, ce que
vont permettre les langages volus, tant comme oprations que comme dsignation des
donnes ou manires de commander le droulement du programme, est tellement loign des
contraintes et fonctionnement de l'unit centrale que rfrer explicitement cette dernire
n'est plus utile. Il faut trouver une autre image du dispositif qu'on va commander travers les
programmes qu'on souhaite crire en utilisant les langages volus.
Bien entendu, ces programmes crits en langages volus, devront tre traduits pour
qu'on obtienne leur correspondant en langage machine. A ce niveau, on va retrouver le
processeur et ses contraintes, mais ce niveau, les langages volus vont justement permettre
de ne plus s'en soucier.

136

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

6.5.1 Une autre reprsentation du dispositif excutant dans le cas des langages
volus
Nous allons apporter une description mtaphorique de "que dois-je imaginer de ce qui
se passe l'intrieur de l'ordinateur, quand je conois des programmes en langage volu". La
description relle du fonctionnement de l'unit centrale n'est donc plus de mise ici : c'est autre
chose pour laquelle on crit les programmes en langage volu. Cette autre chose, je
l'appellerai tout au long de ce dveloppement l'excutant-ordinateur. C'est l'ordinateur
transfigur par sa comprhension apparente des indications que je veux bien lui fournir,
exprimes dans un langage volu.
6.5.1.1 L'excutant-ordinateur
C'est le moment o jamais de relire le point 4.3 "Le point de vue du programmeur",
page 56 et de se rappeler une fois de plus le schma de l'activit de programmation :
Excutantordinateur

Programmeur

il conoit

il excutera
Tche

elle gouvernera

marche suivre
Figure 6-3 : schma de l'activit de programmation

Jusqu' prsent, quand on crivait des programmes en langage machine ou en langage


d'assemblage, l'excutant-ordinateur tait l'unit centrale et particulirement le processeur (tel
que dcrit au chapitre prcdent); c'tait le fonctionnement de cet ensemble qu'il fallait avoir
en tte pour concevoir les programmes qui allaient le gouverner.
C'est d'une toute autre image qu'il faut se servir pour exprimer les programmes en
utilisant les langages volus.
6.5.1.2 L'excutant-ordinateur dans le cas des langages volus : son environnement
Je peux imaginer cet excutant comme un genre de robot, log l'intrieur de
l'ordinateur, dans un certain environnement, et obissant certaines instructions :

Figure 6-4 : l'excutant-ordinateur dans les langages volus

L'environnement de travail peut se dcrire comme suit :


CeFIS-FUNDP

Ch. Duchteau

137

Les langages de programmation

Initiation l'informatique

L'excutant dispose d'une srie de "casiers" tiquets. Un tel casier est caractris par :

L'tiquette qui y est attache : inamovible, choisie par le programmeur et non


manipulable par l'excutant. Cette tiquette constitue le nom du casier et servira dans
le texte du programme dsigner, soit le casier lui mme, soit son contenu. Le langage
utilis apportera certaines contraintes sur les tiquettes possibles.
Ainsi, en Pascal (qui est un langage de programmation volu du type de ceux dcrits
ici) le nom d'un casier doit commencer par une lettre et ne comporter que des lettres
(non accentues), des chiffres et le symbole de soulignement _.

Le contenu du casier : ce qui y transitera, c'est une donne (nombre entier, nombre
rel, caractre, chane (succession) de caractres).

Le type du casier qui dtermine le genre de donne susceptible d'y prendre place
(entier, rel, caractre, chane de caractres).
Je n'aborderai pas ici le concept de donne de type boolen; je ne souhaite pas tre complet
ou exhaustif, mais seulement donner une ide des possibilits et contraintes de la
programmation en langage volu
tiquette (nom) du casier
Contenu du casier

AGE
26
Figure 6-5 : un casier de type entier

Le vocable habituellement utilis en programmation pour parler de ces casiers est celui de
variable : une variable est donc d'un type donn (entier, rel, caractre, chane de
caractres), elle porte un nom et possde un contenu. Comme on le verra le type et le nom
d'une variable sont fixs tandis que son contenu est susceptible d'tre modifi.

Il dispose galement d'une norme "malle donnes", dont il pourra, le moment venu
et sur les injonctions du programme le gouvernant, tirer n'importe quelle donne de l'un
quelconque des types cits (nombre entier, nombre rel, caractre, chane de caractres).

Malle donnes

Figure 6-6 : l'excutant-ordinateur : les casiers et la malle donnes

De plus, l'excutant peut "communiquer" avec l'extrieur. Son "local de travail"


dispose en effet d'une porte-clavier travers laquelle il peut recevoir des donnes (venant de
138

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

l'extrieur, fournie par un utilisateur, le moment venu) et d'une fentre-cran o il pourra,


quand l'instruction correspondante lui demande, afficher des donnes.
Enfin, l'excutant dispose d'une table de travail portant un certain nombre d'outils. Ces
outils vont fournir, pour peu que l'excutant y entre des donnes du type adquat, une donne
nouvelle.
Ainsi il y a un outil SOMME (not + sur le schma), un outil DIFFERENCE (not -),
un outil NOMBRE AU HASARD,...
Parmi ces outils, il en est qui possdent un statut particulier, ce sont ceux qui
permettront au programmeur d'noncer les conditions acceptables. Ce sont les outils qui
fournissent le rsultat de comparaisons de donnes : >, <, =, ...

CLAVIER

ECRAN

+-/* <>=
Malle donnes

Figure 6-7 : l'excutant-ordinateur : l'environnement global de travail


On est loin du processeur, des registres et des cellules mmoire. C'est pourtant ce portrait
mtaphorique de l'excutant-ordinateur qu'il convient d'avoir en tte lorsqu'il s'agit d'exprimer
des programmes dans un langage volu (de type impratif)

6.5.1.3 L'excutant-ordinateur dans le cas des langages volus : les instructions pour le
faire agir
A prsent que nous savons dans quel environnement fonctionne cet excutantordinateur, il nous reste prciser les instructions que nous allons pouvoir lui fournir. Elles
sont seulement au nombre de trois :

L'instruction de remplissage d'un casier, qu'on appelle plutt l'instruction


d'affectation. On pourrait l'exprimer sous la forme :
Place telle donne dans tel casier
L'instruction de rception de donnes de l'extrieur ( travers la porte-clavier); on
l'appelle souvent aussi instruction de lecture ou encore instruction d'entre. On
pourrait l'exprimer sous la forme :
Va la porte, attends la donne qu'on va t'y fournir et place la dans tel casier

CeFIS-FUNDP

Ch. Duchteau

139

Les langages de programmation

Initiation l'informatique

parfois condense en :

Lis et place dans tel casier


L'instruction d'affichage pour l'extrieur ( travers la fentre-cran); on l'appelle
souvent aussi instruction de sortie. On pourrait l'exprimer sous la forme :

Affiche la fentre telle(s) donne(s)


Il reste prciser ce que recouvrent dans deux de ces instructions les termes "telle
donne". Une donne pourra tre crite comme :

une constante, comme dans


Place 1 dans (le casier) Total
ou
Affiche 'Bonjour'
On notera que les constantes de type chane de caractres s'crivent entoures
d'apostrophes comme 'Bonjour'. Pourquoi cela pensez-vous ?

le nom d'un casier (c'est videmment le contenu qui est alors dsign), comme
Place (copie du contenu de) Somme dans (le casier) Total
ou

Affiche (copie du contenu du casier) Message


le rsultat fourni par un des outils disponibles (ce qu'on appellera une expression)
Place (copie du contenu de) Somme + 1 dans (le casier) Somme
ou
Affiche (copie du contenu de) Somme - (copie du contenu de) Total
Il faut bien noter les lments suivants :
-

dans une instruction d'affectation, l'ancien contenu du casier (= de la variable) est


remplac par la donne qu'on fait placer dans le casier; l'ancien contenu est perdu;

comme le montrent les exemples ci-dessus, chaque fois qu'on mentionne un casier dans
la description d'une donne, ce casier sera seulement consult et copie de son contenu
sera prise; un casier consult n'est donc pas vid de son contenu.

140

Voici titre d'illustration la manire dont ces actions, dcrites ici de manire
mtaphorique, s'expriment dans deux langages de programmation connus, BASIC
d'une part, PASCAL de l'autre :

Affectation

En PASCAL s'crit :=

En BASIC s'crit =

Place 1 dans Compteur


Place Total / N dans Taux

Compteur := 1
Taux := Total / N

Compteur = 1
Taux = Total / N

Lecture

En PASCAL1 : readln

En BASIC : input

Lis et place dans Nom

readln(Nom)

input Nom

Affichage

En PASCAL : write

En BASIC : print

Affiche 15
Affiche Total / N

write(15)
write(Total / N)

print 15
print Total / N

Rappelons bien qu'il ne s'agit pas ici d'tre complet propos de la description des langages envisags : ils
sont l seulement titre d'illustration du propos.
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

6.5.1.4 L'excutant-ordinateur dans le cas des langages volus : les conditions


Nous venons de voir que nous pourrions commander l'excutant-ordinateur diverses
actions. Nous pourrons galement faire figurer dans les programmes des conditions qu'il sera
capable de tester. Ce seront toujours des comparaisons de donnes permises par les outils dj
cits, comme >, <, =, , , . Ainsi :
Somme < Total,
Nom = 'Dupont',
Compteur 10
...
Enfin des conditions plus labores pourront tre construites grce aux mots ET et
OU :
(Nom = 'Dupont') ET (Age 25)
(Compteur 10) OU (Somme / 2 0)
La dernire chose qui vaut la peine d'tre ajoute en ce qui concerne l'excutantordinateur, c'est que c'est un "robot" parfaitement amnsique : sa seule "mmoire", tout
instant, c'est le contenu des casiers dont il dispose. Je ne pourrai lui parler, travers les
langages volus, qu' l'impratif prsent.

6.5.2 L'organisation des donnes traiter et la manire de les dsigner, en langage


volu impratif
On l'aura compris avec la description image qui prcde, on est compltement
affranchi du concept de cellule mmoire. Le concept pertinent dans le contexte des langages
volus impratifs est celui de variable (casier).
Les donnes manipules sont places dans des variables; ces dernires sont
caractrises par leur nom (choisi par le programmeur, avec des contraintes syntaxiques
imposes par le langage), par leur type (li au genre de donnes qui pourront y prendre place)
et enfin par leur contenu (la donne contenue au sein de la variable, on dit aussi la valeur de
celle-ci).
Ce contenu peut tre modifi (par les instructions d'affectation ou de lecture), mais tout
moment il est unique : une variable n'a, chaque instant, qu'une seule valeur mais cette valeur
peut tre modifie.
On imagine bien qu'videmment, en dessous de chaque variable se cache une ou
plusieurs cellules de mmoire. Mais il n'est plus pertinent de raisonner en terme de cellule : on
utilisera les variables ncessaires au traitement de la tche qu'on veut programmer en
prcisant pour chacune son nom et son type.
Ce concept de variable (et l'instruction d'affectation qui en permet l'usage) est
absolument central dans les langages volus impratifs; on appelle parfois ces derniers des
langages variable et affectation.

6.5.3 Les oprations permises sur les donnes et la manire d'exprimer ces
oprations, en langage volu
C'est ici que la distance avec les langages machine ou d'assemblage et avec les
possibilits relles du processeur est la plus marque.
Trois instructions de base caractrisent les langages volus impratifs :

l'affectation : c'est l'instruction par laquelle on place une donne dans un casier. Ce
qui fait la vritable porte de cette instruction, c'est ce qui se cache ici derrire ce que
nous appelons "donne" : ce peut tre une constante, la copie du contenu d'une autre

CeFIS-FUNDP

Ch. Duchteau

141

Les langages de programmation

Initiation l'informatique

variable ou encore une expression faisant intervenir des constantes, des variables et
des oprations plus ou moins sophistiques.
On devine qu'une simple affectation note
Place Somme + X dans Somme
va dboucher, lorsqu'on aura la traduire en une srie d'instructions en langage
machine pour le processeur, sur un grand nombre de ces instructions :
o

celles qui iront chercher les contenus des cellules correspondant la variable
Somme (c'est en gnral plusieurs cellules, 2 classiquement pour une variable
de type entier), pour les disposer successivement dans le registre de donnes du
processeur;

celles qui feront de mme pour la variable X en ajoutant successivement les


contenus des cellules ramenes celui du registre;

celles qui iront replacer dans les cellules correspondant Somme les rsultats
des additions effectues.

Mais, de tout cela, le langage volu permet de ne plus se proccuper : on se


contentera de demander que soient disponibles les deux variables Somme et X de type
entier puis on pourra simplement crire Somme := Somme + X, si l'on utilise Pascal ou
Somme = Somme + X si l'on s'exprime en Basic.
Les outils de manipulation disponibles varient videmment d'un langage l'autre, la
manire de noter ces oprations varie galement, mais on trouve de manire classique :
o

en ce qui concerne les nombres : des oprations ou des outils "simples" comme
addition, multiplication, soustraction, division, gnration d'un nombre
alatoire, valeur absolue, reste de la division entire, puissance,... et quelques
fonctions plus sophistiques comme les fonctions trigonomtriques (sinus,
cosinus,...), les fonctions trigonomtriques inverses (arc sinus, ...), les
logarithmes, etc.;

en ce qui concerne les caractres, un outil permettant de leur associer le


nombre qui les code dans le code ASCII (ou ANSI) et inversment un outil
passant d'un nombre (entre 0 255) au caractre qu'il code; on trouvera aussi
des outils permettant de passer au successeur ou au prdcesseur d'un caractre
donn;

en ce qui concerne les chanes (successions) de caractres de nombreux outils


sophistiqus permettant par exemple :
+
+
+
+
+

de chercher si une chane est prsente au sein d'une autre (et partir
d'o),
de fournir la longueur d'une chane,
de recoller des chanes,
d'insrer une chane au sein d'une autre partir d'un endroit prcis,
etc.

l'instruction de lecture ou d'entre permet de saisir une donne partir d'un des
priphriques d'entre pour la faire placer dans une variable (d'un type adapt la
donne reue)
L'exemple simplifi d'unit centrale dcrit plus haut n'avait pas permis d'illustrer le mcanisme
des entres/sorties et donc la gestion des priphriques. Ceci nous entranerait beaucoup trop

142

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

loin, comme par exemple devoir prsenter les interruptions. On se doute bien que dans la
ralit des instructions permettent d'amener en mmoire des donnes reues sur un
priphrique d'entre et l'inverse, d'envoyer sur un priphrique de sortie des contenus de
cellules mmoire.

Nous avons dj indiqu plus haut que cette instruction d'entre qui provoque la
lecture d'une donne partir du clavier s'nonce readln en Pascal et input en Basic.

l'instruction d'affichage ou de sortie permet d'envoyer sur un priphrique de sortie


une donne (constante, contenu de variable ou expression);
pour un affichage l'cran, cette instruction s'nonce write (ou writeln) en Pascal et
print en Basic.

Retenons en tous cas que, en ce qui concerne les oprations de manipulation des
donnes (ceux qui permettent d'crire ce que nous avons appel les expressions), ils sont
nombreux et sophistiqus dans les langages volus et terriblement loigns des possibilits
du processeur.

6.5.4 Les manires d'organiser l'excution des instructions commandes, en


langage volu
C'est ce troisime lment qui va donner naissance aux deux familles de langages
volus : langages go to et langages structurs.
6.5.4.1 Les langages go to
Il y a d'abord les langages volus restant relativement proche des modes
d'organisation du langage machine (et du langage d'assemblage), bas sur le droulement
squentiel, le branchement et le branchement conditionnel : ce sont les langages go to (ou
label);
Les langages go to proposent les modes d'organisation suivants :

la squence : les instructions sont excutes la suite l'une de l'autre (comme en


langage machine ou en langage d'assemblage);

le branchement : une instruction de branchement rompt le droulement squentiel en


envoyant une autre instruction du programme; elle prend gnralement la forme
suivante : go to label, o label est un numro (ou un symbole) qui prcde l'instruction
o l'on veut "sauter"
ainsi :
... ... ...
23

... ... ...


... ... ...
... ... ...
go to 23

le branchement conditionnel : le saut est ici conditionn par la vrification d'une


condition; lorsque la condition nonce est vrifie, le saut command est effectu,
sinon le droulement se poursuit normalement l'instruction suivante (de manire
similaire ce qui se passait avec les branchements conditionnels en langage
machine) :
... ... ...

CeFIS-FUNDP

Ch. Duchteau

143

Les langages de programmation

condition non
vrifie

Initiation l'informatique

if condition then go to 30
condition
vrifie

... ... ...


... ... ...
30

... ... ...

6.5.4.2 Les langages structurs


Ce sont des langages volus proposant des modes d'organisation du droulement des
programmes plus sophistiqus et qui ne sont plus du tout calques sur ce que permet le
langage machine ou sur le fonctionnement du processeur.
Ces langages structurs proposent des structures d'organisation comme

la rptition , par exemple sous l'un des formes


RPTER
... ... ...
... ... ...
JUSQU' CE QUE condition
suite

TANT QUE condition FAIRE


... ... ...
... ... ...
suite

ou

SI condition ALORS
... ... ...
... ... ...
SINON
... ... ...
... ... ...
suite

l'alternative , par exemple exprime par :


SI condition ALORS
... ... ...
... ... ...
suite

ou

l'appel de procdure , qui prend la forme


ou
... ... ...
... ... ...
INSTRUCTION COMPLEXE
RFRANT UN
PROGRAMME ANNEXE

... ... ...

PROGRAMME ANNEXE
EXPLICATIF (PROCEDURE)
... ... ...
... ... ...
... ... ...
... ... ...

et, bien entendu, la squence (ou l'organisation squentielle)

6.5.4.3 Les conditions


On a pu constater que, quelle que soit la famille considre, un concept important y
apparat, celui de condition (par exemple au sein des branchements conditionnels, des
rptitions, des alternatives).

144

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

Ce concept de condition a dj t abord page 141 dans la description de l'excutantordinateur. Il prend toute sa porte quand on sait qu'il sera essentiellement utilis au sein des
structures organisationnelles.
Une condition sera toujours constitue d'une ou de plusieurs comparaisons de
donnes (par <, >, =, etc.); dans ce dernier cas, les comparaisons pourront tre lies par les
mots ET ou OU. Le mot NON pourra galement tre employ pour exprimer aisment le
contraire (ngation) d'une condition. L'essentiel est qu'on puisse dcider au moment o elle
est value que la condition est vraie (vrifie) ou fausse (non vrifie).
C'est rellement la condition qui donne sens aux branchements conditionnels, aux
rptitions et aux alternatives qui en font usage.

6.5.5 Les langages " go to"


Comme tous les langages volus impratifs, ils mettent en avant le concept de
variable et les trois instructions d'affectation, d'entre et de sortie.
L'organisation du droulement fait usage de la squence, du branchement et du
branchement conditionnel.
Il est un mode de reprsentation des programmes exprims dans les langages go to
qui permet d'en percevoir plus aisment la structure : l'organigramme ou l'ordinogramme.
Les instructions ordinaires (affectation, entre, sortie) y sont enfermes dans des
rectangles, les conditions dans des losanges et la squence ou les branchements y
transparaissent dans les flches liant ces entits.
Voici titre d'exemple un tel organigramme, accompagn de l'expression
correspondante dans un langage go to :

la squence est marque par les flches

et exprime par la succession;

condition 2

les branchements conditionnels sont reprsents par

accompagns des flches qui font sauter ailleurs dans l'organigramme; ils s'expriment
par l'instruction if condition then go to label (note en rouge sur le schma qui suit);

les instructions sont enfermes dans des rectangles;

les branchements sont rendus par les flches et traduits par les instructions go to label
(nots en bleu, sur le schma).
On notera que de plus toutes les instructions du programme sont numrotes.
En ralit, seules les instructions vers lesquelles des sauts sont effectus sont tenues de
porter un label (numro ou symbole) pour qu'on puisse y rfrer lors des sauts commands
par les branchements et branchements conditionnels.

CeFIS-FUNDP

Ch. Duchteau

145

Les langages de programmation

10 instruction 1

Initiation l'informatique

instruction 1

20 instruction 2

Branchement
conditionnel

instruction 2

30 if condition 1 then go to 100

condition 1

F
40 instruction 3

instruction 3
Branchement
conditionnel

50 if condition 2 then go to 40

Branchement

condition 2

60 instruction 4

instruction 4

70 if condition 3 then go to 10

condition 3

Branchement
conditionnel

F
80 instruction 5

instruction 5

90 go to 10

100 instruction 6

instruction 6

Figure 6-8 : organigramme et programme correspondant dans un langage go to

6.5.6 Les langages structurs


Les instructions organisant le droulement du programme sont ici plus nombreuses :
squence, rptition, alternative, appel de procdure.
Ici aussi, un mode de reprsentation graphique permet de visualiser aisment
l'organisation commande par ces instructions organisatrices : les graphes de NassiSchneidermann (GNS). On y reprsente :

146

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

la squence :
instruction;
instruction;
instruction;

la rptition
rpter
... ...
jusqu' ce que ...

ou
tant que ...faire
... ...

ou
R
E
P
E
T
E
R

TANT QUE condition


F
A
I
R
E

jusqu' ce que condition

l'alternative
condition

si ... alors
... ...

sinon
... ...

l'appel de
procdure

Procdure annexe
INSTRUCTION
COMPLEXE (et
rfrence une procdure
annexe)

Bien entendu, ces structures peuvent tre imbriques : par exemple au sein d'une
rptition, on trouve une alternative, au sein de laquelle figure un appel de procdure, etc..
Voici titre d'exemple un tel GNS, dans lequel figurent des instructions d'affectation
et de sortie :

CeFIS-FUNDP

Ch. Duchteau

147

Les langages de programmation

Initiation l'informatique

Place 0 dans Compteur


Place 0 dans CompteurDeSix
R
E
P
E
T
E
R

Place un nombre au hasard entre 1 et 6 dans Resultat


Resultat = 6 ?
V

Place CompteurDeSix +1 dans


CompteurDeSix

Place 0 dans CompteurDeSix

Place Compteur + 1 dans Compteur


jusqu' ce que CompteurDeSix = 3

Affiche Compteur
Figure 6-9 : exemple de GNS
On notera l'imbrication des diverses structures : au sein d'une squence, on trouve une
rptition; au sein de cette dernire, on trouve une squence qui comporte une alternative,
etc.

Que fait faire le programme ci-dessus ? Que fournit-il ? Que fait-il simuler ?

6.5.7 Un exemple
Nous allons prsent, titre d'illustration, programmer une tche simple, en langage
volu, go to d'une part, structur d'autre part. La tche consiste lire une srie de nombres
rels puis fournir d'une part la moyenne de tous les nombres lus strictement positifs et,
d'autre part, la moyenne des nombres strictement ngatifs.
Remarquons au passage que la tche considre est parfaitement anodine et qu'elle ne
demanderait gure d'invention ou d'intelligence pour tre mene bien. Tout change
videmment lorsqu'il s'agit de la faire faire par l'excutant-ordinateur, dcrit pages 137 et
suivantes.

6.5.7.1 Recherche d'une stratgie


On voit assez clairement que les actions seront les mmes pour chacun des nombres
traiter :

on lit la donne traiter


si elle est strictement positive
on la compte parmi les positives et on l'ajoute la somme des positives
sinon, si elle est strictement ngative (les nulles sont donc ignores)
on la compte parmi les ngatives et on l'ajoute la somme des ngatives
Notons que les moyennes ne seront calcules que tout la fin; ce qui sera ajust chaque
fois qu'une donne est lue, c'est la somme et le nombre de donnes (positives ou ngatives).

et on recommence avec la donne suivante


une fois les donnes toutes traites, on calcule et on affiche la moyenne des positives
(sur base de la somme des positives et du nombre de positives) puis on calcule et on
affiche la moyenne des ngatives (sur base de la somme des ngatives et du nombre de
ngatives)

On devine que la lecture et le traitement des diverses donnes seront donc rpts par
l'excutant-ordinateur; mais il subsiste une questions centrale : comment signaler ce mme
148

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

excutant que la succession des nombres traiter est termine. Entre humains, celui qui
fournirait les nombres se contenterait d'indiquer, une fois le dernier trait, "c'est fini".
Mais ici, la rptition que nous commanderons va chaque fois demander
l'excutant de lire un nombre rel. Pas question, lorsqu'il reviendra une n-ime fois lire un rel
(fourni au clavier par l'utilisateur) de subitement lui fournir "fin" ou "c'est fini" ou toute autre
donne qui ne soit pas un rel.
Nous allons ds lors utiliser un "tour de main" bien connu en programmation : nous
demanderons l'utilisateur de terminer sa liste de nombres rels par la fourniture d'un nombre
rel particulier qui servira seulement signaler que c'est termin. Cette donne "bidon" est de
mme nature (relle) que les vraies donnes, mais elle vient la fin et ne compte pas : ce n'est
pas une donne prendre en compte, elle est seulement l pour arrter le processus.
Cette donne bidon, nous la ferons pralablement choisir par l'utilisateur et lui
demanderons donc de la fournir avant que la lecture de la srie des donnes ne commence. On
arrtera les traitements lorsque la donne (finalement) fournie sera identique la donne
bidon pralablement prcise.
Nous aurons de cette manire la condition d'arrt : lorsque la donne lue sera identique
la donne bidon (qu'on retiendra, bien entendu).
6.5.7.2 La liste des variables ncessaires
Le concept de base au sein des langages volus est celui de variable : il nous faut
dcider, sur base de la stratgie mise en lumire, quelles seront les variables, leur type et leur
utilit :
Donnee

de type rel

Bidon

de type rel

CompteurDesPositifs de type entier


CompteurDesNegatifs de type entier
SommeDesPositifs

de type rel

SommeDesNegatifs

de type rel

qui contiendra successivement chacune des


donnes lues
qui contiendra la donne bidon fournie par
l'utilisateur au dbut du processus; c'est
lorsque la donne lue (et contenue dans
Donnee) sera identique Bidon que la srie de
nombres sera considre comme termine
qui contiendra le dcompte des donnes
strictement positives qui auront t lues
qui contiendra le dcompte des donnes
strictement ngatives qui auront t lues
qui contiendra la somme des nombres
strictement positifs
qui contiendra la somme des nombres
strictement ngatifs

On pourrait s'tonner de la manire d'crire (sans espace et sans accent) les noms des
variables; les langages volus mettent des contraintes sur les manires de dnommer les
variables : beaucoup n'admettent pas l'espace ou le tiret au sein des noms de variables et
refusent les lettres accentues et autres cdille.

6.5.7.3 Expression du programme dans un langage go to : un premier essai


On le verra dans la suite, les langages go to ont t parmi les premiers langages volus et
ont prcd les langages structurs.
La dmarche suivie ici ne rend pas compte des pratiques de programmation de l'poque o
l'on se lanait en gnral dans l'criture du programme sans avoir bien rflchi la stratgie,

CeFIS-FUNDP

Ch. Duchteau

149

Les langages de programmation

Initiation l'informatique

et sans avoir dress la liste des variables ncessaires. La plupart des langages go to ne
demandaient d'ailleurs pas qu'on dclare la liste des variables qui allaient tre utilises au
sein du programme : quand une variable devenait ncessaire, on la nommait et on l'utilisait
sans plus de prcaution.
De plus, les noms choisis pour ces variables taient le plus souvent extrmement sibyllins et
souvent sans rapport avec le rle que ces variables allaient jouer au sein du programme : ici,
elles se seraient probablement appeles A, B, ...N, I, ...

On peut proposer, cte cte, l'organigramme et le programme en Basic (dans une


ancienne version de ce langage qui met bien en avant le caractre " go to") :
Place 0 dans SommeDesPositifs

10

SommeDesPositifs = 0

Place 0 dans CompteurDesPositifs

20

CompteurDesPositifs = 0

Place 0 dans SommeDesNegatifs

30

SommeDesNegatifs = 0

Place 0 dans CompteurDesNegatifs

40

CompteurDesNegatifs = 0

Lis et place dans Bidon

50

input Bidon

Lis et place dans Donnee

60

input Donnee

70

if Donnee <= 0 then go to 110

Donnee <= 0
F

Place SommeDesPositifs + Donnee dans SommeDesPositifs


Place CompteurDesPositifs + 1 dans CompteurDesPositifs

Donnee = 0
F

Place SommeDesNegatifs + Donnee dans SommeDesNegatifs


Place CompteurDesNegatifs + 1 dans CompteurDesNegatifs

Donnee <> Bidon

80

SommeDesPositifs =
SommeDesPositifs + Donnee
90 CompteurDesPositifs =
CompteurDesPositifs + 1
100 go to 140

110 if Donnee = 0 then go to 140

120 SommeDesNegatifs =
SommeDesNegatifs + Donnee
130 CompteurDesNegatifs =
CompteurDesNegatifs + 1

140 if Donnee <> Bidon then go to 60

F
Affiche SommeDesPositifs / CompteurDesPositifs

Affiche SommeDesNegatifs / CompteurDesNegatifs

150

Ch. Duchteau

150 print SommeDesPositifs /


CompteurDesPositifs
160 print SommeDesNegatifs /
CompteurDesNegatifs
170 end
CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

Que pensez-vous de cette proposition ? Pouvez-vous tenter de suivre ce que serait


l'excution du programme, si l'utilisateur choisit 100 comme donne bidon, puis qu'il
fournit comme donnes ensuite 10, 2, -5 et 100.
On peut suivre l'volution du contenu des variables au fur et mesure de l'avancement
du programme :

juste avant la premire lecture de la premire donne (en ligne 60 du programme)


SommeDesNegatifs

SommeDesPositifs

CompteurDesNegatifs

CompteurDesPositifs

Donnee

Bidon

???

100

juste avant la lecture de la seconde donne ( 2me passage en ligne 60 du programme)


SommeDesNegatifs

SommeDesPositifs

CompteurDesNegatifs

CompteurDesPositifs

10

Donnee

Bidon

10

100

juste avant la lecture de la troisime donne ( 3me passage en ligne 60 du programme)


SommeDesNegatifs

SommeDesPositifs

CompteurDesNegatifs

CompteurDesPositifs

12

Donnee

Bidon

100

juste avant la lecture de la quatrime donne ( 4me passage en ligne 60 du programme)


SommeDesNegatifs

SommeDesPositifs

CompteurDesNegatifs

CompteurDesPositifs

-5

12

Donnee

Bidon

-5

100

juste avant le test de la ligne 140 qui suivra la lecture et le traitement de la quatrime
donne
SommeDesNegatifs

SommeDesPositifs

CompteurDesNegatifs

CompteurDesPositifs

-5

112

Donnee

Bidon

100

100

on affichera alors comme moyenne : -5 pour les ngatifs (ce qui est correct), mais
112/3 soit 37.33 pour la moyenne des positifs, ce qui est absurde (puisque les donnes
prendre en compte taient 10 et 2).

CeFIS-FUNDP

Ch. Duchteau

151

Les langages de programmation

Initiation l'informatique

Ce premier essai comporte donc malheureusement une grossire erreur : la


comparaison de la donne lue la donne bidon vient trop tard : lorsque la donne lue est
identique la donne bidon, elle est traite exactement comme les vraies donnes alors qu'elle
devrait seulement signaler la fin du processus.
6.5.7.4 Expression du programme dans un langage go to : un second essai
On peut proposer ds lors :
Place 0 dans SommeDesPositifs

10

SommeDesPositifs = 0

Place 0 dans CompteurDesPositifs

20

CompteurDesPositifs = 0

Place 0 dans SommeDesNegatifs

30

SommeDesNegatifs = 0

Place 0 dans CompteurDesNegatifs

40

CompteurDesNegatifs = 0

Lis et place dans Bidon

50

input Bidon

Lis et place dans Donnee

60

input Donnee

if Donnee = Bidon then go


to 160

Donnee = Bidon
F

70

Donnee <= 0
F

80

Place SommeDesPositifs + Donnee dans SommeDesPositifs

Place CompteurDesPositifs + 1 dans CompteurDesPositifs

Donnee = 0
F

Place SommeDesNegatifs + Donnee dans SommeDesNegatifs

Place CompteurDesNegatifs + 1 dans CompteurDesNegatifs

if Donnee <= 0 then go to


120
90 SommeDesPositifs =
SommeDesPositifs +
Donnee
100 CompteurDesPositifs =
CompteurDesPositifs + 1
110 go to 60

120 if Donnee = 0 then go to


60
130 SommeDesNegatifs =
SommeDesNegatifs +
Donnee
140 CompteurDesNegatifs =
CompteurDesNegatifs + 1
150 go to 60

1
Affiche SommeDesPositifs / CompteurDesPositifs
Affiche SommeDesNegatifs / CompteurDesNegatifs

152

Ch. Duchteau

160 print SommeDesPositifs /


CompteurDesPositifs
170 print SommeDesNegatifs /
CompteurDesNegatifs
180 end

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

On notera les lments suivants :

Un certain nombre de variables doivent tre initialises au tout dbut du programme :


on fait placer 0 dans SommeDesPositifs, SommeDesNegatifs,
CompteurDesPositifs CompteurDesPositifs
Il faut bien saisir pourquoi ces initialisations sont ncessaires. Que se passerait-il, si
CompteurDesPositifs contenait au tout dbut 25, par exemple ?

Cette fois, la dernire donne lue, celle qui est identique la donne bidon lue au tout
dbut, n'est plus traite; elle provoque seulement l'affichage des moyennes.
On devine que ds que les organigrammes deviennent un peu longs et comportent de
nombreux branchements conditionnels, le fil du droulement de l'excution devient difficile
suivre. Les branchements et branchements conditionnels transforment le parcours en une
sorte de "jeu de piste" dans lesquels ces branchements et branchements conditionnels
peuvent envoyer d'un endroit n'importe quel autre.

Il subsiste pourtant encore une erreur dans le programme ainsi conu. Voyez
vous laquelle ? Que donnerait l'excution avec une donne bidon qui serait
gale 100 et une suite de donnes lues ensuite qui serait 2, 4, 100 ?

Il est possible que dans la succession des donnes traiter, il n'y ait que des donnes
positives ou que des donnes ngatives. Dans ce cas, la fin du programme, lors du
calcul des moyennes, un problme surviendra cause d'une division par 0. En effet, si,
par exemple, aucune donne strictement ngative n'a t lue, on se retrouve la fin
avec CompteurDesNegatifs qui vaut 0; en effet, on ne passe jamais par les lignes 130
et 140 du programme et CompteurDesNegatifs reste inchang et garde donc la valeur 0
qu'on lui avait donne la ligne 40. Et ds lors, la ligne 170, on commande une
division par 0 en demandant le calcul de SommeDesNegatifs / CompteurDesNegatifs.

Si l'on veut remdier cette erreur, il est indispensable de remplacer la partie encadre
en pointills la fin de l'organigramme prcdent par l'organigramme qui suit.
Il faut bien entendu modifier les lignes 160 et 170 du programme pour y traduire le
morceau d'organigramme rajout.
6.5.7.5 Expression du programme dans un langage go to : troisime et dernier essai
Ne figure ci-aprs que la fin rvise de l'organigramme; le dbut de l'organigramme
prcdent reste valable :

CeFIS-FUNDP

Ch. Duchteau

153

Les langages de programmation

Initiation l'informatique

CompteurDesPositifs = 0

160 if CompteurDesPositifs = 0
then go to 166

F
Affiche SommeDesPositifs / CompteurDesPositifs

166 print "Pas de nombre


positif"

Affiche "Pas de nombre positif"

CompteurDesNegatifs = 0

162 print SommeDesPositifs /


CompteurDesPositifs
164 go to 168

168 if CompteurDesNegatifs =
0 then go to 174

F
Affiche SommeDesNegatifs / CompteurDesNegatifs

Affiche "Pas de nombre ngatif"

170 print SommeDesNegatifs /


CompteurDesNegatifs
172 go to 180

174 print "Pas de nombre


ngatif"
180 end

6.5.7.6 Expression du programme dans un langage structur


Nous disposons dj de la liste des variables. Il nous reste crire le GNS
correspondant au traitement souhait
Place 0 dans SommeDesPositifs
Place 0 dans CompteurDesPositifs
Place 0 dans SommeDesNegatifs
Place 0 dans CompteurDesNegatifs
Lis et place dans Bidon
Lis et place dans Donnee

154

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

TANT QUE Donnee Bidon


Donnee > 0
F
A
I
R
E

V
Place
Donnee
SommeDesPositifs
SommeDesPositifs

F
+
dans

Donnee < 0
V

Place CompteurDesPositifs Place SommeDesNegatifs


+ 1 dans
+ Donnee dans
CompteurDesPositifs
SommeDesNegatifs
Place
CompteurDesNegatifs + 1
dans CompteurDesNegatifs
Lis et place dans Donnee

CompteurDesPositifs = 0
V
Affiche "Pas de donne positive"
Affiche SommeDesPositifs /
CompteurDesPositifs
CompteurDesNegatifs = 0
V
Affiche "Pas de donne ngative"
Affiche SommeDesNegatifs /
CompteurDesNegatifs

Et voici l'expression en Pascal du contenu de ce GNS :


program MOYENNE;
var SommeDesNegatifs, SommeDesPositifs, Donnee, Bidon : real;
CompteurDesNegatifs, CompteurDesPositifs : integer;
begin
SommeDesPositifs := 0;
CompteurDesPositifs := 0;
SommeDesNegatifs := 0;
CompteurDesNegatifs := 0;
readln(Bidon);
readln(Donnee);
while Donnee <> Bidon do
begin
if Donnee > 0 then
begin
SommeDesPositifs := SommeDesPositifs + Donnee;
CompteurDesPositifs := CompteurDesPositifs + 1;
end
else
if Donnee < 0 then
begin
SommeDesNegatifs := SommeDesNegatifs + Donnee;
CompteurDesNegatifs := CompteurDesNegatifs + 1;
end;
readln(Donnee);
end;
if CompteurDesPositifs = 0 then
writeln('Pas de donne positive')
else

CeFIS-FUNDP

Ch. Duchteau

155

Les langages de programmation

Initiation l'informatique

writeln(SommeDesPositifs / CompteurDesPositifs)
if CompteurDesNegatifs = 0 then
writeln('Pas de donne ngative)
else
writeln(SommeDesNegatifs / CompteurDesNegatifs)
end.

On peut sans doute mieux apprcier la diffrence d'expression entre langage " go to"
et langage structur en plaant cte cte les textes des programmes en Basic et en Pascal :
Expression en Basic

10
20
30
40
50
60
70
80

90
100
110
120

130
140
150

160
162
164
166
168
170
172
174
180

156

Expression en Pascal
program MOYENNE;
var SommeDesNegatifs, SommeDesPositifs, Donnee, Bidon:
real;
CompteurDesNegatifs, CompteurDesPositifs : integer;

begin
SommeDesPositifs := 0;
CompteurDesPositifs := 0;
SommeDesNegatifs := 0;
CompteurDesNegatifs := 0;
readln(Bidon);
readln(Donnee);
while Donnee <> Bidon do
begin
if Donnee > 0 then
begin
SommeDesPositifs = SommeDesPositifs + Donnee
SommeDesPositifs := SommeDesPositifs + Donnee;
CompteurDesPositifs = CompteurDesPositifs + 1
CompteurDesPositifs := CompteurDesPositifs + 1;
go to 60
end
if Donnee = 0 then go to 60
else
if Donnee < 0 then
begin
SommeDesNegatifs = SommeDesNegatifs + Donnee
SommeDesNegatifs := SommeDesNegatifs +
Donnee;
CompteurDesNegatifs = CompteurDesNegatifs + 1
CompteurDesNegatifs := CompteurDesNegatifs
+ 1;
go to 60
end;
readln(Donnee);
end;
if CompteurDesPositifs = 0 then
if CompteurDesPositifs = 0 then go to 166
writeln('Pas de donne positive')
print SommeDesPositifs / CompteurDesPositifs
else
go to 168
writeln(SommeDesPositifs / CompteurDesPositifs)
print "Pas de nombre positif"
if CompteurDesNegatifs = 0 then
if CompteurDesNegatifs = 0 then go to 174
writeln('Pas de donne ngative)
print SommeDesNegatifs / CompteurDesNegatifs
else
go to 180
writeln(SommeDesNegatifs / CompteurDesNegatifs)
print "Pas de nombre ngatif"
end.
end
SommeDesPositifs = 0
CompteurDesPositifs = 0
SommeDesNegatifs = 0
CompteurDesNegatifs = 0
input Bidon
input Donnee
if Donnee = Bidon then go to 160
if Donnee <= 0 then go to 120

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

6.5.8 Compilateur ou interprteur


Les programmes crits en langage volu (on dit aussi "langage de haut niveau", par
opposition aux langages d'assemblage qui sont de "bas niveau") doivent tre traduits pour
donner naissance leurs correspondants en langage machine.
6.5.8.1 L'avantage des langages volus
Outre le fait que les langages de haut niveau offrent des possibilits d'expression qui
sont plus proches des manires dont l'tre humain envisage les traitements d'informations, il
faut signaler qu'ils permettent au programmeur de s'affranchir compltement du type de
machine (de processeur) qui finira par effectuer les traitements commands.
On crit un programme en PASCAL ou en BASIC (ou dans tout autre langage volu)
de la mme manire quel que soit l'ordinateur qui excutera les indications de traitement
fournies. Le programme source (crit dans le langage volu) est donc indpendant des
caractristiques particulires du processeur que la version traduite du programme
commandera. On peut reprsenter ceci par :
Programme source
(dans tel langage
volu)
Traduction pour
tel processeur

Traduction pour
tel autre processeur

Expression en langage
machine pour le
processeur concern

Expression en langage
machine pour l'autre
processeur concern

Processeur 2

Processeur 1

Figure 6-10 : traduction d'un programme source unique

Bien videmment, le processus de traduction (et donc le programme de traduction


correspondant) qui doit gnrer des instructions dans le langage machine de tel processeur
particulier est, lui, adapt ce processeur. Mais de ce processus et des caractristiques du
processeur, le programmeur n'a pas se soucier.
6.5.8.2 Une mtaphore pour le processus de traduction
Imaginons un instant que je dispose de la recette de la blanquette de veau, rdige en
franais, mais que, par malchance, le cuisinier qui je veux la confier, pour la prparation du
plat correspondant, soit espagnol. J'ai le choix de deux stratgies pour arriver faire prparer
le plat par ce cuisinier espagnol, sur base de la recette exprime en franais : je peux, d'une
part, faire appel un traducteur ou, d'autre part, faire appel un interprte.
6.5.8.2.1 Caractristiques du travail avec un traducteur
Sur base du texte en franais de la recette que je lui remettrai, le traducteur va produire
puis me rendre le texte en espagnol de la recette. C'est ce texte en espagnol que je vais donner
au cuisinier espagnol pour qu'il excute ce qui y est expliqu. Je garderai videmment
CeFIS-FUNDP

Ch. Duchteau

157

Les langages de programmation

Initiation l'informatique

prcieusement et le texte de la recette en franais et sa traduction en espagnol. Le texte en


franais me servira par exemple, tant que je ne serai pas content du plat confectionn. Si par
exemple, le plat est trop sal, il me faudra corriger la recette (en franais, celle en espagnol je
ne la comprends pas), aller retrouver le traducteur, lui fournir la recette modifie en franais,
reprendre la recette modifie en espagnol, la rendre au cuisinier... et attendre le nouveau
rsultat. videmment, aprs quelques allers et retours chez le traducteur et lorsque le rsultat
sera satisfaisant, je garderai par prudence la recette en franais (ne serait-ce que pour le cas o
je tomberais un jour sur un cuisinier d'une autre nationalit), mais c'est celle en espagnol (la
dfinitive) qui me servira chaque fois que je voudrai faire confectionner le plat par le
cuisinier espagnol. Bien entendu, si demain le cuisinier devient polonais, c'est d'un autre
traducteur que j'aurai besoin, mais l je pourrai fournir directement la bonne recette en
franais et obtenir directement la bonne recette en polonais.
6.5.8.2.2 Caractristiques du travail avec un interprte
Entre moi, disposant de la recette en franais, et le cuisinier espagnol, j'amnerai un
interprte franais-espagnol. Instruction aprs instruction je lirai la recette en franais,
l'interprte les rptera en espagnol et chaque fois le cuisinier excutera le mini-travail
correspondant. Ici, la recette sera traduite par petit bouts qui seront immdiatement excuts.
Traduction et excution sont mlanges. Je ne disposera aucun moment de la recette en
espagnol. Mme la centime fois que je ferai prparer la blanquette de veau, il me faudra
amener l'interprte espagnol ct du cuisinier espagnol et recommencer tout le processus.
Sans la prsence active de l'interprte je ne peux rien faire.
Le seul point positif, c'est que la mise au point de la recette sera plus ais.
Psychologiquement, a me paratra moins fastidieux de recommencer immdiatement le
processus traduction-excution que de faire le dtour par le travail d'un traducteur, lors des
diverses mises au point qui pourraient tre ncessaires.
6.5.8.2.3 La comparaison traduction-interprtation
Avec le traducteur

Avec l'interprte

Je disposerai aprs traduction de la recette


en franais et de son quivalent en
espagnol

Je n'aurai jamais la recette en espagnol,


seulement la recette en franais

La traduction doit tre faite avant


l'excution; elle en est bien distincte

Traduction (interprtation) et excution


sont intimement mles

Le traducteur ne doit pas tre prsent au


moment de l'excution

L'interprte doit tre prsent chaque


excution de la recette (qui existe
seulement en franais)

L'excution de la recette (en espagnol) est


rapide : on est dbarrass du problme de
traduction

L'excution-traduction est plus lente :


chaque instruction doit tre traduite; pire,
si par hasard une instruction est rpte
plusieurs fois dans le texte en franais, elle
sera chaque fois traduite en espagnol
avant d'tre excute

La mise au point de la recette est plus


La mise au point parat moins lourde; en
fastidieuse puisque chaque fois qu'un
ralit l'quivalent du temps mis par le
nouvel essai doit tre fait, il faut faire
traducteur est ici dcoup en petits
retraduire l'ensemble de la recette; les
intervalles de temps passs
allers et retours chez le traducteur, suivi de
l'interprtation de chaque instruction de la
158

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

l'excution-test sont laborieux

recette

L'idal consiste employer un interprte pendant toute la phase de mise au point o la


recette est teste. Lorsque la recette est correcte, on la fait traduire et, partir de ce moment,
c'est avec la recette en espagnol qu'on va chaque fois trouver le cuisinier.
6.5.8.3 Compilateur et interprteur
Le rle du traducteur est ici endoss par un programme de traduction, un programme
compilateur; celui de l'interprte par un programme interprteur.
La recette, c'est ici le programme en langage volu; le cuisinier espagnol, c'est le
processeur; le traducteur, c'est un programme compilateur; l'interprte, c'est le programme
interprteur.
Un compilateur donc est un programme de traduction qui sur base d'un programme
crit dans tel langage volu va gnrer l'quivalent en langage machine de tel processeur. Le
programme compilateur est videmment crit dans le langage du processeur, langage vers
lequel il traduit par ailleurs les programmes crits dans le langage volu considr.
A la fin de la compilation, c'est dire de la traduction automatique du texte en langage
volu vers le langage machine, on dispose donc du programme en langage machine. On
appelle gnralement programme source le texte en langage volu et programme objet le
programme en langage machine, rsultat de la traduction effectue par le compilateur.
L'interprteur est galement un programme de traduction, mais le travail se droule
alors comme suit :

sous le contrle du programme interprteur, le processeur traduit une instruction du


programme source en la srie d'instructions correspondantes en langage machine;

la main est passe ce petit bout de programme, rsultat de la traduction : les diverses
instructions sont excutes;

la main est repasse au programme interprteur; ce dernier fait effectuer la traduction


de l'instruction suivante du programme source;

etc..

Les petits bouts de programme en langage machine rsultant du travail de l'interprteur


n'existent que le temps d'tre excuts. Jamais on ne disposera de l'ensemble du programme
en langage machine.
On peut comparer les deux manires de procder :
Le compilateur

L'interprteur

Dans le cas de l'expression d'un traitement dans un langage volu, une traduction vers le
langage machine est indispensable. C'est l'ordinateur lui-mme qui s'en charge, gouvern par
un programme compilateur ou par un programme interprteur.
Compilateur et interprteur sont donc deux programmes faisant effectuer la traduction par
l'ordinateur. Ils permettent au programmeur de s'affranchir compltement des caractristiques
de l'ordinateur sur lequel le programme finira par tourner.
Avec le compilateur, on dispose ct du
programme source (texte en langage
volu) d'un programme objet (en langage
machine).

CeFIS-FUNDP

Avec l'interprteur, seul le programme


source existe; il n'y a pas gnration
globale d'un programme en langage
machine.

Ch. Duchteau

159

Les langages de programmation

Initiation l'informatique

La phase de compilation du programme


Traduction (interprtation) et excution
doit prcder l'excution : c'est le
sont intimement mles : une instruction
programme source qui est compil
est traduite puis les instructions en langage
(traduit), c'est le programme objet rsultant
machine gnres par cette traduction sont
qui est excut.
excutes, puis on passe l'instruction
suivante...
Le compilateur est inutile au moment de
l'excution; une fois le programme objet
(excutable) obtenu, c'est ce programme
objet qui sera utilis chaque excution.

L'interprteur est indispensable chaque fois


qu'on veut faire excuter le programme
source.

L'excution de la version compile est


rapide.

L'excution-traduction est plus lente :


chaque instruction doit tre traduite; pire,
si on passe plusieurs fois par une
instruction lors de l'excution, elle sera
chaque fois traduite par l'interprteur avant
que les instructions correspondantes en
langage machine soient excutes.

La mise au point du programme est plus


fastidieuse puisque chaque fois qu'une
modification est apporte au texte, il faut
faire retraduire l'ensemble du programme.
Lors de la compilation, les erreurs de
syntaxe prsentes dans le texte du
programme sont signales et doivent tre
corriges; c'est seulement lorsque la
compilation va son terme qu'on dispose
du programme objet. Si ce dernier
comporte des erreurs, il faut modifier le
programme source et reprendre le
processus.

La mise au point parat moins lourde avec


un interprteur ; en ralit l'quivalent du
temps mis par le compilateur est ici
dcoup en petits intervalles de temps
passs l'interprteur pour la traduction de
chaque instruction du programme en
langage volu.

Le programme compilateur est en gnral


plus important et plus complexe
concevoir qu'un programme interprteur.

Le programme interprteur est moins


important et moins complexe concevoir
qu'un programme compilateur.

6.5.9 Quelques langages volus impratifs


Les langages volus que nous venons d'utiliser : BASIC d'une part, comme
reprsentant des langages impratifs " go to", PASCAL d'autre part, comme prototype des
langages structurs, ne sont que deux des nombreux langages volus existant.
Comme dj signal, c'est une version ancienne du langage Basic qui a t utilise ici. De
plus, on n'a retenu que les traits des deux langages qui permettent de bien mettre en
vidence et d'opposer l'approche " go to" et l'approche structure. Ainsi, PASCAL comporte
une instruction "go to" et BASIC, mme dans l'ancienne version retenue ici, possdait la
structure d'appel de procdure.

6.5.9.1 Les anctres : FORTRAN


Le premier langage de haut niveau apparu dans l'histoire de la programmation des
ordinateurs et qui soit toujours disponible (bien entendu sous une forme bien plus volue que

160

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

l'original) fut FORTRAN (Mathematical FORmula TRANslating System). Il fut dvelopp


par une quipe de programmeurs de IBM partir de 1955 et disponible ds avril 1957. La
version initiale eut bien des descendants : FORTRAN III en 1958, FORTRAN IV en 1962,
FORTRAN 77, FORTRAN 90 et, le dernier n FORTRAN 95.
Les premires versions de FORTRAN mettaient en avant l'organisation l'aide du
GO TO; les dernires versions implmentent l'organisation des langages structurs
(alternative, TANT QUE,...).
FORTRAN a t le langage de la programmation scientifique pendant prs de 50 ans.
De nombreuses librairies de programmes ont t dveloppes en FORTRAN et sont toujours
utilises.
6.5.9.2 Les anctres : COBOL
Avec l'adoption des ordinateurs par le monde des affaires et des entreprises est apparu
le besoin d'un langage volu adapt aux problmes de gestion. Ce fut le COBOL (COmmon
Business-Oriented Language), n en 1960. Il continue tre utilis aujourd'hui.
6.5.9.3 Le prototype du langage structur : PASCAL
Apparu en 1970, il est l'uvre d'un informaticien Suisse, Niklaus Wirth. Ses qualits
"didactiques" l'ont fait adopter comme le langage utilis pour l'apprentissage de la
programmation. Il a t implment sur certains des premiers micro-ordinateurs, ce qui a
contribu rpandre son usage.
6.5.9.4 Le langage popularis par la micro-informatique : BASIC
Acronyme de "Beginner's All Purpose Symbolic Instruction Code" ("code d'instruction
symbolique tous usages pour dbutants"), il est n en 1965. Ce sont des dialectes de ce
langage qui quipaient la plupart des premiers micro-ordinateurs des annes 70 : l'interprteur
BASIC tait souvent disponible dans la ROM de ces micro-ordinateurs qui se trouvaient donc,
de manire native, capables d'excuter les programmes crits en BASIC. Le BASIC du dbut
tait relativement triqu et mettait en avant les structures organisatrices des langages "
go to"; il a ensuite volu pour intgrer les modes d'organisation des langages volus.
6.5.9.5 Et tous les autres
Il y a eu des centaines d'autres langages de haut niveau impratifs: PL1, ALGOL, C,
ADA, pour ne citer que les plus connus. Les derniers arrivs intgrent des approches
"orientes objets", comme C++ ou Java.

6.5.10 Les macros dveloppes au sein des logiciels ( complter)


6.5.11 L'algorithmique
Les langages de haut niveau permettent de s'affranchir compltement des contraintes
de tel ou tel ordinateur ( la diffrence des langages machines ou des langages d'assemblage).
Ils ont permis de mettre l'accent non sur le contrle de tel ou tel ordinateur mais sur des
classes de problmes, traitables par tout ordinateur, condition qu'on veuille bien crire le
programme correspondant.
Une science est ne de ce souhait de faire effectuer des tches par l'ordinateur :
l'algorithmique. On pourrait la dsigner comme l'art et la discipline consistant crer des
"marches suivre" (programmes) destines faire effectuer certaines tches de traitement
d'information par l'excutant ordinateur prsent ci-dessus.
Il y a bien des catgories de tches qui sont redevables de l'algorithmique. Citons par
exemple, pour nous restreindre des classiques :

CeFIS-FUNDP

Ch. Duchteau

161

Les langages de programmation

Initiation l'informatique

toutes les tches de tris, comme par exemple trier une liste de mots par ordre
alphabtique ou trier une srie de nombres;

les problmes de recherche dans une liste : il s'agit de dterminer, par exemple, si un
mot est ou non prsent dans une longue liste de mots, liste trie ou non;

dans le mme ordre d'ide, on peut avoir analyser la tche consistant dterminer si
une chane de caractres fait partie d'une autre chane de caractres; ces algorithmes
permettent par exemple de faire vrifier par l'ordinateur si une chane
"TGCCGTACCTGGTTGCATTGGC" se retrouve ou non au sein d'une chane de
plusieurs dizaines ou centaines de milliers de combinaisons des lettres T, G, A et C; le
problme de la recherche d'un mot au sein d'un texte est videmment tout fait
semblable;

tous les problmes poss au sein de ce qu'on appelle la "thorie des graphes"; un
graphe est, par exemple, une combinaison de sommets et d'arcs joignant ces sommets :
12

11

4
5
5

11

11

13

3
8

13

14

11

8
6

10

4
12

5
Figure 6-11 : un graphe

Dans le graphe prsent ici, les arcs ont tous, par exemple, un certain "poids". On peut
poser les problmes suivants :

trouver tous les couples de sommets qui sont joints par un chemin (succession
d'arcs);

trouver entre deux sommets un chemin (succession d'arcs) de poids minimal (le
poids d'un chemin tant la somme des poids des arcs le composant);

trouver, s'il existe, un chemin parcourant l'ensemble des sommets en ne passant


qu'une seule fois par chacun;

etc.

On peut faire tat de milliers de situations problmes trouvant leur origine dans la
thorie des graphes et ayant donn lieu de nombreuses recherches d'algorithmes.

162

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

6.6

Les langages de programmation

Les langages volus de type logique

Les langages prsents jusqu'ici servent dcrire ce qui sera attendu de l'ordinateur
sous la forme d'une "marche suivre". Les programmes exprims dans ces langages sont
constitus d'ordres : ils s'crivent en quelque sorte " l'impratif". On a donn ce style de
langage de programmation, donc au type de programmes rsultants, le nom de
programmation imprative ou encore de programmation procdurale : on y exprime les
indications de traitement sous la forme d'une succession d'ordres.
Ces langages sont les plus rpandus. Mais il existe, en rponse des problmes
particuliers, d'autres styles de programmation, o les programmes prennent d'autre formes
qu'une succession d'ordres donns un excutant : l'approche logique en est un exemple.

6.6.1 Des faits et des rgles


Un "programme" dans l'approche logique n'a plus rien voir avec ce que nous avons
appel "programme" jusqu'ici. Un programme, ce sera, dans un domaine bien circonscrit,
l'nonc de faits et de rgles (de dduction); l'excution du programme aura toujours pour but
de tenter de rpondre une question en s'appuyant sur les faits et les rgles noncs.
6.6.1.1 Un exemple en gnalogie
Imaginons que nous ayons rendre compte des liens de parents reprsents entre
quelques personnes et rsums dans le diagramme suivant :
Yvonne

Nestor
est pre de
est pre de

Martine

Dominique
est pre de

est pre de

est mre de

est mre de

est mre de

Etienne

Charles
est pre de

Jean-Franois

est mre de

est pre de

Claire

Hlne

Figure 6-12 : gnalogie

Voici exprim en PROLOG, un langage de programmation de type logique, les


quelques faits montrs par le diagramme :
clauses
de_sexe_masculin(charles).
de_sexe_masculin(nestor).
de_sexe_masculin(etienne).
de_sexe_masculin(dominique).
de_sexe_masculin(jean_francois).
de_sexe_feminin(yvonne).
de_sexe_feminin(martine).
CeFIS-FUNDP

Ch. Duchteau

163

Les langages de programmation

Initiation l'informatique

de_sexe_feminin(claire).
de_sexe_feminin(helene).
mere(martine, yvonne).
mere(charles, yvonne).
mere(etienne, yvonne).
mere(jean_francois, martine).

/* yvonne est mre de martine */

pere(charles, nestor).
pere(claire,charles).
pere(helene,charles).
pere(etienne,nestor).
pere(jean_francois,dominique).
pere(martine,nestor).

/* nestor est pre de charles */

La syntaxe utilise se comprend d'elle mme; on notera les commentaires dlimits par
/* */. Il reste donner quelques rgles : ce sont essentiellement celles qui dfinissent des
vocables nouveaux comme parent, frre, sur,...

164

parent(X, Y) if mere(X, Y).


parent(X, Y) if pere(X, Y).

/* Y est parent de X ds que Y est mre de X */


/* Y est parent de X ds que Y est pre de X */

frere(X, Y) if
de_sexe_masculin(Y) and
pere(X, P) and
pere(Y, P) and
mere(X, M) and
mere(Y, M)
X <> Y.

/* Y est frre de X, ds que */


/* Y est de sexe masculin et */
/* P est pre de X et */
/* P est pre de Y et */
/* M est mre de X et */
/* M est mre de Y et */
/* X et Y sont diffrents */

soeur(X, Y) if
de_sexe_feminin(Y) and
pere(X, P) and
pere(Y, P) and
mere(X, M) and
mere(Y, M)
X <> Y.

/* Y est sur de X, ds que */


/* Y est de sexe fminin et */
/* P est pre de X et */
/* P est pre de Y et */
/* M est mre de X et */
/* M est mre de Y et */
/* X et Y sont diffrents */

oncle(X, U) if
parent(X, P) and
frere(P, U).

/* U est oncle de X, ds que */


/* P est parent de X et */
/* U est frre de P */

grand_pere(X, G) if
pere(P,G) and
parent(X,P).

/* G est grand-pre de X, ds que */


/* G est le pre de P */
/* et P est parent de X */

grand_mere(X, G) if
mere(P,G) and
parent(X,P).

/* G est grand-mre de X, ds que */


/* G est la mre de P */
/* et P est parent de X */
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

Techniquement, ce que nous avons dj crit doit tre prcd de l'annonce des divers
prdicats dfinis :
domains
personne = symbol
predicates
de_sexe_masculin(personne)
de_sexe_feminin(personne)
pere(personne,personne)
mere(personne,personne)
soeur(personne,personne)
parent(personne,personne)
frere(personne,personne)
oncle(personne,personne)
grand_pere(personne,personne)
grand_mere(personne, personne)
Voil quoi ressemble un "programme" exprim dans un tel langage de type logique
(ici, il s'agit d'une version dj ancienne de PROLOG).
L'excution d'un tel programme prend la forme de questions que l'utilisateur peut
poser au programme. En voici quelques unes (il est important d'avoir le schma gnalogique
sous les yeux) :
En franais courant

Question au programme

Rponse du programme

Quel est le grand-pre de


Claire ?

Goal : grand_pere(claire, X)

X=nestor
1 Solution

Quels sont les oncles de JeanFranois ?

Goal : oncle(jean_francois,X)

X=charles
X=etienne
2 Solutions

Dominique est-il l'oncle


d'Hlne ?
Quels sont les parents de
Charles ?

Goal : oncle(helene, dominique)

False

Goal : parent(charles, P)

P=yvonne
P=nestor
2 Solutions

Qui est sur de qui ?

Goal : soeur(X,Y)

X=charles, Y=martine
X=etienne, Y=martine
2 Solutions

De qui Yvonne est-elle grandmre ?

Goal : grand_mere(X, yvonne)

X=jean_francois
X=claire
X=helene
3 Solutions

De qui Dominique est-il le frre ? Goal : frere(X, dominique)

No Solution

videmment, comme l'habitude, les questions doivent tre formules avec les termes exacts
utiliss dans le programme; des erreurs ce niveau sont payes comptant :
De qui Martine est-elle grandmre ?

CeFIS-FUNDP

Goal : grandmere(X,martine)
(on a crit grandmere et non
grand_mere, comme il aurait
fallu
Ch. Duchteau

404 Undeclared predicate


(Le prdicat grandmere est
inconnu)
165

Les langages de programmation

fallu.
De qui Dominique est-il le frre ? Goal : frere(X, Dominique)
(on notera la majuscule
Dominique)

Initiation l'informatique

X=etienne, Dominique=charles
X=martine, Dominique=charles
X=charles, Dominique=etienne
X=martine, Dominique=etienne
4 Solutions

Comment s'explique cette dernire raction?


A propos, comment dfiniriez-vous cousin et cousine? demi-frre? petit-fils ?

On aura devin qu'on va pouvoir, propos d'un domaine prcis et bien dlimit,
dcrire les faits et les rgles relevants pour le domaine considr. On peut d'ailleurs faire en
sorte (mais ce n'est pas le propos ici) que le programme-lui-mme pose une srie de questions.
6.6.1.2 Un exemple "zoologique"
Voici titre d'exemple l'excution d'un programme (un rien plus compliqu que celui
sur la gnalogie) et qui nonce faits et rgles dans le domaine de la zoologie. Voici d'abord,
titre anecdotique, quelques extraits de ce programme :
l_animal_est(un_tigre) if
c_est_un(mammifere) and
c_est_un(carnivore) and
positive(a,une_couleur_fauve) and
positive(a,des_raies_sombres).
..........................................

c_est_un(mammifere) if
positive(a,des_poils).
c_est_un(mammifere) if
positive(peut,donner_du_lait).
c_est_un(un_oiseau) if
positive(a,des_ailes).
c_est_un(un_oiseau) if
positive(peut,voler) and
positive(peut,pondre_des_oeufs).
.........................................

et quelques exemples d'excution (en gras, les interventions de l'utilisateur) :


Goal : run
l'animal a des_poils ? non
l'animal peut donner_du_lait ? non
l'animal a des_ailes ? oui
l'animal peut voler ? oui
l'animal peut nager ? non
l'animal peut pondre_des_oeufs ? oui
l'animal peut bien_voler ? oui
Votre animal pourrait tre un_albatros
Goal : run
l'animal a des_poils ? non
l'animal peut donner_du_lait ? oui
l'animal peut manger_de_la_viande ? oui
l'animal a une_couleur_fauve ? non
l'animal a des_dents_pointues? non
l'animal a des_sabots ? non
l'animal peut ruminer ? non
166

Goal : run
l'animal a des_poils ? oui
l'animal peut manger_de_la_viande ? oui
l'animal a une_couleur_fauve ? oui
l'animal a des_taches_sombres ? non
l'animal a des_dents_pointues ? oui
l'animal a des_serres ? non
l'animal peut donner_du_lait ? oui
l'animal a des_raies_sombres ? oui
Votre animal pourrait tre un_tigre
Goal : run
l'animal a des_poils ? oui
l'animal peut manger_de_la_viande ? non
l'animal a des_dents_pointues ? non
l'animal peut donner_du_lait ? oui
l'animal a des_sabots ? oui
l'animal a un_long_cou ? oui
l'animal a de_longues_pattes ? oui
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

l'animal a des_ailes ? non


l'animal peut voler ? non

l'animal a des_taches_sombres ? oui


Votre animal pourrait tre une_girafe

Je ne sais vraiment pas ce qu'est votre animal.

6.6.2 Programmation logique et systmes experts


La programmation logique est l'approche par excellence des systmes experts. Un
systme expert, c'est, dans un domaine donn, un programme qui emmagasine autant que faire
se peut les connaissances des experts humains du domaine considr, sous forme de faits et de
rgles de dduction.
Il y a des centaines, sinon des milliers de systmes experts dans des domaines aussi
varis que la recherche ptrolire, la mdecine, l'entretien des locomotives, la culture des
tomates,...
6.6.2.1 Un exemple de dialogue avec un systme expert de maintenance de locomotives :
RUFUS
Les instructions et les questions de Rufus l'utilisateur apparaissent en caractres
italiques. Les rponses de l'utilisateur (oui, non, ou un chiffre reprsentant une mesure lue par
le dpanneur sur un appareil ou son choix dans le menu des rponses propos par Rufus), en
caractres gras rouge.
1) Quel signalement l'exploitant a-t-il donn ?
La liste des rponses possibles est
0) inconnu
1) motrice_inactive
2) insuffisance_de_traction
3) rhostatique_hs
4) panne_de_porte
5) panne_de_fermeture_gnrale
6) panne_d_ouverture_gnrale
7) panne_locale_de_fermeture
8) panne_de_maintien_fermeture
9) panne_locale-ouverture
10) panne_annonce_dpart
1
2) Quel est le nombre d'lments du train ?
Vous devez rpondre un nombre compris dans [1 3]
1
Mettre la cl de conduite sur CN (conduite normale)
Slectionner un sens de marche.
Commander les disjoncteurs.
Mettre le manipulateur au neutre.
Mettre la cl TE sur HS.
3) Le voyant motrice inactive est-il allum au BS (botier de signalisation) ?
oui
Faire un KIT sur la motrice de tte et regarder le qmtre.
4) Quelle est la position du qmtre ?
Vous pouvez rpondre un nombre quelconque.
1
CeFIS-FUNDP

Ch. Duchteau

167

Les langages de programmation

Initiation l'informatique

La motrice en panne est la motrice de tte.


Se mettre en ESSAI A BLANC.
Mettre la cl test/preuve sur preuve.
Mettre le manipulateur en T5.
5) Le voyant motrice inactive reste-t-il allum au BS ?
non
Mettre la cl test/preuve sur HS.
Mettre le manipulateur au neutre.
Commander les DET.
Slectionner le sens de marche AVANT
6) Les disjoncteurs sont-ils monts ?
non
7) Slectionner une marche arrire.
Les disjoncteurs montent-ils ?
non
8) Commander un essai blanc.
Bien couter le JH.
Le JH a-t-il boug ?
oui
9) Avez-vous entendu le JH faire tout son cycle 0 -> -1, -1 -> 0 ?
(JH = nom de l'arbre cames, du nom de leurs inventeurs).
oui
10) Commander les DET (disjoncteurs).
Bien couter le JH.
Le JH bouge-t-il ?
oui
11) Avez-vous entendu le JH faire tout son cycle 0 -> -1, -1 -> 0 ?
oui
Vrifier que les conditions initiales suivantes sont remplies
* manipulateur au neutre
* sens de marche slectionn
* commande de monte des DET
* KIT en position normale
IL Y A UNE PANNE DE COMMANDE DE MONTEE DES DISJONCTEURS
12) Le fusible 88A est-il ok ?
oui
13) Le fusible 103E-108a est-il ok ?
oui
14) Le relais RCD (relais de commandes du diagnostic) est-il ok ?
oui
La consultation est termine.
Il y a une panne de commande de monte des disjoncteurs.
Il faut contrler le circuit 108B.
6.6.2.2 Un exemple dans le domaine du diagnostic mdical : SPHINX
Voici le dialogue entre le mdecin utilisateur du systme et le systme expert :
U
U
M
M
U
168

Age 63 ans
Glycmie 8 mol/1
le malade est-il vu dans des circonstances particulires
Coma, reanimation, pre-op, grossesse (pour une femme) ?
Non, consultation
Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les langages de programmation

M
U
M
U
U
M
U
M
U
M
U
M
U
M
U
M
U
M
M
M
M
M
M
M
M
M

Sous traitement hypoglycmiant


Oui
Insuline ?
Non
Glucophage 2 cp/j depuis 8 ans
Quel est son poids (% poids idal) ?
95 %
Existe-t-il un facteur de dsquilibre ?
Oui, infection urinaire
Quel est le rsultat de l'acetest ?
Ngatif
Le traitement est-il bien support cliniquement ?
Oui
Le malade prsente-t-il une insuffisance hpatique svre ?
Non
A-t-on dose la cratinine (micromol/1) ?
Oui, 210
CONCLUSIONS
GLYCOREGULATION PERTURBEE
DIABETE LEGEREMENT DESEQUILIBRE
BIGUANIDES CONTRE-INDIQUES, SULFAMIDOTHERAPIE POSSIBLE
THERAPEUTIQUE
ARRETER LE BIGUANIDE
PRESCRIRE 2 cp DE SULFAMIDE FAIBLE/J
REGIME NORMOGLUCIDIQUE
TRAITEMENT DE LA CAUSE DU DESEQUILIBRE

6.7

Le langages volus de type fonctionnel ( complter)

CeFIS-FUNDP

Ch. Duchteau

169

7
... pour autant qu'on lui ait indiqu comment mener bien
ce traitement ...

Le logiciel
7.1

L'architecture logicielle

7.1.1 La dualit matriel-logiciel


Nous savons qu'un ordinateur "nu" (= sans logiciel pour le commander) n'existe
pas :on peut relire cet gard le dbut du chapitre 4 (page 53) et se souvenir du principe
fondamental :
TOUT ce que fait un ordinateur, il le fait gouvern par un programme
C'est dire que la facette logicielle d'un systme informatique est essentielle et mrite
galement d'tre dcrite avec soin.

7.1.2 Le logiciel
Nous dsignerons par ce terme gnral "le logiciel" cette seconde ralit du monde de
l'informatique et des technologies de l'information et de la communication; le monde de
l'informatique est en effet comme une mdaille aux deux faces indissociables : le matriel,
d'une part, le logiciel, d'autre part.
Cette ralit du logiciel n'est videmment pas fige : tout comme les performances du
matriel, le logiciel a volu tant dans l'tendue de ce qu'il permet de raliser que dans les
facilits - on parle de convivialit - qu'il offre aux utilisateurs.

7.1.3 L'architecture logicielle


Le chapitre prcdent montrait comment l'existence et l'volution des langages de
programmation a fourni les outils permettant aux programmeurs de crer des programmes de
plus en plus sophistiqus et complexes.
C'est un tout autre point de vue qui sera mis en avant ici, celui du "consommateur" de
logiciels : l'utilisateur. Mais exactement comme nous avons parl d'architecture propos du
matriel, nous prsenterons en quelque sorte l'architecture logicielle d'un systme
informatique : quels sont les logiciels prsents dans l'unit centrale et quels sont leurs rles
respectifs pendant une session de travail " l'ordinateur".

CeFIS-FUNDP

Ch. Duchteau

171

Le logiciel

Initiation l'informatique

Ainsi, par exemple, lors de l'utilisation du logiciel de traitement de texte Word "sous"
Windows sur un PC, on peut imaginer l'intrieur de la mmoire centrale comme constitu
d'une srie de "couches logicielles" s'appuyant les unes sur les autres :
Word
Windows
BIOS
Figure 7-1 : les "couches logicielles"

Chacune de ces couches, elles-mmes constitues d'ensembles de programmes, prend


en charge certaines fonctions. Ainsi des programmes de la couche du BIOS, la plus
profonde, se chargent d'oprations extrmement lmentaires relatives l'affichage ou
la lecture de caractres au clavier; des programmes de la couche Windows (celle, on
va le voir, constituant le systme d'exploitation) grent par exemple lectures et
critures des fichiers et dossiers sur les mmoires de masse; la couche "Word" (celle
de l'application vraiment utilise) prend, entre autres, en charge dition et mise en
forme du texte frapp par l'utilisateur.

Chaque couche s'appuie en quelque sorte sur les couches infrieures en sous traitant
ces dernires certaines oprations. Ainsi, lorsqu'on commande au logiciel de traitement
de texte d'enregistrer sur le disque dur, au sein d'un dossier choisi, le texte
confectionn, ce logiciel "passe la main" des programmes de la couche Windows qui
vont se charger du travail souhait.
Il faut donc s'imaginer l'intrieur de la mmoire centrale comme comportant plusieurs dizaines
de programmes qui vont s'appeler les uns les autres, se passant la main pour que chacun
puisse (faire) raliser les oprations qui sont de son ressort. De plus, des programmes
supplmentaires sont frquemment amens partir des mmoires de masse, pour venir
participer au travail global, remplaant en mmoire centrale d'autres programmes devenus
inutiles.

7.1.4 Les deux strates essentielles du logiciel


On rpartit en gnral le logiciel en deux entits : le logiciel de base, d'une part, le
logiciel d'application, d'autre part.
Nous prsenterons plus en dtail, plus loin, le logiciel d'application; comme son nom
l'indique, il recouvre des milliers d'applications diffrentes, du traitement de texte au courrier
lectronique en passant par la retouche d'image et la manipulation de squences vidos. C'est
videmment certains de ces logiciels d'application qui intressent au premier chef les
utilisateurs.
Quant au logiciel de base, sa dnomination fait penser qu'il constitue "la base" ou le
socle des diverses couches logicielles indispensables au travail de l'ordinateur.

Le composant primordial du logiciel de base est le systme d'exploitation, qui fait


l'essentiel du prsent chapitre.

Dans le contexte actuel, il faut y ajouter toute la partie du logiciel charge de grer les
communications avec d'autres ordinateurs, travers les rseaux (rseau local ou
liaison par modem et rseau tlphonique,...); de plus en plus souvent ces logiciels de
communication sont intgrs dans le systme d'exploitation proprement dit.

Habituellement, on range aussi dans le logiciel de base des logiciels particuliers


comme les diteurs de texte, les divers compilateurs et interprteurs disponibles

172

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Le logiciel

(voir page 159). On aura compris que ces logiciels sont essentiellement utiliss dans le
contexte de la programmation et qu'ils ne font donc pas partie des outils
habituellement employs par les utilisateurs "nafs".

7.2

Le systme d'exploitation

Voici la pice matresse du logiciel : on l'appelle "Operating System" en Anglais et


mme pendant un temps, aujourd'hui rvolu, "Disk Operating System" ("DOS") pour insister
sur son rle dans la gestion des disques durs et autres mmoires de masse, comme sur le fait
que, rsident sur le disque, il est amen en mmoire centrale pour y tre actif.
C'est un ensemble de programmes sans lesquels l'ordinateur ne pourrait rien faire et,
surtout, sans lesquels les logiciels d'application ne pourraient "tourner". Il est malais
d'expliquer ou de dfinir ce qu'est un systme d'exploitation; voici titre d'exemples quelques
dfinitions glanes a et l sur le WEB

"Ensemble des fonctions de base (mais parfois pouvant tre trs avances), permettant
l'usage d'un ordinateur, et sans lequel rien n'est possible."

"Ensemble de logiciels assurant le fonctionnement de base de l'ordinateur et


notamment la gestion du processeur et de sa relation avec les diffrents priphriques.
Un ordinateur ne peut fonctionner sans lui."

"Le systme d'exploitation a deux fonctions principales: fournir un niveau


d'abstraction pour communiquer avec le hardware et grer les ressources."

"Un systme d'exploitation (OS:Operating System) est un ensemble de programmes de


gestion du systme qui permet de grer les quatre lments fondamentaux de
l'ordinateur: le matriel, les logiciels, la mmoire, les donnes."

"Il s'agit du principal logiciel de contrle systme, qui sert de fondation l'ensemble
des logiciels applicatifs."

"Le systme d'exploitation constitue le programme principal de contrle qui fait


fonctionner l'ordinateur."

"C'est un programme informatique charg de grer les ressources d'un ordinateur


comme le temps processeur, la mmoire, les priphriques ou les programmes en
cours d'excution (processus)."

"Un systme d'exploitation (Operating System en Anglais, ou OS) est le logiciel de


base permettant de faire tourner des applications sur un PC. C'est lui qui pilote
directement tout le matriel (disque dur, affichage, clavier, souris, imprimantes,
etc...), et c'est galement lui qui dmarre ( la demande de l'utilisateur) les diverses
applications que l'on peut trouver sur un PC."

"Logiciel qui gre lordinateur."

"Logiciel informatique responsable du contrle de l'allocation et de l'utilisation des


ressources matrielles et de l'excution des programmes d'application."

"Logiciel qui contrle l'affectation et l'utilisation de ressources matrielles telles que


la mmoire, le temps processeur, l'espace disque et les priphriques. Un systme
d'exploitation est la base sur laquelle s'excutent les logiciels (applications)."

La plupart de ces dfinitions contiennent des lments importants ou significatifs. Je


retiendrai ici les facettes suivantes :
CeFIS-FUNDP

Ch. Duchteau

173

Le logiciel

Initiation l'informatique

c'est un ensemble de programmes;

ces programmes assurent les fonctions de base de l'ordinateur (mais qu'est ce qu'une
"fonction de base" ?);

ces programmes ont en charge la gestion des priphriques, des mmoires de masse,
de l'affectation de la mmoire centrale aux divers programmes et donnes;

sans les programmes constituant le systme d'exploitation, l'ordinateur ne peut pas


marcher et les logiciels d'application ne peuvent pas s'excuter

7.2.1 Les rles du systme d'exploitation


C'est en repartant de ce que peroit l'utilisateur d'un systme (= matriel + logiciel)
informatique, qu'on peut dgager les deux types de rles d'un systme d'exploitation : les rles
visibles et les rles cachs.
7.2.1.1 Les rles visibles du systme d'exploitation
Le systme d'exploitation (ou tout le moins certains des programmes qui le
composent) peut certains moments du travail de l'utilisateur constituer l'interlocuteur, le
programme qui l'utilisateur va fournir des commandes.
Une commande, c'est une intervention de l'utilisateur dans le droulement d'un logiciel;
lorsque l'utilisateur demande au logiciel de traitement de texte de mettre du texte
pralablement slectionn en gras, il donne au logiciel une commande; lorsqu'il souhaite
enregistrer sur le disque dur, sous un nom qu'il choisit, le texte compos, il va exprimer ce
souhait l'aide d'une commande...
En gros, l'utilisateur d'un logiciel n'arrte pas de donner ce dernier des commandes.
Enfin, on aura compris que ce que l'utilisateur commande, ce n'est pas le logiciel, mais
(comme toujours) le couple ordinateur-logiciel; mais par abus de langage, on parlera de
commandes donnes un logiciel.

Ces commandes que l'utilisateur va fournir peuvent prendre des formes diverses : du
texte frapp au clavier ou des combinaisons de touches, mais aussi des "clics" avec la souris.
Cette couche du systme d'exploitation qui prend en charge les changes avec l'utilisateur est
l'interface utilisateur et nous l'aborderons en dtail plus loin.
En quelque sorte, dans ce rle visible, le systme d'exploitation joue un rle un peu
similaire aux logiciels d'applications : l'utilisateur souhaite effectuer certaines oprations
travers le systme d'exploitation. Mais, si l'on voit assez aisment quelles actions vont tre
commandes travers un traitement de texte ou un logiciel de dessin, il est a priori plus
malais de cerner la porte des commandes fournies au systme d'exploitation.
7.2.1.1.1 Le premier rle visible : la gestion des mmoires de masse
Ce qui est vis ici, c'est tout ce qui concerne la manire dont l'utilisateur va organiser
des documents de natures diverses qu'il aura crs et modifis grce l'un ou l'autre logiciel
d'application et "sauvs" sur le disque dur, un CD, une disquette, etc..
Ces divers documents, qui constituent donc les donnes -images, textes, sonstraitables par certains logiciels prennent la forme, sur les mmoires de masse, d'entits qu'on
nomme fichiers. A ct de ces fichiers de donnes, on trouvera aussi sur les mmoires de
masse des fichiers contenant les programmes excutables (par exemple les logiciels
d'application) qui pourront tre amens en mmoire centrale pour commander le processeur.
Ces fichiers seront rpartis dans des dossiers divers : c'est, entre autres, cette
organisation en dossiers contenant d'autres dossiers et des fichiers que le systme
d'exploitation va permettre l'utilisateur de raliser.
174

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Le logiciel

Voici, titre d'illustration, la reprsentation que donne Windows, l'un des systmes
d'exploitation les plus rpandus, de ces dossiers et fichiers :

Figure 7-2 : quelques dossiers et sous dossiers prsents sur mon disque dur

Figure 7-3 : quelques dossiers et fichiers prsents au sein d'un dossier

Toujours titre d'exemples, on peut citer quelques unes des oprations concernant
dossiers et fichiers que permet le systme d'exploitation :

afficher une liste de dossiers ou de fichiers prsents sur le disque dur ou un autre
support de mmoire de masse;

crer un dossier nouveau dans lequel on pourra classer ensuite fichiers et dossiers;

copier ou dplacer un fichier ou un groupe de fichiers (ou tout le contenu d'un dossier)
d'un dossier vers un autre;

supprimer un fichier, un groupe de fichiers ou un dossier;

rechercher sur base d'une partie de son nom ou de certaines de ses caractristiques un
fichier ou un groupe de fichiers;

renommer un fichier ou un dossier;

etc.
Cette liste n'est videmment pas exhaustive...

7.2.1.1.2 Le deuxime rle visible : la gestion des priphriques


C'est le systme d'exploitation qui gre les divers priphriques; pour chacun de ceuxci, l'utilisateur peut, travers des choix effectus en donnant des commandes au systme
d'exploitation, prciser un certain nombre de paramtres :

Ainsi, en ce qui concerne le clavier, on peut prciser quel est le type du clavier (il y en
a plusieurs dizaines, diffrant d'aprs l'emplacement des diverses touches); on peut
aussi choisir le dlai plus ou moins long partir duquel l'appui continu sur une touche
provoque la rptition du caractre choisi, et la vitesse laquelle se fait cette
rptition.

CeFIS-FUNDP

Ch. Duchteau

175

Le logiciel

Initiation l'informatique

On peut aussi prciser divers paramtres pour la souris : inversion des boutons gauche
et droit, vitesse d'un double clic,...

C'est sans doute l'cran qui amne le plus de choix possibles : dfinition (= combien
de pixels affiche, en largeur et en hauteur, l'cran) : 1024 x 768, 800 x 600,...; quelle
est la frquence de rafrachissement,...
Il faut encore y ajouter toutes les options pour les diverses imprimantes, la carte son,...

7.2.1.1.3 Le troisime rle visible : les choix au niveau de l'interface-utilisateur


De nombreux choix peuvent par exemple tre fait au niveau des interfaces utilisateur
de type graphique (voir plus loin) : couleur des affichages oprs par le systme
d'exploitation, taille et police des caractres utiliss, signaux sonores accompagnant certains
vnements (erreur, clture d'une tche,...), mode d'affichage des contenus des dossiers,...
7.2.1.1.4 Le quatrime rle visible : "lancer" une application
C'est travers le systme d'exploitation que l'utilisateur va pouvoir choisir puis activer
les applications disponibles. "Lancer" (on dit aussi "ouvrir") une application , c'est demander
qu'une copie du programme excutable correspondant, rsidant sur le disque dur, soit amene
en mmoire centrale et que le systme d'exploitation lui "passe la main".
Unit centrale
Commande de
lancement d'une
application

Unit centrale
Application
(programme)

Systme d'exploitation

Systme d'exploitation

Application
(programme)

Application
(programme)

Mmoire externe

Mmoire externe

Figure 7-4 : le "lancement" d'une application

Une fois amene en mmoire centrale pour tre excute, une application donne lieu
ce qu'on appelle une tche. Il y a donc en gnral des centaines d'applications disponibles sur
les mmoires externes (disque dur), mais tout moment quelques tches seulement peuvent se
partager l'unit centrale. L'une de ces tches est videmment le systme d'exploitation.
7.2.1.2 Les rles cachs du systme d'exploitation
Si le systme d'exploitation est de temps autre l'interlocuteur direct de l'utilisateur, ce
sont cependant ses rles cachs qui sont sans doute les plus essentiels. Mais comme c'est alors
avec une autre application qu'est en train de travailler l'utilisateur, ces rles cachs restent en
gnral non perus par ce dernier.
Comme on va le voir, le systme d'exploitation est la fois au service des applications
dont il sous-traite une partie du travail (demand par l'utilisateur) mais aussi un genre de "chef
d'orchestre" qui organise le travail des diverses tches en cours, en leur allouant (ainsi qu'aux
176

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Le logiciel

donnes qu'elles traitent) de la place en mmoire, en grant l'accs des unes et des autres aux
priphriques et aux mmoires externes et, ventuellement, en permettant successivement aux
diverses tches en cours "d'avoir la main" (= de commander le processeur) pendant de courts
intervalles de temps.
7.2.1.2.1 Le systme d'exploitation est le "socle logiciel" sur lequel reposent les logiciels
d'application
Bon nombre d'actions commandes un logiciel d'application (charger et ouvrir un
fichier de donnes, enregistrer les donnes traites sous la forme d'un fichier sur les mmoires
externes, imprimer les donnes traites, envoyer ces donnes vers un autre ordinateur,
travers un rseau,...) sont en ralit prises en charge par des programmes du systme
d'exploitation.
C'est donc dire que sans la prsence de ce dernier (prsence active, mais cache
l'utilisateur) les logiciels d'application sont incapables de "tourner". De plus, chaque logiciel
d'application a t conu pour "se reposer" sur un systme d'exploitation bien prcis. On dit
alors que ce logiciel d'application "tourne" sous tel systme d'exploitation; il vaudrait mieux
pourtant dire qu'un logiciel tourne "au dessus" de tel systme d'exploitation, puisqu'il sous
traite ce dernier un certain nombre des actions effectuer.
On parlera ainsi de "Word 6 sous Windows 3.1", "Lotus sous MS-DOS", "Presenter sous
Linux",... A chaque fois, on prcise quelle est la couche systme d'exploitation pour laquelle
tel logiciel d'application a t prvu. Il arrive d'ailleurs qu'un logiciel d'application existe pour
plusieurs systmes d'exploitation, ainsi "Word sous Windows 95 (sur PC)" ou "Word sous
Systme 7 (sur MacIntosh)". Mais on comprend que ces versions ne sont videmment pas
interchangeables.

Un des rles du systme d'exploitation est d'ailleurs en quelque sorte de gommer les
diffrences matrielles (de dtails) qui existeraient entre divers modles d'ordinateurs, pour
que, quelle que soit (dans une certaine mesure) la "couche matrielle", la couche "logiciel
d'application" puisse en tirer parti puisque, entre les deux, la couche "systme d'exploitation"
vient en quelque sorte "gommer" les diffrences.
7.2.1.2.2 C'est le systme d'exploitation qui organise l'occupation de la mmoire centrale
Une tche, c'est un logiciel (programme) et les donnes actuellement traites par ce
dernier. Ces tches (programmes + donnes) doivent tre places en mmoire centrale, sans
empiter les unes sur les autres : c'est l'un des rles (cachs) du systme d'exploitation que
d'allouer des zones de mmoire centrale aux diverses tches en cours et de grer l'arrive de
nouvelles tches et la terminaison d'autres.
Nous avions voqu page 105 cette question de savoir comment un programme se trouvait
log en mmoire centrale, partir de telle ou telle adresse. Nous avions signal que c'tait un
autre programme qui se chargeait de cette installation. Nous savons prsent que c'est le
systme d'exploitation qui joue ce rle pour les programmes d'application.
Mais, qui installe le systme d'exploitation ?

7.2.1.2.3 C'est le systme d'exploitation qui alloue certaines ressources certaines tches
Non seulement le systme d'exploitation gre les allocations de la mmoire centrale,
mais c'est galement lui qui assigne pour une priode donne les priphriques et les
mmoires de masse certaines tches qui les ncessitent.
En rsum, c'est le systme d'exploitation qui organise la cohabitation de tches
diffrentes et qui gre et assigne les diverses ressources disponibles : processeur, mmoire
centrale, priphriques, mmoires de masse,...
CeFIS-FUNDP

Ch. Duchteau

177

Le logiciel

Initiation l'informatique

7.2.2 Le chargement du systme d'exploitation en mmoire : le bootstrapping


Nous savons qu' l'allumage de l'ordinateur, seuls les programmes prsents en ROM
(mmoire morte) au sein du BIOS sont disponibles (Voir page 62).
Nous savons que parmi ces programmes prsents dans le BIOS figure un programme
particulier, le programme de bootstrapping (ou plus simplement de boot) dont le rle consiste
aller chercher un endroit dtermin des mmoires externes (disque-dur ou CD ou
disquette) des programmes supplmentaires constituant la partie rsidente (en mmoire
centrale) du systme d'exploitation.
Le systme d'exploitation est donc en quelque sorte compos de trois parties :

un ensemble de programmes correspondants des actions extrmement rudimentaires


et prsents dans la ROM;

un ensemble de programmes, prsents sur le disque dur (ou une autre mmoire
externe) et qui sont chargs au dmarrage en mmoire vive et y resteront;

un ensemble plus important de programmes utilitaires qui sont prsents sur le disque
dur et ne seront appels en mmoire centrale qu'au moment o ils deviennent
indispensables.

7.2.3 Quelques systmes d'exploitation


Un systme d'exploitation est en gnral ddicac un type d'ordinateur, ou plus
prcisment un type de processeur. En effet, le systme d'exploitation constitue un ensemble
de programmes excutables et , comme nous le savons, un programme excutable est toujours
crit pour un type prcis de processeur (dans le langage machine de ce dernier) et ne convient
videmment pas pour un autre type de processeur (avec un langage machine diffrent).
Les premiers temps de la micro-informatique (de la cration de l'Apple II celle des
premiers PC) ont vu apparatre des dizaines d'ordinateurs diffrents, chacun d'eux tant quip
d'un systme d'exploitation spcifique et gnralement extrmement rudimentaire.

L'Apple II qui fut l'un des ordinateurs phares de cette poque connaissait deux
systmes d'exploitation diffrents : AppleSoft d'une part (trs rudimentaire et bti
autour d'un interprteur Basic), et le p-Systme UCSD d'autre part (assez volu et
construit autour d'un environnement de programmation Pascal). Par ailleurs, on
pouvait, en adjoignant une carte l'Apple II transformer compltement ce dernier
puisque on lui adjoignait un autre processeur (le Z 80) que son processeur natif (le
6502 de Motorola). quip de ce second processeur, il "tournait" alors sous le
systme d'exploitation CPM.

En 1981, apparat le PC d'IBM et le monde de la micro-informatique s'en trouve


compltement boulevers. IBM fait le choix pour son PC du systme d'exploitation MS-DOS
de Microsoft en le rebaptisant au passage PC-DOS.
Mais avec l'explosion des "PC-compatibles" (c'est dire des ordinateurs trs proches
du PC d'IBM mais construits par d'autres), c'est MS-DOS qui s'impose comme le systme
d'exploitation qui accompagnera l'volution des ordinateurs de type PC (construits autour de
la ligne des processeurs d'Intel, voir page 112). Mais l'interface utilisateur de MS-DOS
travaille seulement en mode texte (voir ci-aprs).
Pendant ce temps, Apple sort en 1984 son ordinateur MacIntosh et le dote d'un
systme d'exploitation quip d'une interface graphique qui intgre l'usage de la souris.

178

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Le logiciel

Aprs plusieurs annes, Microsoft ajoutera MS-DOS la couche d'interface graphique


baptise Windows. Dfileront alors les versions successives de Windows et, pour ne pointer
que les plus connues, on verra se succder Windows 3.0, Windows 95, Windows 98,
Windows 2000 et le dernier n Windows XP (12/2002).
Mais on ne peut ignorer, lorsqu'il est question des systmes d'exploitation, l'un des
plus fameux d'entre eux : UNIX, qui a en quelque sorte donn naissance LINUX.

7.3

L'volution des interfaces d'utilisation des logiciels et des systmes


d'exploitation

Qu'il s'agisse du systme d'exploitation ( travers lequel l'utilisateur gre l'organisation


des mmoires de masse, dtermine certaines configuration des priphriques et "lance" des
applications (= des programmes)) ou des logiciels d'application (que l'utilisateur utilise pour
des tches particulires : production de textes, retouches d'images, courrier lectronique,...),
une partie importante de chacun de ces logiciels est consacre la gestion des interactions
entre l'utilisateur et le "reste" du logiciel considr.
Cette partie du logiciel qui va permettre l'utilisateur de donner des commandes qui
vont provoquer certains traitements (= certaines actions modifiant les donnes traites par le
logiciel) et travers lequel le logiciel ragira (par exemple en affichant l'cran certaines
choses) est l'interface utilisateur de ce logiciel.
L'utilisateur va donc pouvoir agir travers les priphriques d'entre sur le couple
ordinateur-logiciel; ces actions seront prises en charge et interprtes par une partie du
logiciel constituant l'interface-utilisateur; l'inverse, cette interface renverra travers les
priphriques de sortie les ractions du mme couple ordinateur-logiciel.
Dans ce dialogue homme-machine, l'cran joue videmment un rle primordial (en
"montrant" les ractions de l'ordinateur (guid par le logiciel considr)); de la mme
manire, clavier, souris, micro sont les canaux travers lesquels l'utilisateur agit.

Clavier

Utilisateur

Souris

Interface
utilisateur

Reste du
logiciel

Ecran
Figure 7-5 : le rle de l'interface-utilisateur

Au cours du temps et de l'volution de l'informatique les caractristiques de cette


interface, conditionnant donc les modalits du dialogue homme-machine ont volu, en mme
temps d'ailleurs que les priphriques et la puissance des machines.
Nous ne remonterons pas aux premiers temps de l'informatique, celui ou les
utilisateurs n'existaient pas et ou les traitements effectus par l'ordinateur ne mettaient pas en
oeuvre une interaction "en direct" entre l'homme et la machine. Les programmes s'excutaient
CeFIS-FUNDP

Ch. Duchteau

179

Le logiciel

Initiation l'informatique

en gnral sans intervention humaine extrieure : on avait fourni un lecteur de cartes


perfores des paquets de cartes comportant le programme (excutable) d'une part, les donnes
d'autre part et on rcoltait sur un "listing" sortant d'une grosse imprimante les rsultats des
traitement commands par le programme.
En gros, l'interaction remonte au temps o un clavier a permis l'utilisateur
d'intervenir pendant l'excution d'un programme (en commandant "en direct" certains
traitements effectuer par le logiciel ou en fournissant certaines donnes) et o l'cran a
permis de visualiser galement en direct les "ractions" du couple logiciel-ordinateur.
Je parle parfois des ractions du logiciel ou de l'ordinateur; nous savons depuis longtemps
que l'une et l'autre de ces locutions sont incorrectes : les ractions sont toujours celles du
couple ordinateur-logiciel.

7.3.1 Les interfaces en mode texte


Dans les premiers temps du dialogue, les deux seuls outils taient le clavier (pour
frapper des commandes ou des donnes au logiciel) et l'cran (o l'on pouvait lire les
rsultats "crits" des traitements).
Voici un exemple typique de ces interactions. Je ne peux videmment pas y montrer
vraiment la frappe effectue par l'utilisateur au clavier; mais comme, heureusement, les
caractres frapps apparaissaient au fur et mesure l'cran, on peut se rendre compte de ce
qui est de la responsabilit de l'utilisateur : cela apparatre ici en rouge. En noir, sur ces copies
d'cran, les "interventions" de l'ordinateur.
7.3.1.1 Premier exemple : un programme
Voici les crans successifs montrant le dialogue entre l'utilisateur et le systme :

Figure 7-6 : un dialogue en mode texte

7.3.1.2 Deuxime exemple : le systme d'exploitation


Voici un exemple d'interaction avec le systme d'exploitation MS-DOS : tout y prenait
galement la forme de texte (frapp par l'utilisateur ou affich par le systme).
La commande fournie demande l'affichage de la liste de tous les fichiers de suffixe pas
prsents dans le sous-dossier chaine du sous-dossier pascal du dossier projet prsent sur le
disque dur d:.

180

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Le logiciel

Figure 7-7 : MS-DOS, un systme d'exploitation avec une interface en mode texte

Bien videmment, l'utilisateur devait connatre la syntaxe prcise des commandes


permises : ce n'tait pas toujours immdiat, comme le montrent les quelques exemples
illustrs ci-dessous :

Figure 7-8 : MS-DOS, d'autres illustrations du mode texte

Ces interfaces en mode texte ont t la rgle pendant les premires annes d'existence
de la micro-informatique. Dans l'univers PC, cela a subsist jusqu'au milieu des annes 80;
l'univers Apple (avec le MacIntosh) a beaucoup plus rapidement intgr des interfaces de type
graphique.

7.3.2 Les interfaces semi-graphiques


Dans l'univers PC (dont le systme d'exploitation tait essentiellement MS-DOS), les
interfaces en mode texte ont t un temps remplaces par des interfaces semi-graphiques, qui
intgraient dj l'usage de la souris et les menus droulants travers lesquels le systme
permettait l'utilisateur de choisir les commandes souhaites.
Voici titre d'exemple, l'cran prsent par un diteur de texte "plein cran" : c'est,
comme son nom l'indique un outil servant confectionner du texte (sans mise en forme).
Comme on le voit, il intgre des facilits comme les menus droulants (permettant de choisir
les commandes donner, en cliquant avec la souris et sans plus avoir retenir des termes plus
ou moins sotriques), les barres de dfilement (verticales et horizontales), etc.
Le "look" est plus ou moins "graphique", mais il faut savoir que les crans prsents,
mme quand ils intgrent des encadrements et des objets graphiques, sont en ralit
CeFIS-FUNDP

Ch. Duchteau

181

Le logiciel

Initiation l'informatique

essentiellement constitus de caractres et font donc grand usage des caractres graphiques
rencontrs lorsque nous avons abord le code ASCII (Voir page 22).

Figure 7-9 : un logiciel avec interface semi-graphique

Voici par ailleurs deux crans successifs illustrant le dialogue avec le systme
d'exploitation travers une interface intgrant galement menus droulants et usage de la
souris pour fournir les commandes (dans les menus), pour slectionner les fichiers, et pour
effectuer des actions comme la copie, le dplacement, la suppression de fichiers et de
dossiers.

Figure 7-10 : une interface semi-graphique pour le systme d'exploitation

182

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Le logiciel

copie d'un fichier en "tranant" son "icne"


Figure 7-11 : copie de fichier travers une interface semi-graphique

Ces prmices d'une interface vraiment graphique et intgrant de plus en plus l'usage de
la souris ont eu une trs brve dure d'usage dans l'univers PC; lorsqu'ils sont apparus, de
vritables interfaces graphiques caractrisaient dj le monde MacIntosh chez Apple.

7.3.3 Les interfaces graphiques


Dans l'univers PC, ce sont les interfaces des versions successives du systme
d'exploitation Windows et des logiciels d'application correspondants qui illustrent les
caractristiques essentielles de ce que devient le dialogue homme-machine.

Figure 7-12 : une interface graphique

CeFIS-FUNDP

Ch. Duchteau

183

Le logiciel

Initiation l'informatique

Comme le montre l'illustration ci-dessus, cette interface graphique est caractrise


par :

un environnement fentr : les applications s'excutent dans des fentres (que


l'utilisateur peut dplacer, redimensionner,...);

l'usage d'icnes qui accompagnent les divers fichiers qui sont lists et caractrisent
d'une certaine manire les types de ces fichiers (excutable, texte, image, son,...);

l'usage, tant au niveau du systme d'exploitation que des logiciels d'application


associs, de menus droulants, de menus contextuels, de botes de dialogue,... qui
encouragent un usage constant et sophistiqu de la souris (avec les clics gauche ou
droit, les doubles clics, les CTRL clics,...);

l'usage de mtaphores censes aider l'utilisateur, comme celles du bureau, de la


corbeille,...;

la facult de lancer plusieurs tches en parallles, de passer aisment de l'une


l'autre, d'changer des informations entre elles,...;

Nul doute que dans les annes venir, ces interfaces intgreront de plus en plus l'usage
du micro et de commandes orales qui ajouteront des modes d'interventions supplmentaires
l'utilisateur.

7.4

Les logiciels d'application

Nous venons de voir que le rle essentiel d'un systme d'exploitation est de servir de
socle, de supporter les logiciels d'application qui ont t dvelopps en s'appuyant sur ce
systme d'exploitation.
Chaque systme d'exploitation est donc accompagn d'un cortge de logiciels
d'application plus ou moins spcialiss et ddicacs des tches spcifiques : logiciels de
bureautique (traitement de texte, publication assiste par ordinateur (PAO), tableur,
gestionnaire de bases de donnes), logiciels de prsentation, logiciels de courrier lectronique,
logiciels de navigation sur le WEB, logiciels graphiques, logiciels de traitement du son, de la
vido,... Sans oublier tous les logiciels spcialiss d'aide des professions particulires :
dessin assist par ordinateur, gestion d'officine de pharmacie ou d'tude notariale, gestion de
bibliothque,...
Bref, ce sont des milliers d'instruments logiciels qui sont mis la disposition de leurs
utilisateurs potentiels. Il serait donc vain de vouloir en faire un recensement et plus absurde
encore de tenter d'en prsenter les usages ou les modes d'utilisation. Et cela d'autant que pour
chacun de ces logiciels, c'est souvent plusieurs versions qui se sont succdes (et continueront
se succder).

184

Ch. Duchteau

CeFIS-FUNDP

8
... traiter l'information ...

Communiquer l'information : tlmatique, rseaux, Internet

CeFIS-FUNDP

Ch. Duchteau

185

9
Bibliographie

9.1

Chapitre 1 : gnralits, dcouverte de l'informatique

ACM Turing Award Lectures; The First Twenty Years. 1966-1985. ACM Press, New York,
1987.
Initiation l'informatique., Amsterdam : Editions Time-Life, 1986.
L're de l'informatique., Amsterdam : Editions Time-Life, 1987.
BERUBE Y., Initiation aux ordinateurs., Paris, London, New York : McGraw-Hill, Editeurs,
1980.
BRETON P., Une histoire de l'informatique, Paris : Editions du Seuil, 1990.
CLAVIEZ J., Micro-ordinateurs. Que peut-on faire avec ?, Montral : JCI Inc., 1993.
%

LABIN E., Comprendre l'informatique. Bordas, Paris, 1973.

LE ROCH J-C., Regards sur l'informatique. Edition Marketing, Paris, 1991.


LIGONNIERE R., Prhistoire et histoire des ordinateurs, Paris : Robert Laffont, 1987.
RALSTON A., REILLY E., Encyclopedia of Computer Science, London : Chapman & Hall,
1993.
SANDERS D.H., L'univers des ordinateurs., Paris, London, New York : McGraw-Hill,
Editeurs, 1984.
%

STEHLE J-L., HOCHARD P., Ordinateurs et langages. Edition Marketing, Paris,


1989.

9.2

Chapitre 2 : traitement formel, informatique et intelligence

ARSAC J., Les machines penser. Des ordinateurs et des hommes. Editions du Seuil,
Paris, 1987.

BULL , Intelligence artificielle et bon sens. Collection F.R. BULL, Masson, Paris, 1991
CHANGEUX J-P., CONNES A., Matire pense Editions Odile Jacob, Paris, 1989.
DEFAYS D., L'esprit en friche. Les foisonnements de l'intelligence artificielle Pierre
Mardaga, Bruxelles, Lige, 1988.
GANASCIA J-G., L'me machine Les enjeux de l'intelligence artificielle Editions du Seuil,
Paris, 1990.
HOFSTADTER D., Godel, Escher, Bach. InterEditions, Paris, 1985.
CeFIS-FUNDP

Ch. Duchteau

187

Bibliographie

Initiation l'informatique

HOFSTADTER D., DENNETT D. (EDIT)., Vues de l'esprit. Fantaisies et rflexions


sur l'tre et l'me. InterEditions, Paris, 1987.

LUCAS Y. Codes et machines : essai de smiologie industrielle. Presses Universitaires de


France, Paris, 1974.
VARELA F.J., Connatre les sciences cognitives. Tendances et perspectives. Editions du
Seuil, Paris, 1989.
WEIZENBAUM J., Puissance de l'ordinateur et raison de l'homme.
d'Informatique, Paris, 1981.

Les Editions

LAZORTHES G., Le cerveau et l'ordinateur., Toulouse : Privat, 1988.


SIMONS G., L'ordinateur est-il vivant ?, Evolution et nouvelles formes de vie., Londreys,
1984.

9.3

Chapitre 3 : codage des informations

BELHOMME D., BERHIN M., ..., Les carnets de la formation multimdia., Codition
CeFIS - Mdia Animation, 1999.

9.4

Chapitre 4 : point de vue de l'utilisateur ou du programmeur

DUCHATEAU C. (1992) "Comment dfinir une culture informatique", Journal de Rflexion


sur l'informatique, n 23, octobre 1992, pp. 34-39.
DUCHATEAU C. (1994) "Faut-il enseigner l'informatique ces utilisateurs", Actes du
quatrime colloque francophone sur la didactique de l'informatique, Montral, avril
1994.

9.5

Chapitre 5 : architecture d'un systme informatique

CLEMENT L., Priphriques : disques, imprimantes et crans. A. de Boeck, Bruxelles, 1989.


STROHMEIER A., Le matriel informatique : concepts et principes. Presses Polytechniques
et Universitaires Romandes, Lausanne, 1986.
MEINADIER J-P., Structure et fonctionnement des ordinateurs., Paris : Librairie Larousse,
1975.
Les entres-sorties., Amsterdam : Editions Time-Life, 1987.
Histoires de puces., Amsterdam : Editions Time-Life, 1989.
Les mmoires., Amsterdam : Editions Time-Life, 1988.

9.6

Chapitre 6 : la programmation

DUCHATEAU C., Quand le savoir faire ne suffit plus. Qu'y a-t-il au cur, de la pense
algorithmique et de la programmation., Namur : CeFIS, Facults N-D de la Paix,
1989.
DUCHATEAU C., Images pour programmer. Apprendre les concepts de base. De BoeckWesmael, Bruxelles, 1990.

188

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Les rseaux

Les langages de programmation., Amsterdam : Editions Time-Life, 1987.


LESUISSE R., BORSU A., Initiation aux raisonnements de la programmation., Namur :
Presses Universitaires de Namur, 1987.

9.7

Chapitre 7 : le logiciel

Les communications., Amsterdam : Editions Time-Life, 1989.


Le logiciel., Amsterdam : Editions Time-Life, 1987.

CeFIS-FUNDP

Ch. Duchteau

189

10
Tables et Index

10.1 Table des matires


INTRODUCTION ................................................................................................................................................. 1
1.1

L'ORDINATEUR ? ................................................................................................................................... 1

... DE MANIRE FORMELLE ... ....................................................................................................................... 3


2.1
2.2
2.3
2.4
2.5
2.6
2.7

TRAITER DES INFORMATIONS ................................................................................................................ 3


UN PEU DE VOCABULAIRE ET... UNE DFINITION DE L'INFORMATIQUE................................................... 8
LE CRITRE DU "COPAIN PORTUGAIS" ................................................................................................... 9
L'ORDINATEUR, UN MANIPULATEUR FORMALISTE D'INFORMATIONS ................................................... 10
LA PROGRAMMATION .......................................................................................................................... 12
ET L'INTELLIGENCE ? .......................................................................................................................... 13
QUESTIONS RCAPITULATIVES ............................................................................................................ 14

... DES INFORMATIONS... ............................................................................................................................... 17


3.1
INTRODUCTION ................................................................................................................................... 17
3.2
CODAGE .............................................................................................................................................. 17
3.3
DES QUESTIONS PLUS QUE DES RPONSES ........................................................................................... 19
3.4
CODAGE POUR L'ORDINATEUR............................................................................................................. 19
3.5
CODAGE DE TEXTE .............................................................................................................................. 20
3.5.1
Le code ASCII................................................................................................................................ 20
3.5.2
Le code ANSI ................................................................................................................................. 23
3.5.3
Le code UNICODE........................................................................................................................ 23
3.6
CODAGE DES NOMBRES RELS............................................................................................................. 24
3.7
CODAGE DE DESSINS ........................................................................................................................... 27
3.7.1
Discrtisation ................................................................................................................................ 28
3.7.2
Pertes d'informations..................................................................................................................... 29
3.7.3
Automatisation du codage bitmap ................................................................................................. 30
3.7.4
Codage vectoris ........................................................................................................................... 31
3.7.5
La reconnaissance optique des caractres .................................................................................... 32
3.8
CODAGE DE SONS ................................................................................................................................ 33
3.8.1
La reconnaissance de la parole..................................................................................................... 36
3.9
ET LES ODEURS ?................................................................................................................................. 36
3.10
EN GUISE DE RSUM .......................................................................................................................... 37
3.11
LES AVANTAGES DE LA REPRSENTATION NUMRIQUE DES INFORMATIONS ....................................... 38
3.12
DES MDIAS MULTIPLES AU MULTIMDIA ........................................................................................... 40
3.12.1
Le multi-mdia de grand-papa.................................................................................................. 40
3.12.1.1
3.12.1.2
3.12.1.3
3.12.1.4
3.12.1.5

3.12.2
CeFIS-FUNDP

Le multi-mdia " l'ancienne" : de multiples mdias pour capturer le rel...........................................40


Le multi-mdia " l'ancienne" : il faut restituer ce qui a t captur du rel.........................................42
Le multi-mdia " l'ancienne" : peu de possibilits de modifier les objets supports ............................43
Le multi-mdia " l'ancienne" : stocker les objets supports .................................................................44
Le multi-mdia " l'ancienne" : communiquer les objets supports .......................................................45

Du multi-mdia au multimdia ................................................................................................. 46


Ch. Duchteau

191

10

Tables et index
3.12.2.1
3.12.2.2

3.13
3.14

Initiation l'informatique

Les moyens "multi-mdia" : une juxtaposition de mdias et de technologies dissemblables .............. 47


Les moyens multi-mdias revisits par l'informatique : le multimdia................................................ 47

VERS UNE CIVILISATION DU NUMRIQUE ............................................................................................. 50


QUESTIONS .......................................................................................................................................... 51

... POUR AUTANT QU'ON LUI AIT INDIQU COMMENT MENER BIEN CE TRAITEMENT ... .. 53
4.1
INTRODUCTION .................................................................................................................................... 53
4.2
LE POINT DE VUE DE L'UTILISATEUR .................................................................................................... 54
4.2.1
Des milliers d'instruments.............................................................................................................. 54
4.2.2
L'ordinateur n'existe pas................................................................................................................ 54
4.2.3
L'outil informatique n'existe pas .................................................................................................... 55
4.3
LE POINT DE VUE DU PROGRAMMEUR .................................................................................................. 56
... MACHINE... .................................................................................................................................................... 59
5.1
ARCHITECTURE GNRALE .................................................................................................................. 59
5.2
L'UNIT CENTRALE .............................................................................................................................. 60
5.2.1
La mmoire centrale ...................................................................................................................... 60
5.2.1.1
5.2.1.2
5.2.1.3
5.2.1.4

5.2.2

Un dtour par le codage binaire.................................................................................................... 68

5.2.2.1
5.2.2.2

5.2.3

Le modle d'ordinateur de Von Neumann : calculateur universel programme enregistr ............... 104
Le langage machine ........................................................................................................................... 105
Quelques questions ............................................................................................................................ 105

Les paramtres d'valuation d'une unit centrale........................................................................ 106

5.2.9.1
5.2.9.2
5.2.9.3
5.2.9.4
5.2.9.5
5.2.9.6
5.2.9.7
5.2.9.8

192

Un modle simplifi d'unit centrale ................................................................................................... 80


Un modle simplifi de langage machine adapt au modle simplifi d'unit centrale ....................... 82
Un problme et sa traduction en langage machine (pour le modle simplifi) .................................... 85
L'excution du programme de calcul de Max(A+B,C) ........................................................................ 90
En guise de rsum ............................................................................................................................ 102
Quelques remarques........................................................................................................................... 103
Exercices............................................................................................................................................ 103

Architecture et fonctionnement d'une unit centrale, en gnral................................................. 104

5.2.8.1
5.2.8.2
5.2.8.3

5.2.9

Principes d'architecture........................................................................................................................ 76
Principes de fonctionnement................................................................................................................ 79

Un exemple simplifi d'unit centrale, de langage machine et d'excution d'un programme........ 80

5.2.7.1
5.2.7.2
5.2.7.3
5.2.7.4
5.2.7.5
5.2.7.6
5.2.7.7

5.2.8

Les units de mesure de taille mmoire ............................................................................................... 75


Le caractre formaliste des units de mesure....................................................................................... 76

Le processeur et ses relations avec la mmoire centrale............................................................... 76

5.2.6.1
5.2.6.2

5.2.7

Le codage des caractres...................................................................................................................... 70


Le codage des nombres entiers ............................................................................................................ 70
Le codage des nombres rels ............................................................................................................... 72
Le codage des dessins.......................................................................................................................... 74
Le codage des sons .............................................................................................................................. 75

Comment les instructions des programmes excutables sont codes en mmoire ......................... 75
Retour sur les units de mesure ..................................................................................................... 75

5.2.5.1
5.2.5.2

5.2.6

Comment crivons nous les nombres................................................................................................... 68


Comment les nombres sont crits en binaire........................................................................................ 69

Comment les informations sont codes en mmoire ...................................................................... 70

5.2.3.1
5.2.3.2
5.2.3.3
5.2.3.4
5.2.3.5

5.2.4
5.2.5

Qu'y a-t-il dans la mmoire centrale ? ................................................................................................. 60


Les deux types de mmoire centrale .................................................................................................... 61
L'organisation physique de la mmoire centrale .................................................................................. 65
Les adresses des cellules de la mmoire .............................................................................................. 67

La taille de la mmoire adressable : taille du registre d'adresses ....................................................... 106


La taille de la mmoire effectivement disponible .............................................................................. 107
Le temps d'accs la mmoire .......................................................................................................... 107
La prsence de mmoire-cache et sa taille......................................................................................... 108
La taille d'une cellule mmoire .......................................................................................................... 108
La taille du bus de donnes................................................................................................................ 108
Le nombre et la taille des registres de donnes du processeur ........................................................... 109
Le jeu d'instructions disponibles pour le processeur et la "puissance" de ces dernires .................... 110

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique
5.2.9.9
5.2.9.10

Tables et index

10

La vitesse d'horloge............................................................................................................................110
Le nombre d'instructions excutes par seconde ................................................................................111

5.3
LES MMOIRES EXTERNES ................................................................................................................. 114
5.3.1
Rle.............................................................................................................................................. 114
5.3.2
Contenu........................................................................................................................................ 114
5.3.3
Classification ............................................................................................................................... 114
5.3.4
Paramtres de description et d'valuation .................................................................................. 114
5.3.5
Panorama des dispositifs de mmorisation au sein d'un systme informatique .......................... 115
5.4
LES PRIPHRIQUES D'ENTRE .......................................................................................................... 115
5.5
LES PRIPHRIQUES DE SORTIE.......................................................................................................... 115
5.5.1
L'cran......................................................................................................................................... 115
5.5.2
Les imprimantes........................................................................................................................... 115
5.5.2.1
5.5.2.2
5.5.2.3
5.5.2.4
5.5.2.5

Fonction .............................................................................................................................................115
Types d'changes entre l'ordinateur et l'imprimante...........................................................................115
Les paramtres descriptifs et d'valuation d'un imprimante ...............................................................121
Les diverses varits d'imprimantes ...................................................................................................122
Questions............................................................................................................................................127

... POUR AUTANT QU'ON LUI AIT INDIQU COMMENT MENER BIEN CE TRAITEMENT ... 129
6.1
INTRODUCTION ................................................................................................................................. 129
6.1.1
Programmer ? ............................................................................................................................. 129
6.1.2
Le langage machine..................................................................................................................... 129
6.1.3
Les limitations de l'expression en langage machine.................................................................... 130
6.2
LE TRIPLE POINT DE VUE SUR LES LANGAGES DE PROGRAMMATION .................................................. 131
6.2.1
L'organisation des donnes traiter et la manire de les dsigner ............................................ 131
6.2.2
Les oprations permises sur les donnes et la manire d'exprimer ces oprations..................... 131
6.2.3
Les manires d'organiser l'excution des instructions commandes ........................................... 131
6.3
RETOUR SUR LE LANGAGE MACHINE ................................................................................................. 131
6.3.1
L'organisation des donnes traiter et la manire de les dsigner, en langage machine........... 131
6.3.2
Les oprations permises sur les donnes et la manire d'exprimer ces oprations, en langage
machine 131
6.3.3
Les manires d'organiser l'excution des instructions commandes, en langage machine ......... 132
6.3.4
En rsum, pour le langage machine........................................................................................... 132
6.4
UN PREMIER PAS : LES LANGAGES D'ASSEMBLAGE ............................................................................ 133
6.4.1
L'organisation des donnes traiter et la manire de les dsigner, en langage d'assemblage... 133
6.4.2
Les oprations permises sur les donnes et la manire d'exprimer ces oprations, en langage
d'assemblage.............................................................................................................................................. 133
6.4.3
Les manires d'organiser l'excution des instructions commandes, en langage d'assemblage . 133
6.4.4
Une comparaison langage machine - langage d'assemblage ...................................................... 134
6.4.5
Les assembleurs........................................................................................................................... 135
6.4.6
En rsum, pour les langages d'assemblage................................................................................ 135
6.5
LES LANGAGES VOLUS IMPRATIFS ............................................................................................... 136
6.5.1
Une autre reprsentation du dispositif excutant dans le cas des langages volus ................... 137
6.5.1.1
6.5.1.2
6.5.1.3
6.5.1.4

L'excutant-ordinateur........................................................................................................................137
L'excutant-ordinateur dans le cas des langages volus : son environnement ..................................137
L'excutant-ordinateur dans le cas des langages volus : les instructions pour le faire agir .............139
L'excutant-ordinateur dans le cas des langages volus : les conditions...........................................141

6.5.2

L'organisation des donnes traiter et la manire de les dsigner, en langage volu impratif
141
6.5.3
Les oprations permises sur les donnes et la manire d'exprimer ces oprations, en langage
volu 141
6.5.4
Les manires d'organiser l'excution des instructions commandes, en langage volu ............ 143
6.5.4.1
6.5.4.2
6.5.4.3

6.5.5
6.5.6
6.5.7

Les langages go to ...........................................................................................................................143


Les langages structurs.......................................................................................................................144
Les conditions ....................................................................................................................................144

Les langages " go to"................................................................................................................. 145


Les langages structurs ............................................................................................................... 146
Un exemple .................................................................................................................................. 148

CeFIS-FUNDP

Ch. Duchteau

193

10

Tables et index
6.5.7.1
6.5.7.2
6.5.7.3
6.5.7.4
6.5.7.5
6.5.7.6

6.5.8

Recherche d'une stratgie .................................................................................................................. 148


La liste des variables ncessaires ....................................................................................................... 149
Expression du programme dans un langage go to : un premier essai .............................................. 149
Expression du programme dans un langage go to : un second essai ............................................... 152
Expression du programme dans un langage go to : troisime et dernier essai................................. 153
Expression du programme dans un langage structur ........................................................................ 154

Compilateur ou interprteur ........................................................................................................ 157

6.5.8.1
6.5.8.2
6.5.8.3

6.5.9

Initiation l'informatique

L'avantage des langages volus........................................................................................................ 157


Une mtaphore pour le processus de traduction ................................................................................ 157
Compilateur et interprteur................................................................................................................ 159

Quelques langages volus impratifs ......................................................................................... 160

6.5.9.1
6.5.9.2
6.5.9.3
6.5.9.4
6.5.9.5

Les anctres : FORTRAN.................................................................................................................. 160


Les anctres : COBOL....................................................................................................................... 161
Le prototype du langage structur : PASCAL ................................................................................... 161
Le langage popularis par la micro-informatique : BASIC................................................................ 161
Et tous les autres ................................................................................................................................ 161

6.5.10
Les macros dveloppes au sein des logiciels ( complter) .................................................. 161
6.5.11
L'algorithmique....................................................................................................................... 161
6.6
LES LANGAGES VOLUS DE TYPE LOGIQUE ...................................................................................... 163
6.6.1
Des faits et des rgles .................................................................................................................. 163
6.6.1.1
6.6.1.2

6.6.2

Programmation logique et systmes experts................................................................................ 167

6.6.2.1
6.6.2.2

6.7

Un exemple en gnalogie................................................................................................................. 163


Un exemple "zoologique".................................................................................................................. 166
Un exemple de dialogue avec un systme expert de maintenance de locomotives : RUFUS ............ 167
Un exemple dans le domaine du diagnostic mdical : SPHINX ........................................................ 168

LE LANGAGES VOLUS DE TYPE FONCTIONNEL ( COMPLTER) ...................................................... 169

... POUR AUTANT QU'ON LUI AIT INDIQU COMMENT MENER BIEN CE TRAITEMENT ... 171
7.1
L'ARCHITECTURE LOGICIELLE ........................................................................................................... 171
7.1.1
La dualit matriel-logiciel.......................................................................................................... 171
7.1.2
Le logiciel .................................................................................................................................... 171
7.1.3
L'architecture logicielle ............................................................................................................... 171
7.1.4
Les deux strates essentielles du logiciel....................................................................................... 172
7.2
LE SYSTME D'EXPLOITATION ........................................................................................................... 173
7.2.1
Les rles du systme d'exploitation.............................................................................................. 174
7.2.1.1
7.2.1.2

Les rles visibles du systme d'exploitation ...................................................................................... 174


Les rles cachs du systme d'exploitation ....................................................................................... 176

7.2.2
Le chargement du systme d'exploitation en mmoire : le bootstrapping ................................... 178
7.2.3
Quelques systmes d'exploitation................................................................................................. 178
7.3
L'VOLUTION DES INTERFACES D'UTILISATION DES LOGICIELS ET DES SYSTMES D'EXPLOITATION ... 179
7.3.1
Les interfaces en mode texte ........................................................................................................ 180
7.3.1.1
7.3.1.2

Premier exemple : un programme...................................................................................................... 180


Deuxime exemple : le systme d'exploitation .................................................................................. 180

7.3.2
Les interfaces semi-graphiques.................................................................................................... 181
7.3.3
Les interfaces graphiques ............................................................................................................ 183
7.4
LES LOGICIELS D'APPLICATION .......................................................................................................... 184
... TRAITER L'INFORMATION .................................................................................................................... 185
BIBLIOGRAPHIE ............................................................................................................................................ 187
9.1
9.2
9.3
9.4
9.5
9.6
9.7

CHAPITRE 1 : GNRALITS, DCOUVERTE DE L'INFORMATIQUE ....................................................... 187


CHAPITRE 2 : TRAITEMENT FORMEL, INFORMATIQUE ET INTELLIGENCE ............................................ 187
CHAPITRE 3 : CODAGE DES INFORMATIONS ....................................................................................... 188
CHAPITRE 4 : POINT DE VUE DE L'UTILISATEUR OU DU PROGRAMMEUR ............................................. 188
CHAPITRE 5 : ARCHITECTURE D'UN SYSTME INFORMATIQUE ........................................................... 188
CHAPITRE 6 : LA PROGRAMMATION ................................................................................................... 188
CHAPITRE 7 : LE LOGICIEL ................................................................................................................. 189

TABLES ET INDEX ......................................................................................................................................... 191


194

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique
10.1
10.2
10.3
10.4

Tables et index

10

TABLE DES MATIRES........................................................................................................................ 191


TABLE DES FIGURES .......................................................................................................................... 195
TABLE DES PRINCIPES........................................................................................................................ 197
INDEX................................................................................................................................................ 198

10.2 Table des figures


Figure 2-1 : schma d'un traitement d'informations ................................................................... 3
Figure 2-2 : schma d'un rsum ................................................................................................ 4
Figure 2-3 : schma de la synthse d'un cours ........................................................................... 4
Figure 2-4 : schma d'un tri ........................................................................................................ 4
Figure 2-5 : schma d'une traduction.......................................................................................... 5
Figure 2-6 : schma d'un calcul de drive ................................................................................ 5
Figure 2-7 : schma de la rsolution d'un problme................................................................... 5
Figure 2-8 : schma de la conjugaison ....................................................................................... 5
Figure 2-9 : classement des traitements d'informations ............................................................. 6
Figure 2-10 : classement des traitements d'informations ........................................................... 8
Figure 2-11 : correction orthographique................................................................................... 11
Figure 2-12 : correction grammaticale ..................................................................................... 11
Figure 2-13 : premier texte en langue inconnue ....................................................................... 12
Figure 2-14 : second texte en langue inconnue ........................................................................ 12
Figure 2-15 : troisime texte en langue inconnue .................................................................... 12
Figure 2-16 : axe de la difficult de formaliser ........................................................................ 13
Figure 3-1 : le code ASCII ....................................................................................................... 21
Figure 3-2 : le code ASCII tendu............................................................................................ 22
Figure 3-3 : le code ANSI......................................................................................................... 23
Figure 3-4 : dessin coder........................................................................................................ 27
Figure 3-5 : partie agrandie d'une figure trame ...................................................................... 28
Figure 3-6 : courbe continue..................................................................................................... 29
Figure 3-7 : approximation d'une courbe.................................................................................. 29
Figure 3-8 : autre dessin coder............................................................................................... 31
Figure 3-9 : partie agrandie d'une reprsentation bitmap de caractres ................................... 32
Figure 3-10 : partie agrandie d'une reprsentation dgrade.................................................... 33
Figure 3-11 : enregistrement analogique des sons.................................................................... 34
Figure 3-12 : enregistrement numrique des sons .................................................................... 35
Figure 3-13 : signal original ..................................................................................................... 38
Figure 3-14 : signal dgrad ..................................................................................................... 39
Figure 3-15 : signal numris ................................................................................................... 39
Figure 3-16 : signal numris dgrad ..................................................................................... 40
Figure 3-17 : divers procds de saisie dans le cas de l'criture .............................................. 41
Figure 3-18 : divers procds de saisie dans le cas de la photographie.................................... 41
Figure 3-19 : la saisie d'informations, en gnral..................................................................... 42
Figure 3-20 : la restitution dans le cas de la photographie ....................................................... 42
Figure 3-21 : la restitution en gnral....................................................................................... 43
Figure 3-22 : la modification des supports crits ..................................................................... 43
Figure 3-23 : la modification des objets supports .................................................................... 44
Figure 3-24 : le stockage des objets supports de l'crit ............................................................ 44
Figure 3-25 : le stockage des objets supports en gnral ......................................................... 45
Figure 3-26 : le transports des objets supports dans le cas de l'crit ........................................ 45
Figure 3-27 : le transports des objets supports en gnral........................................................ 46
CeFIS-FUNDP

Ch. Duchteau

195

10

Tables et index

Initiation l'informatique

Figure 3-28 : le schma global de la mdiatisation...................................................................46


Figure 3-29 : l'ordinateur multimdia .......................................................................................48
Figure 3-30 : schma global de la mdiatisation dans le cas d'un systme informatique .........49
Figure 3-31 : reprsentations analogique et numrique ............................................................50
Figure 3-32 : graphe..................................................................................................................51
Figure 4-1 :schma d'un traitement d'informations par un systme informatique ....................54
Figure 4-2 : schma de l'activit de programmation .................................................................57
Figure 5-1 : architecture gnrale d'un systme informatique ..................................................59
Figure 5-2 : schma de la lecture ..............................................................................................63
Figure 5-3 : schma de l'criture ...............................................................................................63
Figure 5-4 : un bit......................................................................................................................66
Figure 5-5 : un octet ..................................................................................................................67
Figure 5-6 : les adresses ............................................................................................................68
Figure 5-7 : criture en binaire..................................................................................................69
Figure 5-8 : l'octet nul ...............................................................................................................70
Figure 5-9 : l'octet codant 255 ..................................................................................................70
Figure 5-10 : l'octet codant A....................................................................................................70
Figure 5-11 : codage d'un entier................................................................................................71
Figure 5-12 : architecture gnrale d'une unit centrale ...........................................................77
Figure 5-13 : modle simplifi d'unit centrale ........................................................................81
Figure 5-14 : le branchement conditionnel (1)..........................................................................83
Figure 5-15 : le branchement conditionnel (2)..........................................................................84
Figure 5-16 : le branchement conditionnel (3)..........................................................................84
Figure 5-17 : le branchement conditionnel (4)..........................................................................84
Figure 5-18 : schma du programme de calcul de max(a+b,c).................................................86
Figure 5-19 : rangement du programme en mmoire (1)..........................................................87
Figure 5-20 : rangement du programme en mmoire (2)..........................................................87
Figure 5-21 : programme de calcul de Max(a+b,c) ..................................................................88
Figure 5-22 : premire phase du premier cycle.........................................................................90
Figure 5-23 : 2me phase du premier cycle ..............................................................................91
Figure 5-24 : premire phase du deuxime cycle .....................................................................92
Figure 5-25 : deuxime phase du deuxime cycle ....................................................................93
Figure 5-26 : premire phase du troisime cycle ......................................................................94
Figure 5-27 : deuxime phase du troisime cycle.....................................................................95
Figure 5-28 : premire phase du quatrime cycle .....................................................................96
Figure 5-29 : deuxime phase du quatrime cycle....................................................................97
Figure 5-30 : premire phase du cinquime cycle ....................................................................98
Figure 5-31 : deuxime phase du cinquime cycle ...................................................................99
Figure 5-32 : premire phase du sixime cycle.......................................................................100
Figure 5-33 : deuxime phase du sixime cycle .....................................................................101
Figure 5-34 : rle de la mmoire cache...................................................................................108
Figure 5-35 : volution de la frquence d'horloge des processeurs ........................................111
Figure 5-36 : volution de la vitesse des processeurs .............................................................112
Figure 5-37 : loi de Moore ......................................................................................................114
Figure 5-38 : reprsentation bitmap d'un caractre.................................................................116
Figure 5-39 : reprsentation bitmap de caractres en ROM d'une imprimante ......................116
Figure 5-40 : graphique imprimer ........................................................................................118
Figure 5-41 : tranche graphique imprimer ...........................................................................118
Figure 5-42 : impression en colonnes .....................................................................................118
Figure 5-43 : caractre vectoris.............................................................................................119
196

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Tables et index

10

Figure 5-44 : agrandissement d'un caractre vectoris........................................................... 119


Figure 5-45 : caractre bitmap................................................................................................ 120
Figure 5-46 : agrandissement bitmap ..................................................................................... 120
Figure 5-47 : liaison srie ....................................................................................................... 122
Figure 5-48 : liaison en parallle ............................................................................................ 122
Figure 5-49 : Imprimante matricielle ..................................................................................... 123
Figure 5-50 : mcanisme d'impression aiguilles.................................................................. 123
Figure 5-51 : schma de fonctionnement d'une imprimante laser .......................................... 125
Figure 5-52 : impression laser ................................................................................................ 126
Figure 5-53 : paramtres d'valuation des imprimantes ......................................................... 127
Figure 6-1 : schma de l'activit de programmation .............................................................. 129
Figure 6-2 : schma de l'activit de programmation en langage machine.............................. 130
Figure 6-3 : schma de l'activit de programmation .............................................................. 137
Figure 6-4 : l'excutant-ordinateur dans les langages volus ............................................... 137
Figure 6-5 : un casier de type entier ....................................................................................... 138
Figure 6-6 : l'excutant-ordinateur : les casiers et la malle donnes ................................... 138
Figure 6-7 : l'excutant-ordinateur : l'environnement global de travail ................................. 139
Figure 6-8 : organigramme et programme correspondant dans un langage go to ............... 146
Figure 6-9 : exemple de GNS ................................................................................................. 148
Figure 6-10 : traduction d'un programme source unique........................................................ 157
Figure 6-11 : un graphe .......................................................................................................... 162
Figure 6-12 : gnalogie ......................................................................................................... 163
Figure 7-1 : les "couches logicielles" ..................................................................................... 172
Figure 7-2 : quelques dossiers et sous dossiers prsents sur mon disque dur ........................ 175
Figure 7-3 : quelques dossiers et fichiers prsents au sein d'un dossier................................. 175
Figure 7-4 : le "lancement" d'une application ........................................................................ 176
Figure 7-5 : le rle de l'interface-utilisateur ........................................................................... 179
Figure 7-6 : un dialogue en mode texte .................................................................................. 180
Figure 7-7 : MS-DOS, un systme d'exploitation avec une interface en mode texte............. 181
Figure 7-8 : MS-DOS, d'autres illustrations du mode texte ................................................... 181
Figure 7-9 : un logiciel avec interface semi-graphique .......................................................... 182
Figure 7-10 : une interface semi-graphique pour le systme d'exploitation........................... 182
Figure 7-11 : copie de fichier travers une interface semi-graphique ................................... 183
Figure 7-12 : une interface graphique..................................................................................... 183

10.3 Table des principes


Principe 1-1 : l'informatique n'est pas la science des ordinateurs .............................................. 1
Principe 2-1: ne dites plus informatique..................................................................................... 3
Principe 3-1: codage de l'information....................................................................................... 17
Principe 3-1 : c'est la numrisation qui est au coeur du multimdia ........................................ 49
Principe 4-1 : tout ce que fait un ordinateur, il le fait gouvern par un programme ................ 53
Principe 4-2 : il ne faut jamais dire "toujours" ......................................................................... 56
Principe 4-3 : programmer, c'est faire faire .............................................................................. 57
Principe 5-1 : pour tre excutable, un programme doit tre en mmoire centrale.................. 60
Principe 5-2 : l'alphabet de l'ordinateur est binaire .................................................................. 66
Principe 5-3 : l'octet est l'unit de taille mmoire et de quantit d'information ....................... 67

CeFIS-FUNDP

Ch. Duchteau

197

10

Tables et index

Initiation l'informatique

10.4 Index
CPS (caractres par seconde) ............... 121

A
adresse.....................................................67
affectation......................................139, 141
affichage........................................140, 143
algorithmique ........................................161
alphabet ...................................................37
alternative..............................................144
analogique ...............................................50
ANSI .......................................................23
appel de procdure ................................144
application.............................................176
ASCII ......................................................20
assembleur.............................................135

B
binaire......................................................66
bitmap................................30, 74, 115, 117
bootstrapping.........................................178
branchement ............................................84
branchement conditionnel .......................83
buffer.....................................................121
bus d'adresses ..........................................79
bus de commandes ..................................79
bus de donnes ........................................79
byte..........................................................66

C
caractres de contrle......................21, 116
codage ...............................................17, 37
codage de dessins ..............................27, 74
codage de sons ..................................33, 75
codage de texte..................................20, 70
codage des nombres entiers.....................71
codage des nombres rels..................24, 72
code .........................................................19
code opratoire........................................79
commande .............................................174
compilateur....................................157, 159
compteur ordinal .............................77, 104
condition................................................145
conditions ..............................................141
convertisseur analogique-numrique ......36
convertisseur numrique-analogique ......36
correcteur grammatical ...........................11
correcteur orthographique .......................10
couche logicielle ...................................172
198

D
dessin vectoris..................................... 119
discrtisation..................................... 28, 37
disque compact ....................................... 36
dossier................................................... 174
DPI (Dot Per Inch) ............................... 121
draw ........................................................ 31

E
chantillonnage....................................... 35
entre .................................................... 142
erreur de troncature ................................ 73
excution ................................................ 80
exposant.................................................. 73

F
faire faire ................................................ 56
fichier.................................................... 174
formalisable .............................................. 8
formel ................................................. 8, 76
frquence d'horloge .............................. 110

G
GigaOctet (Go) ....................................... 75
GNS .............................................. 146, 148
graphes de Nassi-Schneidermann......... 146

H
horloge.................................................... 77

I
imprimante............................................ 115
imprimante jet d'encre ....................... 124
imprimante laser ................................... 124
imprimante matricielle ......................... 122
information ............................................. 19
informatique ............................................. 8
instruction
d'affectation ........................................................... 139
de lecture................................................................ 139
de sortie.................................................................. 140

instruction en langage machine .............. 79


intelligence ............................................. 14
interface-utilisateur............................... 179

Ch. Duchteau

CeFIS-FUNDP

Initiation l'informatique

Tables et index

interprteur............................................ 159
interprteur............................................ 158

OCR ........................................................ 33
octet.........................................................66
ordinogramme ....................................... 145
organigramme ............................... 145, 146

KiloOctet (Ko)........................................ 75

L
label ...................................................... 136
langage de programmation ................... 131
langages go to .................................... 143
langages d'assemblage .......................... 133
langages machine.................................. 105
langages structurs................................ 144
lecture ................................................... 142
liaison parallle..................................... 122
liaison srie ........................................... 122
logiciel ............................................ 53, 171

11

P
priphrique de sortie.............................. 60
priphrique d'entre...................24, 30, 60
pilote d'imprimante ............................... 117
PPM (pages par minute)........................ 121
processeur ............................................... 76
programmation ..................................12, 56
langage ...................................................................131

programme ..................................9, 53, 120


objet........................................................................159
source .....................................................................159

programmeur........................................... 54

d'application........................................................... 172
de base ................................................................... 172

logiciel d'application............................. 184

quantit d'information .............................76

machine de von Neumann .................... 104


mantisse .................................................. 73
mdia ...................................................... 40

reconnaissance de la parole..................... 36
reconnaissance optique ...........................32
registre.....................................................77
registre d'adresses.................................... 77
registre d'instruction................................78
rptition ............................................... 144
rsolution............................................... 121
ROM ....................................................... 63

communiquer ........................................................... 45
modifier ................................................................... 43
restituer .................................................................... 42
saisir......................................................................... 41
stocker...................................................................... 44

MgaOctet (Mo) ..................................... 75


mmoire adressable ........................ 78, 106
mmoire centrale .................................... 60
mmoire de masse .................................. 60
mmoire externe ..................................... 60
mmoire morte...................................... 116
mmoire tampon ................................... 121
mmoire vive .......................................... 64
mmoire-cache...................................... 108
MIPS..................................................... 111
MS-DOS ....................................... 178, 180
multimdia.............................................. 46

S
scanner .................................................... 30
setup ........................................................ 65
sortie...................................................... 143
systme d'exploitation...........................173
systme expert.......................................167
systme informatis ................................ 54

tche ......................................................176
traitements d'information ..........................3
tramage.................................................... 27

numrique ............................................... 50
numrisation ........................................... 28

UAL ........................................................78
UNICODE............................................... 23
unit arithmtique et logique .................. 78

objet ........................................................ 31
CeFIS-FUNDP

Ch. Duchteau

199

11

Tables et index

unit centrale ...........................................59


unit de commande .................................77
unit de contrle......................................77
utilisateur.................................................54

200

Initiation l'informatique

V
variable ......................................... 138, 141
vectoris.................................................. 31
virgule flottante ................................ 26, 72
vitesse d'impression.............................. 121

Ch. Duchteau

CeFIS-FUNDP

You might also like