# Zuse 3

Le Z3 était un calculateur à relais électromécaniques conçu par l'ingénieur allemand Konrad Zuse. Ce calculateur était la première machine programmable pleinement automatique, ce qui en ferait le premier ordinateur du monde. Il était composé de 2 000 relais électromécaniques, fonctionnait à une fréquence d'horloge de 5 à 10 Hz et exploitait des mots d'une longueur de 22 bits. Le code et les données étaient stockés sur des rubans perforés en celluloïd.
Le Z3 fut achevé à Berlin en 1941. L'Institut de recherche aéronautique allemand l'utilisait pour réaliser des analyses statistiques sur les vibrations des ailes. Il fut détruit par des bombardements aériens en 1943. Une réplique entièrement opérationnelle fut construite dans les années 1960 par la société de Zuse, Zuse KG, et reste exposée au Deutsches Museum à Munich.
Zuse demanda au gouvernement allemand de lui fournir des tubes électroniques mais sa demande fut rejetée car considérée comme « non indispensable à l'effort de guerre ».

## Conception et développement

Zuse conçut le Z1 entre 1935 et 1936 et le construisit entre 1936 et 1938. Le Z1 était entièrement mécanique et ne pouvait fonctionner que quelques minutes. Helmut Schreyer (en) conseilla à Zuse d'utiliser une technologie différente. En tant que doctorant à l'université technique de Berlin en 1937, il travaillait sur l'implantation d'opérations booléennes dans des dispositifs à base de tubes à vide. En 1938, Schreyer fit la démonstration d'un circuit construit avec ces tubes à une petite audience et exposa sa vision d'un calculateur électronique. Cependant, le plus grand système électronique opérationnel contenait trop peu de tubes rendant cette idée irréalisable.
Zuse décida alors de créer une nouvelle machine avec des relais. La réalisation du Z2 fut soutenue financièrement par Kurt Pannke, qui fabriquait de petits calculateurs. Le Z2 fut terminé en 1939 et présenté au Deutsche Versuchsanstalt für Luftfahrt (« Laboratoire allemand pour l'aviation ») en 1940 à Berlin-Adlershof. Zuse eut de la chance car ce fut l'une des rares fois que le Z2 fonctionna et il convainquit le DVL de financer sa prochaine machine.
Pour améliorer le Z2, il construisit le Z3 en 1941, qui était un projet hautement secret du gouvernement allemand. Jenissen, membre du Reichsluftfahrtministerium (ministère de l'Air) se comporta comme le superviseur officiel du projet.
Le Z3 fut terminé en 1941 et était plus rapide et beaucoup plus fiable que les Z1 et Z2. Le Z3 pouvait supporter les valeurs infinies et son programme était stocké sur un enregistrement externe, ce qui permettait de changer de programme sans avoir à modifier les connexions. Les nombres entrés en base décimale étaient convertis en binaire à virgule flottante. Le 12 mai, il fut présenté à une audience de scientifiques dont A. Teichmann et C. Schmieden du Deutsche Versuchsanstalt für Luftfahrt (German Laboratory for Aviation), à Berlin.
Zuse se concentra par la suite sur le Z4 qui ne put être terminé qu'après la guerre.

## Comparaison aux autres travaux

Le Z3 utilisait le système binaire, sur lequel Leibniz avait travaillé à la fin du XVIIe siècle$^,$. George Boole l'exploita pour développer l'algèbre de Boole. En 1937, Claude Shannon du Massachusetts Institute of Technology présenta l'idée d'appliquer l'algèbre booléenne aux relais électroniques dans un séminaire sur la conception des circuits numériques. Néanmoins, Zuse fut le premier qui rassembla tout cela dans une réalisation pratique, le Z3, calculateur programmable.
La première conception de calculateur programmable fut celle de la machine analytique de Charles Babbage au XIXe siècle. Ce concept n'a jamais pu être réalisé avant, sûrement parce qu'il était décimal et donc bien plus compliqué que la simplicité de la conception binaire du Z3. Tout de même en 1991, à partir des plans originaux de Charles Babbage, le moteur de soustraction de sa machine fut réalisé et fut pleinement fonctionnel. Et si Ada Lovelace, l'amie de Babbage, fut la première programmeuse théorique d'une machine inexistante, Zuse fut pour sa part le premier programmeur d'une machine réelle en pratique.
Les 10 ordinateurs britanniques Colossus furent les premiers ordinateurs électroniques à l'exception du Atanasoff–Berry Computer non programmable. Ils utilisaient des tubes à vide et des représentations binaires des nombres. La programmation était réalisée par l'intermédiaire de câbles et de relais. Son développement fut gardé secret durant plusieurs décennies ce qui rendit les revendications de « premières » informatiques incorrectes.
L'ENIAC fut terminé après la guerre. Il s'agissait du premier ordinateur électronique conçu spécifiquement comme Turing-complet. Il utilisait des tubes à vides en guise de commutateurs, alors que le Z3 utilisait encore des relais électromécaniques. En revanche, il utilisait le système décimal et jusqu'en 1948, pour le programmer il fallait changer de nombreuses connexions par câbles.
Le Small-Scale Experimental Machine de 1948 et l'EDSAC de 1949 furent les premiers ordinateurs à architecture de von Neumann, c'est-à-dire que les programmes étaient stockés dans l'ordinateur lui-même. Ce concept a été nommé d'après John von Neumann même si ce dernier reprenait des travaux d'Alan Turing et que l'idée avait été émise par Konrad Zuse en 1936 dans un brevet qui fut rejeté.
Caractéristiques des premiers ordinateurs des années 1940 :
| Nom | Pays | Lancement | Système de nombres | Mécanique | Programmation | Turing-complet |
| Zuse Z3 | Allemagne | Mai 1941 | Binaire virgule flottante | Électromécanique | Programmation à base de rubans perforés | Oui |
| Atanasoff–Berry Computer | États-Unis | 1942 | Binaire | Électronique | Non programmable | Non |
| Colossus Mark 1 | Royaume-Uni | Février 1944 | Binaire | Électronique | Programmation à base de câblage et de commutateurs | Non |
| Harvard Mark I – IBM ASCC | États-Unis | Mai 1944 | Décimal | Électromécanique | Programmation à base de rubans perforés | Non |
| Colossus Mark 2 | Royaume-Uni | Juin 1944 | Binaire | Électronique | Programmation à base de câblages et de commutateurs | Non |
| Zuse Z4 | Allemagne | Mars 1945 | Binaire virgule flottante | Électromécanique | Programmation à base de rubans perforés | Oui |
| ENIAC | États-Unis | Juillet 1946 | Décimal | Électronique | Programmation à base de câblages et de commutateurs | Oui |
| Small-Scale Experimental Machine (Baby) | Royaume-Uni | Juin 1948 | Binaire | Électronique | Programme stocké dans un tube de Williams | Oui |
| Modified ENIAC | États-Unis | Septembre 1948 | Décimal | Électronique | Programmation à base de câblages et de commutateurs et d'un système primitif de ROM | Oui |
| EDSAC | Royaume-Uni | Mai 1949 | Binaire | Électronique | Programme stocké dans une mémoire à ligne de délai | Oui |
| Manchester Mark I | Royaume-Uni | Octobre 1949 | Binaire | Électronique | Programme stocké dans un tube de Williams et dans un tambour magnétique | Oui |
| CSIRAC | Australie | Novembre 1949 | Binaire | Électronique | Programme stocké dans une mémoire à ligne de délai | Oui |

## Relation au concept de machine de Turing universelle

Il était possible de réaliser des boucles sur le Z3 mais il n'existait pas d'instructions conditionnelles. Néanmoins, le Z3 était Turing-complet, la manière d'implanter une machine de Turing sur le Z3 fut démontrée par Raúl Rojas (en) en 1998$^,$. Rojas écrivit que l'« on peut par conséquent dire que d'un point de vue théorique, le Z3 est équivalent aux ordinateurs actuels en revanche d'un point de vue pratique, la manière dont il fut programmé le place à part des ordinateurs modernes. »
D'un point de vue pragmatique, le Z3 fournissait un jeu d'instructions pour les applications des années 1940. Zuse était d'ailleurs un ingénieur civil qui construisit des ordinateurs pour faciliter son travail dans sa profession principale.

## Caractéristiques techniques

* Vitesse moyenne de calcul : addition 0,8 seconde ; multiplication 3 secondes
* Unité arithmétique : binaire à virgule flottante avec des mots de 22 bits
* Opérations effectuées : addition, soustraction, multiplication, division, racine carrée
* Mémoire : 64 mots d'une longueur de 22 bits
* Programme : sur ruban perforé
* Entrée : nombres décimaux en virgule flottante
* Sortie : nombres décimaux en virgule flottante
* Les entrées et sorties étaient facilitées par un terminal possédant un clavier et une rangée de lampes pour afficher les résultats.
* Composants : environ 2 000 relais (1 400 pour la mémoire)
* Fréquence : 5,3 Hz
* Puissance réelle : 20 flops
* Consommation : environ 4 000 watts
* Poids : environ 1 000 kg