Moteur analytique - Analytical Engine

Partie de la machine à calculer avec un mécanisme d'impression du moteur analytique, construit par Charles Babbage, tel qu'il est exposé au Science Museum (Londres)

Le moteur analytique était un projet d' ordinateur mécanique à usage général conçu par le mathématicien et pionnier de l'informatique anglais Charles Babbage . Il a été décrit pour la première fois en 1837 comme le successeur du moteur différentiel de Babbage , qui était une conception pour un ordinateur mécanique plus simple.

Le moteur analytique incorporait une unité logique arithmétique , un flux de contrôle sous la forme de branchements conditionnels et de boucles , et une mémoire intégrée , ce qui en fait la première conception d'un ordinateur à usage général qui pourrait être décrit en termes modernes comme Turing-complet . En d'autres termes, la structure logique du moteur analytique était essentiellement la même que celle qui a dominé la conception informatique à l'ère électronique. Le moteur analytique est l'une des réalisations les plus réussies de Charles Babbage.

Babbage n'a jamais pu terminer la construction de ses machines en raison de conflits avec son ingénieur en chef et d'un financement insuffisant. Ce n'est qu'en 1941 que Konrad Zuse a construit le premier ordinateur à usage général, le Z3 , plus d'un siècle après que Babbage eut proposé le moteur analytique pionnier en 1837.

Concevoir

Deux types de cartes perforées utilisées pour programmer la machine. Premier plan : « cartes opérationnelles », pour la saisie des instructions ; background : 'cartes variables', pour la saisie de données

La première tentative de Babbage d'un appareil de calcul mécanique, le Difference Engine , était une machine à usage spécial conçue pour tabuler des logarithmes et des fonctions trigonométriques en évaluant des différences finies pour créer des polynômes approximatifs . La construction de cette machine n'a jamais été achevée; Babbage a eu des conflits avec son ingénieur en chef, Joseph Clement , et finalement le gouvernement britannique a retiré son financement pour le projet.

Au cours de ce projet, Babbage s'est rendu compte qu'une conception beaucoup plus générale, le moteur analytique, était possible. Le travail sur la conception du moteur analytique a commencé en c. 1833.

L'entrée, constituée de programmes (« formules ») et de données, devait être fournie à la machine via des cartes perforées , méthode utilisée à l'époque pour diriger des métiers mécaniques comme le métier Jacquard . Pour la sortie, la machine aurait une imprimante, un traceur de courbes et une cloche. La machine serait également capable de poinçonner des numéros sur des cartes pour les lire plus tard. Il utilisait l' arithmétique à virgule fixe en base 10 ordinaire .

