Adas Notizen

Der Bericht von Luigi Menabrea

1842 gab Charles Babbage einen Vortrag über seine Analytical Engine an der Universität Turin. Einer der Zuhörer war der italiensicher Ingenieur und späterer Ministerpräsident von  Italien Luigi Menabrea, der eine Zusammenfassung des Vortrags auf französisch verfasste. Ein Bekannter von Babbage beauftragte Ada Lovelace, den Bericht ins Englische zu übersetzen. Babbage wusste, dass Ada seine Maschine sehr gut verstanden hatte und schlug vor, dass sie Menabreas Bericht um eigene Gedanken erweiterte. Ada schrieb insgesamt acht Notizen, die die Ausführungen von Menabrea vertieften und ergänzten. Die Notizen hatten die dreifache Länge des ursprünglichen Berichtes und sind der Grund für ihren Ruhm.

ada lovelace informatik algorithmus

Adas Programm zur Berechnung von Bernoulli-Zahlen. Größere Version

Die Notizen enthalten eine Beschreibung für die Durchführung einer Berechnung mit der Analytical Machine. Die Beschreibung enthält die arithmetischen Befehle und die Speicherorte aller Zwischenergebnisse. Diese Tabelle gilt als die erste Veröffentlichung eines Computerprogramms, weshalb Ada oft als erste Programmiererin der Welt bezeichnet wird.

Das Wichtigste an Adas Notizen sind allerdings ihre Kommentare über das Potential der Analytical Machine. Für Babbage war die Maschine lediglich eine programmierbare Rechenmaschine, die man verwenden könnte um Tabellen von Zahlen für Navigation und Wissenschaft zu berechnen. Ada hatte dagegen erkannt, dass die Maschine zu viel mehr imstande war: Die gespeicherten Daten könnten nicht nur Zahlen, sondern beliebige Objekte darstellen, und damit könnten ganz andere Arten von Berechnung durchgeführt werden.

Von der Rechenmaschine zum Computer

Ada schreibt im Note A, ihrer ersten Notiz zum Bericht von Menabrea:

The bounds of arithmetic were however outstepped the moment the idea of applying the cards had occurred; and the Analytical Engine does not occupy common ground with mere “calculating machines.” It holds a position wholly its own; and the considerations it suggests are most interesting in their nature. 

Die Grenzen der Arithmetik wurden in dem Augenblick überschritten, in dem die Idee zur Verwendung der Karten entstand, und die Analytical Engine hat keine Gemeinsamkeit mit schlichten Rechenmaschinen. Sie ist einmalig, und die Möglichkeiten, die sie andeutet, sind höchst interessant.

Ada beschreibt hier den entscheidenden Unterschied zwischen einer Rechenmaschine und einem Computer: Eine Rechenmaschine – wie beispielsweise ein Taschenrechner – führt einzelne arithmetische Operationen durch, die der Mensch manuell eingibt, ein Computer speichert die Befehle intern ab und führt sie selbstständig aus. (Heute gibt es sogar Programme, die Programme schreiben. Dies wäre bei der Analytical Engine nicht möglich gewesen, weil die Programme in Form von Pappkarten fest vorlagen.)

Mitte des 19. Jahrhunderts benötigten Wissenschaftler und Ingenieure für ihre Arbeit große Zahlentabellen. Diese Tabellen wurden damals von Menschen berechnet, und sie enthielten deswegen oft Fehler. Die Programmierbarkeit war entscheidend, denn dadurch konnten lange, komplizierte Rechenvorgänge automatisiert werden, und die Gefahr eines Rechenfehlers war gebannt. Außerdem wurde die Rechenmaschine zum Allzweckgerät, denn für jede neue Aufgabe konnte ein neues Programm geschrieben werden.

Die Informatik vorhersehen

Ebenfalls im Note A ist zu lesen:

