La machine universelle (1930-1950)
Introduction
Au tournant des années 1930, deux questions très différentes convergent vers la même réponse. D'un côté, des logiciens — Alan Turing, Alonzo Church, Kurt Gödel — cherchent à savoir ce qu'une machine peut, en principe, calculer. De l'autre, des ingénieurs soumis à l'urgence militaire de la Seconde Guerre mondiale tentent de casser des codes ennemis ou de calculer des tables de tir. La rencontre de ces deux mouvements donne naissance, entre 1936 et 1945, à la machine universelle programmable — l'ordinateur tel que nous le connaissons.
La machine de Turing (1936)
Le mathématicien anglais Alan Turing publie en 1936 un article intitulé On Computable Numbers. Pour répondre à une question abstraite — quels problèmes mathématiques peuvent être résolus par un procédé mécanique ? — il imagine une machine fictive : un ruban infini divisé en cases, une tête de lecture/écriture qui se déplace, et un petit jeu de règles. Cette construction imaginaire, qu'on appellera machine de Turing, est en réalité un modèle théorique de tout ce qui est calculable.
Portrait noir et blanc d'Alan Turing jeune, lunettes rondes, tenue de cricket, années 1930
L'intuition fondamentale de Turing tient en une phrase : une seule machine, correctement programmée, peut simuler n'importe quelle autre machine de calcul. C'est le concept de machine universelle — une machine généraliste qui contient en elle toutes les machines spécialisées possibles.
Qu'est-ce qu'une machine de Turing ?
Colossus et Bletchley Park (1943-1945)
Pendant la guerre, Turing travaille à Bletchley Park, le centre britannique de cryptanalyse. Son équipe conçoit la Bombe, une machine électromécanique capable de chercher les réglages quotidiens de la machine de chiffrement allemande Enigma. En 1943, l'ingénieur Tommy Flowers construit Colossus, considéré comme le premier ordinateur électronique programmable au monde — il sert à casser le chiffre Lorenz utilisé pour les communications de haut commandement allemand.
Colossus n'est pas une machine universelle au sens de Turing : il reste spécialisé dans la cryptanalyse. Mais il prouve qu'on peut faire calculer des tubes à vide, à des vitesses qui rendent obsolètes les machines électromécaniques.
L'ENIAC (1945) : 30 tonnes pour additionner
De l'autre côté de l'Atlantique, l'ENIAC (Electronic Numerical Integrator And Computer) est mis en service à l'Université de Pennsylvanie en 1945. Il occupe une salle entière, pèse 30 tonnes et contient près de 18 000 tubes à vide. Son rôle initial : calculer des tables de tir balistique pour l'armée américaine.
L'ENIAC est très rapide pour l'époque — plusieurs milliers d'additions par seconde — mais il souffre d'un défaut majeur : il n'est pas vraiment programmable. Changer de calcul demande de recâbler physiquement la machine, en déplaçant des câbles et en basculant des centaines d'interrupteurs. Une « reprogrammation » peut prendre plusieurs jours.
Salle de l'ENIAC en 1946, deux opératrices reconfigurant des câbles devant un mur d'armoires électroniques
L'architecture de von Neumann (1945)
L'inconvénient de l'ENIAC est évident : le matériel encode le programme. Pour rendre une machine réellement universelle, il faut stocker le programme en mémoire, comme les données qu'il manipule. C'est l'idée formalisée en 1945 par le mathématicien John von Neumann dans un rapport célèbre sur la machine EDVAC.
L'architecture de von Neumann s'organise autour de cinq composants :
| Composant | Rôle |
|---|---|
| Mémoire | Stocke programme et données dans le même espace |
| Unité de contrôle | Lit les instructions, organise leur exécution |
| Unité arithmétique et logique (UAL) | Effectue calculs et comparaisons |
| Entrées | Reçoivent les données (clavier, capteurs…) |
| Sorties | Restituent les résultats (écran, imprimante…) |
L'idée centrale
Le programme est une donnée comme les autres. Il peut donc être chargé, modifié, généré par un autre programme. Cette dualité fait de l'ordinateur une machine vraiment universelle — pas une machine spécialisée.
Quelle est l'innovation centrale de l'architecture de von Neumann ?
Pour aller plus loin
Tous les ordinateurs construits depuis 1948 suivent peu ou prou ce modèle — y compris votre smartphone. Quelques machines historiques marquent cependant le tournant : le Manchester Baby (1948) est le premier ordinateur à programme stocké réellement opérationnel, suivi de l'EDSAC à Cambridge (1949). Dans le prochain cours, vous verrez comment l'invention du transistor en 1947 va, en quelques décennies, miniaturiser ces machines de 30 tonnes en objets de poche.