Analytische Engine - Analytical Engine

Teil der Rechenmaschine mit einem Druckmechanismus der Analytical Engine, gebaut von Charles Babbage, wie im Science Museum (London) ausgestellt

Die Analytical Engine war ein vorgeschlagener mechanischer Allzweckcomputer, der vom englischen Mathematiker und Computerpionier Charles Babbage entwickelt wurde . Es wurde erstmals 1837 als Nachfolger von Babbages Differenz-Engine beschrieben , die ein Design für einen einfacheren mechanischen Computer war.

Die Analytical Engine enthielt eine arithmetische Logikeinheit , einen Kontrollfluss in Form von bedingten Verzweigungen und Schleifen sowie einen integrierten Speicher und war damit der erste Entwurf für einen Allzweckcomputer, der in modernen Begriffen als Turing-vollständig bezeichnet werden könnte . Mit anderen Worten, die logische Struktur der Analytical Engine war im Wesentlichen dieselbe wie die, die das Computerdesign im elektronischen Zeitalter dominiert hat. Die Analytical Engine ist eine der erfolgreichsten Errungenschaften von Charles Babbage.

Babbage konnte den Bau seiner Maschinen aufgrund von Konflikten mit seinem Chefingenieur und unzureichender Finanzierung nie abschließen. Erst 1941 baute Konrad Zuse den ersten Universalcomputer Z3 , mehr als ein Jahrhundert nachdem Babbage 1837 die bahnbrechende Analytical Engine vorgeschlagen hatte.

Entwurf

Zwei Arten von Lochkarten, die zum Programmieren der Maschine verwendet werden. Vordergrund: 'Operational Cards', zur Eingabe von Anweisungen ; Hintergrund: 'variable Karten', zur Dateneingabe

Babbages erster Versuch eines mechanischen Rechengeräts, der Difference Engine , war eine Spezialmaschine, die Logarithmen und trigonometrische Funktionen tabellarisch auswertet, indem sie endliche Differenzen auswertet , um approximierende Polynome zu erstellen . Der Bau dieser Maschine wurde nie abgeschlossen; Babbage hatte Konflikte mit seinem Chefingenieur Joseph Clement , und schließlich zog die britische Regierung ihre Finanzierung für das Projekt zurück.

Während dieses Projekts erkannte Babbage, dass ein viel allgemeineres Design, die Analytical Engine, möglich war. Die Arbeiten am Design der Analytical Engine begannen ca. 1833.

Die Eingabe, bestehend aus Programmen ("Formeln") und Daten, sollte der Maschine über Lochkarten zugeführt werden , ein Verfahren, mit dem damals mechanische Webstühle wie der Jacquard-Webstuhl gelenkt wurden . Für die Ausgabe hätte die Maschine einen Drucker, einen Kurvenplotter und eine Glocke. Die Maschine könnte auch Zahlen auf Karten stanzen, um sie später einzulesen. Es verwendete gewöhnliche Festpunktarithmetik zur Basis 10 .

Es sollte ein Speicher (also ein Speicher) entstehen, der 1.000 Zahlen mit je 40 Dezimalstellen (ca. 16,6 kB ) aufnehmen kann. Eine arithmetische Einheit (die "Mühle") wäre in der Lage, alle vier arithmetischen Operationen plus Vergleiche und optional Quadratwurzeln durchzuführen . Ursprünglich (1838) war es als Differenzmotor konzipiert , der in einem im Allgemeinen kreisförmigen Grundriss in sich selbst zurückgebogen ist, wobei der lange Laden zu einer Seite austritt. Spätere Zeichnungen (1858) zeigen ein regularisiertes Rasterlayout. Wie die Zentraleinheit (CPU) in einem modernen Computer würde sich die Mühle auf ihre eigenen internen Verfahren verlassen , die in Form von Stiften gespeichert werden, die in rotierende Trommeln, sogenannte "Fässer", eingesetzt werden, um einige der komplexeren Anweisungen auszuführen, die die Benutzerprogramm angeben könnte.

