Die von Charles Babbage im 19. Jahrhundert entworfene Analytical Engine nimmt in der Geschichte der Informatik eine besondere Stellung ein. Sie wurde zu Babbages Lebzeiten nie fertiggestellt und ähnelte materiell kaum den elektronischen Computern, die mehr als ein Jahrhundert später entstanden. Ihre Architektur vereinte jedoch bereits zentrale Ideen einer universell programmierbaren Maschine: Speicher, Recheneinheit, Anweisungen, Daten und eine Steuerung der Operationsfolge.
Babbage wollte nicht mehr nur eine spezialisierte Rechenmaschine bauen. Er entwarf eine Maschine, deren Verhalten sich durch ein Programm verändern ließ. Dieser Schritt ist für die Geschichte des automatischen Rechnens entscheidend.
Vor der Analytical Engine: die Difference Engine
Zu Beginn des 19. Jahrhunderts nutzten Wissenschaft, Navigation und Technik umfangreiche Zahlentafeln. Menschliches Rechnen, Abschreiben und Drucken konnten Fehler erzeugen. Babbage wollte diesen Prozess mechanisieren.
Seine Difference Engine sollte mithilfe endlicher Differenzen bestimmte mathematische Tabellen automatisch erzeugen. Das in den 1820er-Jahren mit Unterstützung der britischen Regierung begonnene Projekt erforderte Tausende präzise gefertigte Teile. Technische, finanzielle und organisatorische Probleme verhinderten die Fertigstellung.
Babbage ging daraufhin konzeptionell weiter: Statt nur eine Spezialmaschine zu verbessern, plante er eine Maschine, die je nach Anweisung unterschiedliche Berechnungen ausführen konnte. Daraus entstand die Analytical Engine.
Von der Spezialmaschine zur programmierbaren Maschine
Die Difference Engine war für eine bestimmte Klasse von Aufgaben vorgesehen. Die Analytical Engine sollte unterschiedliche Operationsfolgen ausführen, ohne für jede Aufgabe mechanisch umgebaut zu werden.
Damit trennte Babbage gedanklich die physische Maschine vom Programm, das ihr Verhalten bestimmt. Heute ist es selbstverständlich, dass dieselbe Hardware je nach Software Texte verarbeitet, Bilder verändert oder Daten analysiert. In den 1830er-Jahren war diese Idee außergewöhnlich.
Store und Mill
Babbage bezeichnete zwei Hauptbereiche als Store und Mill. Der Store sollte Zahlen während einer Berechnung aufbewahren. Dezimalräder repräsentierten die Ziffern. Funktional erinnert er daher an einen Speicher, auch wenn seine mechanische Umsetzung mit moderner Elektronik nichts gemeinsam hat.
Die Mill sollte die Operationen ausführen. Werte konnten aus dem Store übertragen, verarbeitet und zurückgeschrieben werden. Vorgesehen waren unter anderem Addition, Subtraktion, Multiplikation und Division.
Die Analogie zu Speicher und Prozessor hilft beim Verständnis, darf aber nicht überzogen werden. Die Mill war keine viktorianische CPU. Bemerkenswert ist die logische Aufgabenteilung.
Programmierung mit Lochkarten
Für die Steuerung ließ sich Babbage von den Lochkarten der Webstühle Joseph-Marie Jacquards inspirieren. Mit Karten konnten Muster verändert werden, ohne den Webstuhl neu zu bauen.
Babbage übertrug dieses Prinzip auf Berechnungen. Einige Karten sollten Operationen festlegen, andere Variablen auswählen oder steuern. Eine Kartenfolge konnte damit ein komplexes Verfahren beschreiben. Das Programm lag physisch außerhalb der inneren Mechanik; eine neue Aufgabe erforderte grundsätzlich eine andere Kartenfolge.
Schleifen und bedingte Steuerung
Die Analytical Engine sollte Anweisungen nicht nur einmal linear abarbeiten. Babbage plante Mechanismen zur Wiederholung von Sequenzen - konzeptionell vergleichbar mit einer Schleife:
10-mal wiederholen: Operation ausführen
Auch Ergebnisse sollten den weiteren Ablauf beeinflussen können, was konzeptionell einer Bedingung entspricht:
wenn Bedingung: A ausführensonst: B ausführen
Die tatsächlichen Mechanismen waren mechanisch und historisch anders. Doch Speicher, Arithmetik, Wiederholung und Ablaufsteuerung machten den Entwurf weit mehr als zu einem Taschenrechner.
Ada Lovelace und die Programme der Engine
Die Geschichte der Analytical Engine ist eng mit Ada Lovelace verbunden. Sie lernte Babbage in den 1830er-Jahren kennen und beschäftigte sich intensiv mit seinen Maschinen.
1842 veröffentlichte der italienische Ingenieur Luigi Federico Menabrea auf Französisch eine Beschreibung der Engine nach einem Vortrag Babbages. Lovelace übersetzte den Text ins Englische und ergänzte umfangreiche eigene Anmerkungen.
Eine davon beschreibt ein Verfahren zur Berechnung von Bernoulli-Zahlen. Es wird häufig als erstes veröffentlichtes Computerprogramm für eine allgemeine Maschine bezeichnet. Diese Bezeichnung braucht Nuancen: Die vollständige Maschine existierte nicht, und auch Babbage hatte Verfahren ausgearbeitet.
Historisch entscheidend ist, dass Babbage und Lovelace bereits über Programme für eine allgemeine, physisch noch nicht fertiggestellte Maschine nachdachten.
Mehr als Zahlen
Lovelace erkannte außerdem, dass die von der Maschine verarbeiteten Zahlen mehr als bloße Mengen darstellen konnten. Wenn etwa musikalische Beziehungen passend codiert würden, könnte die Maschine diese Repräsentationen nach Regeln bearbeiten.
Sie beschrieb keine moderne Multimedia-Informatik, erkannte aber die grundlegende Trennung zwischen physischen Symbolen und ihrer Bedeutung. Genau dieses Prinzip erlaubt modernen Computern, Texte, Bilder oder Klänge als codierte Informationen zu verarbeiten.
Lovelace betonte auch, die Maschine erfinde nicht selbst, sondern führe aus, was Menschen ihr anzuweisen wüssten. Mehr als ein Jahrhundert später griff Alan Turing diesen Einwand in seinen Überlegungen zur Maschinenintelligenz wieder auf.
Warum wurde sie nie fertiggestellt?
Es gab nicht nur einen Grund. Die Engine erforderte sehr viele Präzisionsteile, hohe Kosten und einen außergewöhnlichen industriellen Aufwand. Babbages Verhältnis zur britischen Regierung verschlechterte sich nach den Schwierigkeiten der Difference Engine. Hinzu kamen Konflikte mit dem Ingenieur und Hersteller Joseph Clement.
Babbage überarbeitete seine Entwürfe außerdem fortlaufend, statt früh eine Version einzufrieren. Deshalb blieb die Analytical Engine vor allem in Plänen, Zeichnungen, Beschreibungen und Teilkomponenten erhalten.
Dass Babbages Mechanik grundsätzlich realisierbar war, zeigt die später vom Science Museum in London nach seinen Plänen gebaute Difference Engine No. 2. Bei der Analytical Engine ist eine Rekonstruktion schwieriger, weil ihre Entwürfe über Jahre weiterentwickelt wurden.
Eine riesige mechanische Anlage
Die Engine wäre eine große Installation mit Tausenden Rädern, Achsen, Zahnrädern und Übertragungsmechanismen gewesen. Eine externe mechanische Kraftquelle hätte sie angetrieben.
Babbage dachte auch an die Ausgabe. Ergebnisse sollten gedruckt werden können, wobei menschliche Übertragungsfehler möglichst vermieden werden sollten. Funktional erscheint bereits die Kette Eingabe → Verarbeitung → Speicher → Ausgabe.
Dezimal statt binär
Die Analytical Engine war dezimal ausgelegt. Räder repräsentierten die Ziffern 0 bis 9. Moderne elektronische Computer verwenden meist Binärdarstellung, weil elektronische Bauteile gut zwei Zustände repräsentieren können. Binär ist jedoch keine Voraussetzung für eine allgemein programmierbare Maschine. Babbages Entwurf verdeutlicht die Trennung zwischen Logik des Rechnens und physischer Darstellung.
War sie Turing-vollständig?
Diese Frage verwendet einen Begriff, der erst ein Jahrhundert später entstand. Turing-Vollständigkeit bezeichnet theoretisch die Fähigkeit eines Systems, unter geeigneten Ressourcen jeden von einer Turingmaschine ausführbaren Algorithmus zu berechnen.
Die Analytical Engine verfügte in ihren Entwürfen über Speicher, Operationen, Wiederholung und Ablaufsteuerung. Einige moderne Analysen interpretieren bestimmte Varianten deshalb als allgemein berechnungsfähig. Historisch ist die Bezeichnung allgemein programmierbare Maschine jedoch vorsichtiger und präziser.
Babbage, Turing und von Neumann
Babbage als alleinigen Erfinder des modernen Computers zu bezeichnen wäre irreführend. Sein Entwurf vereinte früh Speicher, Rechnen, Anweisungen, Daten, Wiederholung, Steuerung sowie Ein- und Ausgabe. Der moderne Computer entstand aber zusätzlich aus Fortschritten in Logik, Elektromechanik, Elektronik, Informationstheorie, Architektur und Programmiersprachen.
Babbage wollte eine physische programmierbare Maschine konstruieren. Turing entwickelte 1936 ein abstraktes mathematisches Modell, um Berechenbarkeit zu definieren. Beide Projekte beantworten unterschiedliche Fragen.
Auch die von-Neumann-Architektur unterscheidet sich wesentlich: Bei Babbage kamen die Anweisungen vor allem von externen Karten und waren vom Store für Werte getrennt. Stored-Program-Computer können Daten und Anweisungen im Speicher halten. Die Analytical Engine nahm wichtige Funktionen vorweg, aber nicht die moderne Stored-Program-Architektur.
Die zentrale Idee: Maschine und Programm trennen
Die Analytical Engine arbeitete nie als vollständige Anlage. Dennoch vereinten Babbages Pläne wesentliche Eigenschaften einer allgemeinen programmierbaren Maschine, während Lovelaces Notizen zeigten, dass man bereits über Programme und Repräsentationen nachdenken konnte, bevor die Maschine existierte.
Bei einer allgemeinen Maschine ist ein Teil ihrer Funktion nicht mehr dauerhaft in der Mechanik festgelegt, sondern wird durch Anweisungen bestimmt. Dieselbe Hardware kann sich je nach Programm unterschiedlich verhalten. Diese Idee wurde im 20. Jahrhundert fundamental und gehört zur Vorgeschichte der heutigen Trennung von Hardware und Software.
Anachronismen vermeiden
Die Analytical Engine war weder elektronisch noch binär, hatte keine Transistoren oder elektronische Speicher, speicherte ihr Programm nicht wie ein moderner Computer im Arbeitsspeicher und wurde nie als vollständiges System fertiggestellt.
Gerade diese Unterschiede zeigen die Größe des Projekts: Babbage versuchte eine allgemein programmierbare Maschine mit mechanischer Technologie des 19. Jahrhunderts zu verwirklichen.
Die weitere Geschichte verbindet Jacquard-Karten, Babbages Maschinen, Lovelaces Notizen, Turings Berechenbarkeitstheorie, elektronische Computer, gespeicherte Programme und Programmiersprachen. Keine einzelne Etappe erklärt den modernen Computer, doch die Analytical Engine gehört zu den frühesten Projekten, die mehrere Grundideen zusammenführten.
Das Wichtigste
Die ab den 1830er-Jahren entworfene Analytical Engine von Charles Babbage ging über die spezialisierte Difference Engine hinaus und zielte auf eine allgemein programmierbare Maschine.
Sie sah einen Store für Werte, eine Mill für Operationen, Lochkarten zur Programmsteuerung sowie Mechanismen für Wiederholung, Kontrolle und Ein-/Ausgabe vor.
Ada Lovelace spielte eine wichtige Rolle bei der Interpretation des Projekts. Ihre Notizen behandelten die Engine nicht nur als Rechenmaschine, sondern als System, das Repräsentationen nach Regeln verarbeiten konnte.
Die Analytical Engine war kein elektronischer Computer und kein Stored-Program-Computer avant la lettre. Ihr zentraler Beitrag lässt sich genauer formulieren: Dieselbe Maschine kann je nach bereitgestelltem Programm unterschiedliche Aufgaben ausführen.
Häufige Fragen
Wer erfand die Analytical Engine?
Der britische Mathematiker Charles Babbage entwarf sie ab den 1830er-Jahren.
Worin unterschied sie sich von der Difference Engine?
Die Difference Engine automatisierte vor allem bestimmte Zahlentafeln. Die Analytical Engine sollte unterschiedliche Programme und allgemeine Berechnungen ausführen.
Funktionierte sie tatsächlich?
Nein. Eine vollständige betriebsfähige Analytical Engine wurde nie fertiggestellt.
Was waren Store und Mill?
Der Store speicherte Zahlen und Zwischenergebnisse, die Mill führte arithmetische Operationen aus. Funktional lassen sie sich vorsichtig mit Speicher und Recheneinheit vergleichen.
Wie wurde sie programmiert?
Babbage plante Lochkarten, inspiriert unter anderem von Jacquard-Webstühlen, für Anweisungen und Variablensteuerung.
War Ada Lovelace die erste Programmiererin?
Sie wird wegen ihres veröffentlichten Bernoulli-Verfahrens oft so bezeichnet. Die Geschichte ist differenzierter, weil auch Babbage Verfahren entwickelte, doch ihr Beitrag bleibt grundlegend.
War die Analytical Engine ein moderner Computer?
Nein. Sie war mechanisch, dezimal und vor allem kartenprogrammiert, besaß aber konzeptionell vertraute Funktionen wie Speicher, Berechnung, Programmsteuerung und Ein-/Ausgabe.
War sie Turing-vollständig?
Einige moderne Analysen sehen in Babbages Entwürfen ausreichende Mechanismen für allgemeine Berechnung. Historisch ist allgemein programmierbare Maschine die präzisere Beschreibung.
Ada Lovelaces Leben, ihre Zusammenarbeit mit Charles Babbage, ihr Bernoulli-Algorithmus und das Vermächtnis der oft ersten Programmiererin genannten Pionierin.
Erfahre, wie Lochkarten Webstühle steuerten, Charles Babbage inspirierten und über ein Jahrhundert lang Programmierung und Datenverarbeitung ermöglichten.