[The Analytical Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine.

[Die Analytical Engine] könnte auf andere Dinge als Zahlen angewandt werden, wenn man Objekte finden könnte, deren Wechselwirkungen durch die abstrakte Wissenschaft der Operationen dargestellt werden können und die sich für die Bearbeitung durch die Anweisungen und Mechanismen des Gerätes eignen.

In diesem einzigen Satz steckt Adas erstaunliche Erkenntnis: Die Analytical Engine war nicht auf die Bearbeitung von Zahlen durch die Grundrechenarten beschränkt, sondern es könnten beliebige Objekte bearbeitet werden, wenn man ihre Regeln für die Maschine formalisieren könnte. Dies haben zu Adas Lebzeiten nur wenige Menschen verstanden, und ihre Vision wurde erst mehr als 100 Jahre später durch die ersten elektronischen Rechner verwirklicht.

Man könnte sagen, Ada hat hier die Informatik vorhergesagt, denn Informatik ist die Wissenschaft der systematischen Verarbeitung von Informationen. Die Informatik beschäftigt sich damit, Rechnermodelle für Objekte aus der realen Welt zu bauen und dafür Algorithmen zu entwickeln, um damit die gewünschten Ergebnisse zu erzielen. Dabei ist es ganz wesentlich, dass Information, und nicht nur Zahlen, die ja nur eine Art von Information darstellen, im Mittelpunkt steht.

Als kleines Beispiel haben wir eine Seite vorbereitet, die die Frage beantwortet, Was bedeutet eigentlich 01000001?

Die Frage der Originalität

Die folgenden Sätze von Ada Lovelace sind problematisch und wurden – beispielsweise vom Informatik-Pionier Alan Turing – stark kritisiert.

The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. It can follow analysis; but it has no power of anticipating any analytical relations or truths. Its province is to assist us in making available what we are already acquainted with.

Die Analytical Engine kann nichts erfinden. Sie kann [nur] das tun, was wir ihr befehlen. Sie kann Analyseschritte verfolgen, aber sie kann keine analytischen Beziehungen oder Wahrheiten vorhersagen. Ihre Aufgabe ist, für uns das verfügbar zu machen, was wir bereits kennen.

Diese Aussage stimmt zwar in der Theorie, in der Praxis jedoch nicht. Der Grund dafür ist, dass selbst einfache Programme ein überraschendes Verhalten aufweisen können, auch wenn der Mensch im Prinzip jeden einzelnen Schritt des Programmes nachverfolgen kann.

Ein Computer kann nur sehr einfache Befehle ausführen, es gibt keinen Befehl in seinem Wortschatz, den ein Mensch nicht auch ausführen könnte. Das gilt sowohl für die Analytical Engine als auch für jeden modernen elektronischen Rechner. Für Ada Lovelace bedeutete das, dass der Rechner eigentlich nichts Neues oder Überraschendes als Ergebnis berechnen kann, denn der Mensch weiß, wie der Computer programmiert wurde, und er kennt auch die Daten, die er dem Programm als Input gegeben hat.

Wir haben dafür ein einfaches Beispiel vorbereitet, das zeigt, wie ein Computer Wissen aneignen und daraus neues Wissen erzeugen kann.

Turing Test Beispiel

Muster weben

fraktal ada muster

Fractal Hyperbolic Attractor 08. Größere Version

Die wohl am häufigsten zitierte Passage aus Adas Notizen vergleicht die Arbeitsweise der Analytical Engine mit der eines Webstuhls:

The Analytical Engine weaves algebraic patterns, just as the Jacquard loom weaves flowers and leaves.

Die Analytical Engine webt algebräische Muster so, wie der Webstuhl von Jacquard Blumen und Blätter webt.

Die Analytical Engine wurde mit Lochkarten programmiert. Diese Idee aus dem Jahr 1805 stammte vom Franzosen Joseph-Marie Jacquard. Er baute einen Webstuhl, der mit Lochkarten gesteuert wurde. Damit wurde es möglich, komplizierte Muster in Textilien automatisch und fehlerfrei zu produzieren. Babbage hatte diese Idee für seine Analytical Engine übernommen und damit die erste programmierbare Rechenmaschine erfunden.

Moderne Rechner können grafische Muster auf dem Bildschirm “weben”. Sehr bekannt sind zum Beispiel die Fraktale – mathematische Objekte, die faszinierende Muster ergeben können. Wir haben ein paar Fraktale auf einer separaten Seite gesammelt.

Der Computer als Komponist

iamus opus one

Die erste Seite des ersten Werkes des Computer-Komponisten Iamus. Link zu einer größeren Version bei Wikipedia.

Ada spekulierte auch über die Fähigkeit der Analytical Engine, Musikstücke zu komponieren:

Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.

Würde man beispielsweise die grundlegenden Beziehungen von Tönen gemäß der Regeln der Harmonie und der Komposition auf diese Weise beschreiben lassen, könnte die Maschine komplizierte, wissenschaftliche Musikstücke beliebiger Komplexität oder Länge komponieren.

An der Universität in Malaga (Spanien) wurde 2010 das Computerprogramm Iamus entwickelt, das Musikstücke komponieren kann. Es hat schon Konzerte und Aufnahmen mit Werken von Iamus gegeben. Viele Stücke von Iamus stehen online zum Abspielen zur Verfügung.