Die von den Benutzern zu verwendende Programmiersprache war mit modernen Assemblersprachen verwandt . Schleifen und bedingte Verzweigungen waren möglich, und so wäre die konzipierte Sprache Turing-vollständig gewesen, wie später von Alan Turing definiert . Es wurden drei verschiedene Lochkartentypen verwendet: eine für Rechenoperationen, eine für numerische Konstanten und eine für Lade- und Speicheroperationen, die Zahlen vom Speicher in die Recheneinheit oder zurück übertragen. Es gab drei separate Leser für die drei Kartentypen. Babbage entwickelte zwischen 1837 und 1840 etwa zwei Dutzend Programme für die Analytical Engine und ein Programm später. Diese Programme behandeln Polynome, iterative Formeln, Gaußsche Elimination und Bernoulli-Zahlen .

1842 veröffentlichte der italienische Mathematiker Luigi Federico Menabrea eine Beschreibung des Motors in französischer Sprache, basierend auf Vorträgen, die Babbage bei seinem Besuch in Turin im Jahr 1840 hielt. 1843 wurde die Beschreibung ins Englische übersetzt und von der interessierten Ada Lovelace ausführlich kommentiert im Motor acht Jahre zuvor. In Anerkennung ihrer Ergänzungen zu Menabreas Aufsatz, die eine Methode zur Berechnung von Bernoulli-Zahlen mit der Maschine enthielt (weithin als das erste vollständige Computerprogramm angesehen), wurde sie als die erste Computerprogrammiererin beschrieben .

Konstruktion

Henry Babbages Analytical Engine Mill, Baujahr 1910, im Science Museum (London)

Später in seinem Leben suchte Babbage nach Wegen, eine vereinfachte Version der Maschine zu bauen, und baute einen kleinen Teil davon vor seinem Tod im Jahr 1871 zusammen.

Im Jahr 1878 beschrieb ein Komitee der British Association for the Advancement of Science die Analytical Engine als "ein Wunder des mechanischen Einfallsreichtums", riet jedoch davon ab, sie zu bauen. Der Ausschuss erkannte die Nützlichkeit und den Wert der Maschine an, konnte jedoch die Baukosten nicht abschätzen und war sich nicht sicher, ob die Maschine nach dem Bau ordnungsgemäß funktionieren würde.

Zwischen 1880 und 1910 baute Babbages Sohn Henry Prevost Babbage einen Teil der Mühle und des Druckapparates. 1910 war es in der Lage, eine (fehlerhafte) Liste von Vielfachen von pi zu berechnen . Dies machte nur einen kleinen Teil des gesamten Motors aus; es war nicht programmierbar und hatte keinen Speicher. (Beliebte Bilder dieses Abschnitts wurden manchmal falsch beschriftet, was darauf hindeutet, dass es sich um die gesamte Mühle oder sogar um den gesamten Motor handelt.) Henry Babbages "Analytical Engine Mill" ist im Science Museum in London ausgestellt. Henry schlug auch vor, eine Demonstrationsversion des Vollmotors mit einer geringeren Speicherkapazität zu bauen: "Vielleicht würden für eine erste Maschine zehn (Säulen) mit jeweils fünfzehn Rädern ausreichen". Eine solche Version könnte 20 Zahlen mit jeweils 25 Ziffern manipulieren, und was man mit diesen Zahlen tun könnte, könnte immer noch beeindruckend sein. "Es ist nur eine Frage der Karten und der Zeit", schrieb Henry Babbage 1888, "... und es gibt keinen Grund, warum nicht (zwanzigtausend) Karten notfalls in einer Analytical Engine für die Zwecke des Mathematikers verwendet werden sollten ".

Im Jahr 1991 baute das London Science Museum ein vollständiges und funktionsfähiges Exemplar von Babbages Difference Engine No. 2 , einem Design, das Verfeinerungen einbezog, die Babbage während der Entwicklung der Analytical Engine entdeckte. Diese Maschine wurde unter Verwendung von Materialien und technischen Toleranzen gebaut , die Babbage zur Verfügung gestanden hätten, was die Vermutung widerlegte, dass Babbages Entwürfe mit der Fertigungstechnologie seiner Zeit nicht hätten hergestellt werden können.

Im Oktober 2010 startete John Graham-Cumming eine "Plan 28"-Kampagne, um durch "öffentliches Abonnement" Spenden zu sammeln, um eine ernsthafte historische und akademische Untersuchung von Babbages Plänen zu ermöglichen, um dann ein voll funktionsfähiges virtuelles Design zu erstellen und zu testen, das dann wiederum ermöglichen den Aufbau der physikalischen Analytical Engine. Bis Mai 2016 wurde kein tatsächlicher Bauversuch unternommen, da aus den ursprünglichen Konstruktionszeichnungen von Babbage noch kein einheitliches Verständnis gewonnen werden konnte. Insbesondere war unklar, ob es die indizierten Variablen verarbeiten konnte, die für das Bernoulli-Programm von Lovelace erforderlich waren. Im Jahr 2017 berichtete die Initiative „Plan 28“, dass eine durchsuchbare Datenbank mit allen katalogisierten Materialien verfügbar war und eine erste Überprüfung von Babbages umfangreichen Scribbling Books abgeschlossen war.