Il devait y avoir un magasin (c'est-à-dire une mémoire) capable de contenir 1 000 nombres de 40 chiffres décimaux chacun (environ 16,6 Ko ). Une unité arithmétique (le "moulin") serait capable d'effectuer les quatre opérations arithmétiques , ainsi que des comparaisons et éventuellement des racines carrées . Initialement (1838), il a été conçu comme un moteur de différence incurvé sur lui-même, dans une disposition généralement circulaire, avec le long magasin sortant d'un côté. Les dessins ultérieurs (1858) représentent une disposition de grille régularisée. Comme l' unité centrale de traitement (CPU) d'un ordinateur moderne, le moulin s'appuierait sur ses propres procédures internes , à stocker sous la forme de chevilles insérées dans des tambours rotatifs appelés « tonneaux », pour exécuter certaines des instructions les plus complexes que le le programme de l'utilisateur peut spécifier.

Le langage de programmation à employer par les utilisateurs s'apparentait aux langages d'assemblage modernes . Les boucles et les branchements conditionnels étaient possibles, et donc le langage tel qu'il a été conçu aurait été Turing-complet tel que défini plus tard par Alan Turing . Trois types différents de cartes perforées ont été utilisés : une pour les opérations arithmétiques, une pour les constantes numériques et une pour les opérations de chargement et de stockage, transférant les nombres du magasin à l'unité arithmétique ou inversement. Il y avait trois lecteurs distincts pour les trois types de cartes. Babbage a développé quelque deux douzaines de programmes pour le moteur analytique entre 1837 et 1840, et un programme plus tard. Ces programmes traitent les polynômes, les formules itératives, l'élimination de Gauss et les nombres de Bernoulli .

En 1842, le mathématicien italien Luigi Federico Menabrea a publié une description du moteur en français, basée sur des conférences que Babbage a données lors de sa visite à Turin en 1840. En 1843, la description a été traduite en anglais et abondamment annotée par Ada Lovelace , qui s'était intéressée dans le moteur huit ans plus tôt. En reconnaissance de ses ajouts à l'article de Menabrea, qui comprenait un moyen de calculer les nombres de Bernoulli à l'aide de la machine (largement considéré comme le premier programme informatique complet), elle a été décrite comme la première programmeuse informatique .

Construction

Le moulin à moteur analytique d'Henry Babbage, construit en 1910, au Science Museum (Londres)

Vers la fin de sa vie, Babbage a cherché des moyens de construire une version simplifiée de la machine et en a assemblé une petite partie avant sa mort en 1871.

En 1878, un comité de l' Association britannique pour l'avancement des sciences a décrit le moteur analytique comme « une merveille d'ingéniosité mécanique », mais a recommandé de ne pas le construire. Le comité a reconnu l'utilité et la valeur de la machine, mais n'a pas pu estimer le coût de sa construction et n'était pas sûr que la machine fonctionnerait correctement après sa construction.

Par intermittence de 1880 à 1910, le fils de Babbage, Henry Prevost Babbage, construisait une partie du moulin et de l'appareil d'impression. En 1910, il était capable de calculer une liste (défectueuse) de multiples de pi . Cela ne constituait qu'une petite partie de l'ensemble du moteur; il n'était pas programmable et n'avait pas de stockage. (Les images populaires de cette section ont parfois été mal étiquetées, ce qui implique qu'il s'agissait de l'ensemble du moulin ou même de l'ensemble du moteur.) Le « Moulin à moteur analytique » d'Henry Babbage est exposé au Science Museum de Londres. Henry a également proposé de construire une version de démonstration du moteur complet, avec une plus petite capacité de stockage : "peut-être pour une première machine dix (colonnes) feraient l'affaire, avec quinze roues dans chacune". Une telle version pourrait manipuler 20 nombres de 25 chiffres chacun, et ce qu'on pourrait lui dire de faire avec ces nombres pourrait toujours être impressionnant. "Ce n'est qu'une question de cartes et de temps", écrivait Henry Babbage en 1888, "... et il n'y a aucune raison pour que (vingt mille) cartes ne soient pas utilisées si nécessaire, dans une Machine Analytique aux fins du mathématicien ".

En 1991, le London Science Museum a construit un spécimen complet et fonctionnel du moteur de différence n° 2 de Babbage , une conception qui incorporait les raffinements découverts par Babbage lors du développement du moteur analytique. Cette machine a été construite en utilisant des matériaux et des tolérances d'ingénierie qui auraient été disponibles pour Babbage, étouffant la suggestion que les conceptions de Babbage n'auraient pas pu être produites en utilisant la technologie de fabrication de son temps.

En Octobre 2010, John Graham-Cumming a lancé une campagne « Plan 28 » pour lever des fonds par « souscription publique » afin de permettre l' étude historique et académique sérieuse des plans de Babbage, en vue de puis construire et tester une conception virtuelle de travail entièrement qui sera ensuite à son tour, permettre la construction du moteur analytique physique. En mai 2016, la construction réelle n'avait pas été tentée, car aucune compréhension cohérente ne pouvait encore être obtenue à partir des dessins de conception originaux de Babbage. En particulier, il n'était pas clair s'il pouvait gérer les variables indexées qui étaient requises pour le programme Bernoulli de Lovelace. En 2017, l'effort « Plan 28 » a signalé qu'une base de données consultable de tout le matériel catalogué était disponible et qu'un examen initial des volumineux livres de griffonnage de Babbage avait été achevé.

De nombreux dessins originaux de Babbage ont été numérisés et sont accessibles au public en ligne.

Jeu d'instructions

Schéma de plan de la machine analytique de 1840

Babbage n'est pas connu pour avoir écrit un ensemble explicite d'instructions pour le moteur à la manière d'un manuel de processeur moderne. Au lieu de cela, il a montré ses programmes sous forme de listes d'états pendant leur exécution, montrant quel opérateur était exécuté à chaque étape avec peu d'indications sur la façon dont le flux de contrôle serait guidé.

Allan G. Bromley a supposé que le jeu de cartes pouvait être lu dans les sens avant et arrière en fonction du branchement conditionnel après avoir testé les conditions, ce qui rendrait le moteur Turing-complet :

... les cartes pourraient être commandées pour avancer et reculer (et donc pour boucler)...

L'introduction pour la première fois, en 1845, d'opérations utilisateur pour une variété de fonctions de service, y compris, surtout, un système efficace pour le contrôle utilisateur du bouclage dans les programmes utilisateur. Il n'y a aucune indication sur la façon dont le sens de rotation de l'opération et des cartes variables est spécifié. En l'absence d'autres preuves, j'ai dû adopter l'hypothèse minimale par défaut selon laquelle les cartes d'opération et de variable ne peuvent être inversées que si cela est nécessaire pour implémenter les boucles utilisées dans les exemples de programmes de Babbage. Il n'y aurait aucune difficulté mécanique ou de microprogrammation à placer la direction du mouvement sous le contrôle de l'utilisateur.

Dans leur émulateur du moteur, Fourmilab dit :

Le lecteur de carte du moteur n'est pas contraint de traiter simplement les cartes dans une chaîne l'une après l'autre du début à la fin. Il peut, en outre, dirigé par les cartes mêmes qu'il lit et conseillé par l'activation du levier de démarrage du moulin, soit faire avancer la chaîne de cartes, en sautant les cartes intermédiaires, soit en arrière, provoquant le traitement une fois des cartes précédemment lues. de nouveau.

Cet émulateur fournit un jeu d'instructions symboliques écrites, bien qu'il ait été construit par ses auteurs plutôt que basé sur les travaux originaux de Babbage. Par exemple, un programme factoriel s'écrirait :

N0 6
N1 1
N2 1
×
L1
L0
S1
–
L0
L2
S0
L2
L0
CB?11

où le CB est l'instruction de branchement conditionnel ou "carte combinée" utilisée pour faire sauter le flux de contrôle, dans ce cas en arrière de 11 cartes.

Influence

Influence prévue

Babbage a compris que l'existence d'un ordinateur automatique susciterait l'intérêt pour le domaine maintenant connu sous le nom d' efficacité algorithmique , écrivant dans ses Passages de la vie d'un philosophe , « Dès qu'un moteur analytique existera, il guidera nécessairement le cours futur de la Chaque fois qu'un résultat est recherché par son aide, la question se pose alors : par quel mode de calcul ces résultats peuvent-ils être obtenus par la machine dans les plus brefs délais ? »

L'informatique

À partir de 1872, Henry a continué avec diligence le travail de son père, puis par intermittence à la retraite en 1875.

Percy Ludgate a écrit sur le moteur en 1914 et a publié sa propre conception pour un moteur analytique en 1908. Il a été élaboré en détail, mais jamais construit, et les dessins n'ont jamais été retrouvés. Le moteur de Ludgate serait beaucoup plus petit (environ 8 pieds cubes (230  L )) que celui de Babbage, et serait hypothétiquement capable de multiplier deux nombres à 20 chiffres décimaux en six secondes environ.

Leonardo Torres y Quevedo a écrit sur les moteurs de Babbage dans Essays on Automatics (1913). Le livre contient la conception d'une machine électromécanique capable de calculer la valeur d'une fonction de manière entièrement automatique et inclut également l'idée de l' arithmétique à virgule flottante . Torres a démontré à deux reprises, en 1914 et en 1920, que toutes les fonctions de rouage d'une machine à calculer comme celle de Babbage pouvaient être mises en œuvre à l'aide de pièces électromécaniques. Sa machine d'analyse de 1914 utilisait une petite mémoire construite avec des électro-aimants ; sa machine de 1920 utilisait une machine à écrire pour recevoir ses commandes et imprimer ses résultats.

Vannevar Bush papier de l' analyse instrumentale (1936) comprenait plusieurs références aux travaux de Babbage. La même année, il a lancé le projet de machine arithmétique rapide pour étudier les problèmes de construction d'un ordinateur numérique électronique.

Malgré ce travail de base, le travail de Babbage est tombé dans l'obscurité historique et le moteur analytique était inconnu des constructeurs de machines informatiques électromécaniques et électroniques dans les années 1930 et 1940 lorsqu'ils ont commencé leur travail, ce qui a entraîné la nécessité de réinventer de nombreuses innovations architecturales Babbage avait proposé. Howard Aiken , qui a construit la calculatrice électromécanique rapidement obsolète, le Harvard Mark I , entre 1937 et 1945, a salué le travail de Babbage probablement comme un moyen d'améliorer sa propre stature, mais ne savait rien de l'architecture du moteur analytique lors de la construction du Mark I , et a considéré sa visite à la partie construite de la machine analytique « la plus grande déception de ma vie ». Le Mark I n'a montré aucune influence du moteur analytique et manquait de la caractéristique architecturale la plus prémonitoire du moteur analytique, le branchement conditionnel . J. Presper Eckert et John W. Mauchly n'étaient pas non plus au courant des détails du travail du moteur analytique de Babbage avant l'achèvement de la conception du premier ordinateur électronique à usage général, l' ENIAC .

Comparaison avec les autres premiers ordinateurs

Si le moteur analytique avait été construit, il aurait été numérique , programmable et Turing-complet . Cela aurait cependant été très lent. Luigi Federico Menabrea a rapporté dans Sketch of the Analytical Engine : "M. Babbage croit qu'il peut, par son moteur, former le produit de deux nombres, chacun contenant vingt chiffres, en trois minutes". En comparaison, le Harvard Mark I pouvait effectuer la même tâche en seulement six secondes. Un PC moderne peut faire la même chose en moins d'un milliardième de seconde.

Nom Première opération Système numérique Mécanisme de calcul La programmation Turing terminé Mémoire
Moteur de différence Non construit avant les années 1990 (conception des années 1820) Décimal Mécanique Non programmable ; constantes numériques initiales des différences polynomiales définies physiquement Non Etat physique des roues dans les axes
Moteur analytique Non construit (conception des années 1830) Décimal Mécanique Contrôlé par programme par cartes perforées Oui Etat physique des roues dans les axes
Le moteur analytique de Ludgate Non construit (conception 1909) Décimal Mécanique Contrôlé par programme par cartes perforées Oui État physique des tiges
Zuse Z1 (Allemagne) 1939 Virgule flottante binaire Mécanique Programme contrôlé par poinçonné film 35 mm stock Non État physique des tiges
Bombe (Pologne, Royaume-Uni, États-Unis) 1939 ( polonais ), mars 1940 (britannique), mai 1943 (US) Calculs de caractères Électromécanique Non programmable ; paramètres d'entrée de chiffrement spécifiés par les câbles de raccordement Non État physique des rotors
Zuse Z2 (Allemagne) 1940 Virgule flottante binaire Électromécanique ( mémoire mécanique ) Programme contrôlé par poinçonné film 35 mm stock Non État physique des tiges
Zuse Z3 (Allemagne) Mai 1941 Virgule flottante binaire Électromécanique Programme contrôlé par poinçonné film 35 mm stock En principe Relais mécaniques
Ordinateur Atanasoff–Berry (États-Unis) 1942 Binaire Électronique Non programmable ; coefficients du système linéaire entrés à l'aide de cartes perforées Non Mémoire de condensateur régénérative
Colosse Mark 1 (Royaume-Uni) décembre 1943 Binaire Électronique Contrôlé par programme par des câbles de raccordement et des commutateurs Non Vannes thermoioniques (tubes à vide) et thyratrons
Harvard Mark I  – IBM ASCC (États-Unis) Mai 1944 Décimal Électromécanique Contrôlé par programme par bande de papier perforée à 24 canaux (mais pas de branchement conditionnel) Non Relais mécaniques
Zuse Z4 (Allemagne) Mars 1945 (ou 1948) Virgule flottante binaire Électromécanique Programme contrôlé par poinçonné film 35 mm stock Oui Relais mécaniques
ENIAC (États-Unis) juillet 1946 Décimal Électronique Contrôlé par programme par des câbles de raccordement et des commutateurs Oui Tube à vide triode bascules
Manchester Baby (Royaume-Uni) 1948 Binaire Électronique Programme binaire entré en mémoire par clavier (premier ordinateur numérique à programme enregistré électronique) Oui tube cathodique Williams
EDSAC (Royaume-Uni) 1949 Binaire Électronique Opcode à cinq bits et opérande de longueur variable (premier ordinateur à programme stocké offrant des services informatiques à une large communauté). Oui Lignes à retard de mercure

Dans la culture populaire

  • Les romanciers cyberpunk William Gibson et Bruce Sterling ont co-écrit un roman steampunk d' histoire alternative intitulé The Difference Engine dans lequel la différence de Babbage et les moteurs analytiques sont devenus accessibles à la société victorienne. Le roman explore les conséquences et les implications de l'introduction précoce de la technologie informatique.
  • Moriarty by Modem , une nouvelle de Jack Nimersheim, décrit une histoire alternative où le moteur analytique de Babbage était en effet achevé et avait été jugé hautement classifié par le gouvernement britannique. Les personnages de Sherlock Holmes et Moriarty étaient en réalité un ensemble de programmes prototypes écrits pour le moteur analytique. Cette courte histoire suit Holmes alors que son programme est mis en œuvre sur des ordinateurs modernes et qu'il est obligé de rivaliser une fois de plus avec son ennemi juré dans les homologues modernes du moteur analytique de Babbage.
  • Un cadre similaire est utilisé par Sydney Padua dans le webcomic The Thrilling Adventures of Lovelace and Babbage . Il présente une histoire alternative où Ada Lovelace et Babbage ont construit le moteur analytique et l'utilisent pour lutter contre le crime à la demande de la reine Victoria . La bande dessinée est basée sur une recherche approfondie sur les biographies et la correspondance entre Babbage et Lovelace, qui est ensuite tordue pour un effet humoristique.
  • Le projet en ligne Orion's Arm présente le Machina Babbagenseii , des ordinateurs mécaniques entièrement sensibles inspirés de Babbage. Chacun a la taille d'un gros astéroïde, ne pouvant survivre que dans des conditions de microgravité, et traite les données à 0,5 % de la vitesse d'un cerveau humain.

Les références

Bibliographie

Liens externes