texte original de Turing section
4
traduction
Patrice Blanchard
4. Les ordinateurs
On peut expliquer l'idée qui est à l'origine des
calculateurs numériques en disant que ces machines sont destinées
à mener à bien toutes les opérations qu'un calculateur
humain pourrait effectuer. Le calculateur humain est censé suivre
des règles fixes; il n'a pas l'autorisation de s'en éloigner si
peu que ce soit. Nous pouvons supposer que ces règles lui sont
fournies dans un livre, qui est modifié chaque fois qu'on lui
donne un nouveau travail. Il dispose aussi d'une quantité
illimitée de papier, sur lequel il fait ses calculs. il peut
encore faire ses multiplications et ses additions sur une « machine
de bureau », mais cela n'a pas d'importance. Si nous utilisons l'explication ci-dessus comme définition,
le danger sera la circularité de l'argumentation.
Nous l'évitons en donnant les grandes lignes des moyens par
lesquels l'effet désiré est obtenu. On peut habituellement
considérer qu'un ordinateur est composé de trois parties: 1) une mémoire;
une unité d'exécution; une unité de contrôle.
La mémoire est une réserve d'informations et
correspond au papier du calculateur humain, que ce soit le
papier sur lequel il fait ses calculs ou celui sur lequel est
imprimé son livre de règles. Dans la mesure où le calculateur
humain fait des calculs dans sa tête, une partie de la mémoire correspondra à sa mémoire.
L'unité d'exécution est la partie qui effectue les
différentes opérations individuelles qu'un calcul comporte. Ces opérations individuelles varieront d'une machine à
l'autre. La machine peut habituellement exécuter des opérations relativement longues, telles que: «Multipliez 3 540 675
445 par 7076345687 », mais dans certaines machines seules
des opérations très simples, comme « Écrivez 0 », sont
possibles. Nous avons mentionné que le livre des règles fourni
au calculateur est remplacé dans la machine par une partie
de la mémoire. On l'appelle alors la table des instructions.
C'est le rôle de l'unité de contrôle de vérifier que ces
instructions sont correctement exécutées et dans le bon ordre. L'unité
de contrôle est faite de telle manière que cela se
produit nécessairement. Les informations stockées dans la mémoire sont
habituellement réparties en groupes de taille modérée.
Dans une machine, par exemple, un groupe pourrait être
constitué par dix chiffres décimaux. Des numéros sont attribués,
de manière systématique, aux parties de la mémoire dans
lesquelles les différents groupes d'informations sont enregistrés.
Une instruction typique pourrait être: « Ajoutez le nombre enregistré dans la position
6809 à celui qui est en 4302 et enregistrez le résultat dans
cette dernière position. » Il est inutile de dire que cela n'apparaîtra pas en
français dans la machine, mais se trouvera probablement codé
dans une forme telle que: 6 809430217. Ici, 17 indique
laquelle des différentes opérations possibles doit être exécutée
à partir des deux nombres. Dans ce cas, l'opération est celle
décrite ci-dessus, c'est-à-dire: «Ajoutez le nombre ... »
On remarquera que l'instruction a dix chiffres, et qu'elle
forme ainsi un groupe, d'informations facile à manipuler.
L'unité
de contrôle suivra normalement les instructions
auxquelles elle doit obéir dans l'ordre des positions dans
lesquelles elles sont enregistrées, mais on peut à l'occasion rencontrer
une instruction comme: « Obéissez maintenant à l'instruction enregistrée
dans la position 5 606, et continuez à partir de là. » Ou encore: « Si la position 4 505 contient 0, obéissez ensuite
à l'instruction enregistrée en 6 707, sinon continuez
directement. » Les instructions de ce dernier type sont très
importantes, car elles rendent possible la répétition continue d'une
suite d' opérations jusqu'à ce qu'une condition quelconque soit
remplie, cependant que la machine obéit non pas à de
nouvelles instructions à chaque répétition, mais aux mêmes. Pour employer une analogie domestique, supposons que
la mère de Tommy veuille qu'il passe chez le cordonnier
tous les matins en allant à l'école pour voir si ses
chaussures sont prêtes; elle peut le lui redemander tous les matins,
ou alors placer une fois pour toutes dans l'entrée une note
qu'il verra à son départ pour l'école et qui lui dit de passer
chez le cordonnier et aussi de détruire la note à son retour
s'il ramène les chaussures.
Le lecteur doit accepter comme un fait établi que
les ordinateurs peuvent être, et ont été, construits
suivant les principes que nous avons décrits, et qu'ils peuvent en fait
imiter de très près les actions d'un calculateur humain. Le livre de règles dont nous avons dit que notre
calculateur humain se servait était bien sûr une fiction
commode. Les vrais calculateurs humains se rappellent en effet ce
qu'ils ont à faire. Si l'on veut faire imiter par une machine
les comportements du calculateur humain dans quelque opération complexe, on doit lui demander comment il fait, puis
traduire la réponse sous la forme d'une table d'instructions,
autrement dit: un programme. « Programmer une machine pour exécuter l'opération A » veut dire: mettre dans la
machine la table d'instructions appropriée pour qu'elle exécute A.
Une variante intéressante de l'idée d'ordinateur
est 1'« ordinateur avec un élément de hasard ». Ces
ordinateurs comportent des instructions qui incluent le jet d'un dé,
ou tout autre procédé électronique équivalent. Une telle
instruction peut par exemple être : « Jetez le dé, et mettez le nombre obtenu dans la mémoire
1 000. » On décrit parfois une telle machine comme
ayant un libre arbitre (bien que je n'utiliserais pas cette
expression moi-même). Il n'est pas possible normalement de déterminer
à partir de l'observation d'une machine si elle possède
un élément de hasard, car un effet similaire peut être obtenu
par des moyens tels que celui de faire dépendre les choix
des décimales de TC. La plupart des ordinateurs existants ont seulement
une mémoire fixe. Il n'y a pas de difficulté théorique
à concevoir un ordinateur avec une mémoire illimitée. Bien
entendu, seule une partie finie peut être utilisée à la fois. De
même, on a pu seulement en construire une quantité finie, mais
nous pouvons imaginer que l'on en rajoutera autant qu'il sera nécessaire.
De tels ordinateurs ont un intérêt théorique
particulier et on les appellera «ordinateurs à capacité infinie».
L'idée d'ordinateur est ancienne. Charles Babbage,
Lucasian Professor of Mathematics à Cambridge de 1828 à
1839, avait conçu une telle machine, appelée «machine
analytique », mais elle ne fut jamais terminée. Bien que Babbage
ait eu toutes les idées essentielles, sa machine ne représentait
pas à l'époque un projet très intéressant. La vitesse
qu'elle aurait pu atteindre aurait été nettement plus grande que
celle d'un calculateur humain, mais quelque chose comme 1 00 fois plus faible que celle de la machine de Manchester, qui est
l'une des machines modernes les plus lentes. La mémorisation
devait être purement mécanique, utilisant des rouages et
des cartes. Le fait que la machine analytique de Babbage ait dû
être entièrement mécanique nous aidera à nous débarrasser
d'une superstition. On attache souvent de l'importance au
fait que les ordinateurs modernes sont électriques et que le
système nerveux aussi est électrique. Puisque la machine de
Babbage n'était pas électrique, et puisque tous les
ordinateurs lui sont en un sens équivalents, nous voyons que
l'utilisation de l'électricité ne peut guère avoir d'importance théorique.
On trouve, bien sûr, habituellement l'électricité là où
l'on a besoin de signaux rapides, ainsi il n'est pas surprenant que
nous la trouvions dans les deux cas. Dans le système nerveux, les phénomènes chimiques
sont au moins aussi importants que les phénomènes électriques. Dans certains ordinateurs le système de mémorisation
est principalement acoustique. On voit donc que
l'utilisation de l'électricité n'est qu'une similarité très
superficielle. Si nous souhaitons découvrir de telles similarités, nous
devrions plutôt chercher des analogies mathématiques de
fonction.
section précédente ---
section suivante |