Viele von Babbages Originalzeichnungen wurden digitalisiert und sind online öffentlich zugänglich.

Befehlssatz

Plandiagramm der Analytical Engine von 1840

Es ist nicht bekannt, dass Babbage eine explizite Anleitung für den Motor nach Art eines modernen Prozessorhandbuchs geschrieben hat. Stattdessen zeigte er seine Programme als Listen von Zuständen während ihrer Ausführung an, die zeigen, welcher Operator bei jedem Schritt ausgeführt wurde, ohne darauf hinzuweisen, wie der Kontrollfluss geführt werden würde.

Allan G. Bromley hat angenommen, dass das Kartendeck in Abhängigkeit von der bedingten Verzweigung nach dem Testen auf Bedingungen in Vorwärts- und Rückwärtsrichtung gelesen werden könnte, was die Engine Turing-vollständig machen würde:

...die Karten könnten zum Vorwärts- und Rückwärtslaufen (und damit zum Loopen) befohlen werden...

Die erstmalige Einführung von Benutzeroperationen für eine Vielzahl von Servicefunktionen im Jahr 1845, darunter vor allem ein effektives System zur Benutzersteuerung von Schleifen in Benutzerprogrammen. Es gibt keine Angabe, wie die Drehrichtung der Betriebs- und variablen Karten angegeben ist. In Ermangelung anderer Beweise musste ich die minimale Standardannahme annehmen, dass sowohl die Operations- als auch die Variablenkarten nur so zurückgedreht werden können, wie es für die Implementierung der in Babbages Beispielprogrammen verwendeten Schleifen erforderlich ist. Es würde keine mechanischen oder Mikroprogrammierungsschwierigkeiten geben, die Bewegungsrichtung unter die Kontrolle des Benutzers zu stellen.

In ihrem Emulator der Engine sagt Fourmilab :

Der Kartenleser der Engine ist nicht darauf beschränkt, die Karten von Anfang bis Ende einfach in einer Kette nacheinander zu verarbeiten. Darüber hinaus kann es durch die Karten, die es liest und durch die Aktivierung des Hochlaufhebels der Mühle beraten werden, entweder die Kartenkette vorwärts bewegen, die dazwischenliegenden Karten überspringen, oder rückwärts, wodurch zuvor gelesene Karten einmal verarbeitet werden wieder.

Dieser Emulator bietet einen schriftlichen symbolischen Befehlssatz, obwohl dieser von seinen Autoren konstruiert wurde und nicht auf Babbages Originalwerken basiert. Ein faktorielles Programm würde zum Beispiel wie folgt geschrieben:

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

wobei der CB der bedingte Verzweigungsbefehl oder die "Kombinationskarte" ist, die verwendet wird, um den Kontrollfluss zu springen, in diesem Fall um 11 Karten rückwärts.

Beeinflussen

Vorhergesagter Einfluss

Babbage verstand, dass die Existenz eines automatischen Computers das Interesse an dem Gebiet wecken würde, das heute als algorithmische Effizienz bekannt ist , und schrieb in seinen Passagen aus dem Leben eines Philosophen : "Sobald eine Analytische Maschine existiert, wird sie notwendigerweise den zukünftigen Kurs der Wenn mit ihrer Hilfe irgendein Ergebnis gesucht wird, dann stellt sich die Frage: Durch welche Rechenweise kann die Maschine in kürzester Zeit zu diesen Ergebnissen gelangen ?

Informatik

Ab 1872 setzte Henry fleißig die Arbeit seines Vaters fort und ging dann 1875 zeitweise in den Ruhestand.

Percy Ludgate schrieb 1914 über den Motor und veröffentlichte 1908 seinen eigenen Entwurf für einen Analytical Engine. Er wurde detailliert ausgearbeitet, aber nie gebaut, und die Zeichnungen wurden nie gefunden. Ludgates Motor wäre viel kleiner (ungefähr 8 Kubikfuß (230  L )) als der von Babbage und könnte hypothetisch in der Lage sein, zwei 20-dezimale Zahlen in ungefähr sechs Sekunden zu multiplizieren.

Leonardo Torres y Quevedo schrieb in Essays on Automatics (1913) über Babbages Motoren . Das Buch enthält einen Entwurf für eine elektromechanische Maschine, die den Wert einer Funktion vollautomatisch berechnen kann, und beinhaltet auch die Idee der Gleitkomma-Arithmetik . Torres demonstrierte zweimal, 1914 und 1920, dass alle Zahnradfunktionen einer Rechenmaschine wie der von Babbage mit elektromechanischen Teilen realisiert werden können. Sein Analysegerät von 1914 verwendete einen kleinen, mit Elektromagneten gebauten Speicher; seine Maschine von 1920 benutzte eine Schreibmaschine, um ihre Befehle zu empfangen und ihre Ergebnisse auszudrucken.

Vannevar Bushs Aufsatz Instrumental Analysis (1936) enthielt mehrere Verweise auf Babbages Arbeit. Im selben Jahr startete er das Projekt Rapid Arithmetical Machine, um die Probleme beim Bau eines elektronischen Digitalcomputers zu untersuchen.

Trotz dieser Grundlagen geriet Babbages Arbeit in Vergessenheit, und die Analytical Engine war den Herstellern elektromechanischer und elektronischer Rechenmaschinen in den 1930er und 1940er Jahren unbekannt, als sie ihre Arbeit begannen, was zu der Notwendigkeit führte, viele der architektonischen Innovationen neu zu erfinden Babbage vorgeschlagen hatte. Howard Aiken , der zwischen 1937 und 1945 den schnell veralteten elektromechanischen Rechner Harvard Mark I baute, lobte Babbages Arbeit wahrscheinlich als eine Möglichkeit, seine eigene Statur zu verbessern, wusste jedoch nichts über die Architektur der Analytical Engine während des Baus des Mark I , und betrachtete seinen Besuch im konstruierten Teil der Analytical Engine als "die größte Enttäuschung meines Lebens". Der Mark I zeigte keinen Einfluss der Analytical Engine und es fehlte das vorausschauendste Architekturmerkmal der Analytical Engine, die bedingte Verzweigung . Auch J. Presper Eckert und John W. Mauchly waren sich der Einzelheiten der Analytical Engine-Arbeit von Babbage vor der Fertigstellung ihres Entwurfs für den ersten elektronischen Allzweckcomputer, den ENIAC, nicht bewusst .

Vergleich mit anderen frühen Computern

Wenn die Analytical Engine gebaut worden wäre, wäre sie digital , programmierbar und Turing-komplett gewesen . Allerdings wäre es sehr langsam gewesen. Luigi Federico Menabrea berichtete in Sketch of the Analytical Engine : "Herr Babbage glaubt, mit seiner Maschine das Produkt zweier Zahlen mit jeweils zwanzig Ziffern in drei Minuten bilden zu können". Im Vergleich dazu konnte der Harvard Mark I die gleiche Aufgabe in nur sechs Sekunden erledigen. Ein moderner PC kann das Gleiche in deutlich unter einer Milliardstel Sekunde.

Name Erste Inbetriebnahme Zahlensystem Rechenmechanismus Programmierung Turing abgeschlossen Speicher
Differenz-Engine Erst in den 1990er Jahren gebaut (Design 1820er) Dezimal Mechanisch Nicht programmierbar; anfängliche numerische Konstanten von Polynomdifferenzen physikalisch eingestellt Nein Physikalischer Zustand der Räder in Achsen
Analytische Engine Nicht gebaut (Entwurf 1830er Jahre) Dezimal Mechanisch Programmgesteuert durch Lochkarten Jawohl Physikalischer Zustand der Räder in Achsen
Analytische Engine von Ludgate Nicht gebaut (Entwurf 1909) Dezimal Mechanisch Programmgesteuert durch Lochkarten Jawohl Physikalischer Zustand der Stäbe
Zuse Z1 (Deutschland) 1939 Binäre Gleitkommazahl Mechanisch Programmgesteuert durch gestanzten 35 mm Filmvorrat Nein Physikalischer Zustand der Stäbe
Bombe (Polen, Großbritannien, USA) 1939 ( polnisch ), März 1940 (britisch), Mai 1943 (USA) Charakter Berechnungen Elektromechanisch Nicht programmierbar; Verschlüsselungseingangseinstellungen durch Patchkabel festgelegt Nein Physikalischer Zustand der Rotoren
Zuse Z2 (Deutschland) 1940 Binäre Gleitkommazahl Elektromechanisch ( Mechanischer Speicher) Programmgesteuert durch gestanzten 35 mm Filmvorrat Nein Physikalischer Zustand der Stäbe
Zuse Z3 (Deutschland) Mai 1941 Binäre Gleitkommazahl Elektromechanisch Programmgesteuert durch gestanzten 35 mm Filmvorrat Allgemein gesagt Mechanische Relais
Atanasoff – Berry Computer (USA) 1942 Binär Elektronisch Nicht programmierbar; Eingabe der linearen Systemkoeffizienten über Lochkarten Nein Regenerativer Kondensatorspeicher
Koloss Mark 1 (Großbritannien) Dezember 1943 Binär Elektronisch Programmgesteuert über Patchkabel und Switches Nein Thermionische Ventile (Vakuumröhren) und Thyratrons
Harvard Mark I  – IBM ASCC (USA) Mai 1944 Dezimal Elektromechanisch Programmgesteuert durch 24-Kanal Lochstreifen (aber keine bedingte Verzweigung) Nein Mechanische Relais
Zuse Z4 (Deutschland) März 1945 (oder 1948) Binäre Gleitkommazahl Elektromechanisch Programmgesteuert durch gestanzten 35 mm Filmvorrat Jawohl Mechanische Relais
ENIAC (USA) Juli 1946 Dezimal Elektronisch Programmgesteuert über Patchkabel und Switches Jawohl Vakuumröhren-Trioden- Flip-Flops
Manchester-Baby (Großbritannien) 1948 Binär Elektronisch Binäres Programm, das per Tastatur in den Speicher eingegeben wird (erster elektronischer digitaler Computer mit gespeichertem Programm) Jawohl Williams-Kathodenstrahlröhre
EDSAC (Großbritannien) 1949 Binär Elektronisch Fünf-Bit-Opcode und Operand variabler Länge (erster Computer mit gespeichertem Programm, der Computerdienste für eine breite Gemeinschaft anbietet). Jawohl Merkur-Verzögerungslinien

In der Populärkultur

  • Die Cyberpunk- Romanautoren William Gibson und Bruce Sterling haben gemeinsam einen Steampunk- Roman der alternativen Geschichte mit dem Titel The Difference Engine verfasst, in dem Babbages Differenz und Analytical Engines der viktorianischen Gesellschaft zugänglich wurden. Der Roman untersucht die Konsequenzen und Implikationen der frühen Einführung der Computertechnologie.
  • Moriarty by Modem , eine Kurzgeschichte von Jack Nimersheim, beschreibt eine alternative Geschichte, in der Babbages Analytical Engine tatsächlich fertiggestellt wurde und von der britischen Regierung als hoch eingestuft wurde. Die Charaktere von Sherlock Holmes und Moriarty waren in Wirklichkeit eine Reihe von Prototypprogrammen, die für die Analytical Engine geschrieben wurden. Diese Kurzgeschichte folgt Holmes, wie sein Programm auf modernen Computern implementiert wird und er gezwungen ist, in den modernen Gegenstücken von Babbages Analytical Engine erneut gegen seinen Erzfeind anzutreten.
  • Ein ähnliches Setting verwendet Sydney Padua im Webcomic The Thrilling Adventures of Lovelace and Babbage . Es bietet eine alternative Geschichte, in der Ada Lovelace und Babbage die Analytical Engine gebaut haben und sie auf Wunsch von Königin Victoria zur Verbrechensbekämpfung einsetzen . Der Comic basiert auf gründlichen Recherchen zu den Biografien und der Korrespondenz zwischen Babbage und Lovelace, die dann für eine humorvolle Wirkung verdreht werden.
  • Das Online-Projekt Orion's Arm umfasst die Machina Babbagenseii , vollständig empfindungsfähige, von Babbage inspirierte mechanische Computer. Jeder hat die Größe eines großen Asteroiden, kann nur unter Schwerelosigkeit überleben und verarbeitet Daten mit 0,5% der Geschwindigkeit eines menschlichen Gehirns.

Verweise

Literaturverzeichnis

Externe Links