Versuch, Ada Lovelace auf die Füße zu stellen
Seite 2: Ada, die Ergänzerin
- Versuch, Ada Lovelace auf die Füße zu stellen
- Ada, die Ergänzerin
- Adas Programm
- Auf einer Seite lesen
Adas Ruhm stützt sich auf die Kommentare, die sie bei der Übersetzung von Menabreas Schrift in enger Abstimmung mit Babbage als Anhang einbaute. Sieben "Notes" (von A bis G) hat sie insgesamt verfasst. In den sieben Anmerkungen gibt es nur zwei fertige Programme: das erste ist von Menabrea selbst, das zweite von Ada.
Bei dem in tabellarischer Form dargestelltem Code wird Babbages Notation verwendet, die darin besteht, in jede Tabellenzeile den aktuellen Zustand des Speichers anzuzeigen. In der Tabelle gibt es eine Zeile pro Befehl. Die Spalten der Tabelle geben die gegenwärtigen Inhalte jeder Speicherzelle wider. Die Befehle sind von der Form:
Va op Vb = Vc
wobei Va, Vb und Vc Speicheraddressen darstellen (V steht für "Variable" und die Indizes a, b und c sind Zahlen). Der Operator "op" kann jeder der vier Grundrechenoperationen sein, d.h., in jeder Zeile der Tabelle kann jeweils nur eine Speicherzelle (Vc) verändert werden.
Babbage trennte im Code die Operationen von den Adressen der beteiligten Variablen. Es gab zwei Stränge von Lochkarten: einen Strang, bei dem die Operationen angeordnet wurden (z.B. "++xx" für zwei Additionen, gefolgt von zwei Multiplikationen), und einen Strang, bei dem die beteiligten Variablen angegeben wurden. Im Beispiel oben gäbe es die einzige Operation "op" bei den Operationen-Lochkarten und die Adressen a, b, c bei den Adress-Lochkarten.
Der Grund für diese heute anachronistische Code-Trennung war nur, dass Babbage bei wiederholten Operationen Karten sparen wollte. Sieben Additionen gefolgt von sieben Multiplikationen könnten als die Befehlsfolge "7+7x", angegeben werden. Mit nur vier Lochkarten könnte man dann vierzehn Operationen veranlassen. Bei den Adressen konnte man allerdings keine Karten sparen. Vermutlich hat Babbage diese Trennung der Lochkarten eingeführt, um die unterschiedliche Natur von Operatoren und Operanden zu unterstreichen.
Ada geht auf diese Trennung in ihren Kommentaren ausführlich ein und erläutert, wie viele Operatorenkarten bei drei verschiedenen mathematischen Verfahren benötigt würden. Ohne den spezifischen Code zu schreiben, skizziert sie, wie man Potenzen berechnen, wie man Polynome teilen und wie eine Multiplikation von zwei Ausdrücken gemacht werden könnte. Sie erläutert nur, welche Grundoperationen bekannte Rechenverfahren brauchen. Das ist gewissermaßen nur die Hälfte des Programms (die Operatoren-Lochkarten) -- die andere Hälfte besteht aus der beteiligten Adresse (die Variablen-Lochkarten).
Es gibt in Adas Kommentaren ein einziges Beispiel eines kompletten Programms aus der eigenen Feder. Das ist das berühmte Programm für die Berechnung der Bernoulli-Zahlen, auf die ich noch zurückkommen werde. Halten wir nur folgendes aber vorläufig fest:
- Ada arbeitete nicht am Design der Analytischen Maschine.
- Ihre einzige Veröffentlichung mit Bezug auf Rechenmaschinen war eine Übersetzung des Artikels von Luigi Menabrea plus ein Anhang, bestehend aus sieben, mit Babbage abgesprochenen Notizen, und ein einziges eigenes Programm.
- Sowohl Menabreas Artikel als auch Adas Anmerkungen gerieten sehr schnell in Vergessenheit und hatten keine weiteren historischen Nachklang.
Wir können den Zeitpunkt der Wiederentdeckung von Ada datieren: 1953, als ihre Geschichte durch das Buch "Faster than thought"6 einer breiten Öffentlichkeit zugänglich gemacht wurde.
Adas Missverständnisse
Wenn man Adas Kommentare liest, springt ins Auge, dass sie an vielen Stellen die Funktionsweise der Maschine mystifiziert. Die Analytische Maschine hatte nur einen Speicher für Zahlen, aber Ada beteuert, die Maschine wäre in der Lage, auch mit Symbolen zu operieren, und könne deswegen symbolische Berechnungen durchführen:
It seems to us obvious, however, that where operations are so independent in their mode of acting, it must be easy, by means of a few simple provisions, and additions in arranging the mechanism, to bring out a double set of results, (...) 1st, the numerical magnitudes which are the results of operations performed on numerical data (...) 2ndly, the symbolical results to be attached to those numerical results, which symbolical results are not less the necessary and logical consequences of operations performed upon symbolical data, than are numerical results when the data are numerical.
Ada Lovelace
Diese Behauptung zieht sich durch Adas Kommentare, ohne dass jemals klargestellt wird, wie die Analytische Maschine symbolische Resultate erzeugen könnte (und jeder der mit symbolischen Algebra für Computer vertraut ist, weiß wie kompliziert das wirklich wäre). Aber Ada wiederholt in Bezug auf die Maschine:
It can combine these numbers and these quantities either algebraically or arithmetically, in relations unlimited as to variety, extent, or complexity.
Ada Lovelace
Eine andere Behauptung ist ebenfalls widersinnig:
By means of certain artifices and arrangements ... there is no limit either to the magnitude of the numbers used, or to the number of quantities (either variables or constants) that may be employed.
Ada Lovelace
Damit meinte Ada, dass mehr als eine Speicherzelle für die Speicherung einer großen Zahl verwendet werden könne (wie das Babbage durch das Aufeinanderreihen von Speicherzellen plante). Das macht aber den Speicher keineswegs unendlich. Die einzige Möglichkeit wäre, partielle Resultate in Lochkarten zu speichern und diese manuell nachzuladen, wie Babbage es eigentlich vorsah.
Dorothy Stein zeigt deswegen in ihrem Buch auf überzeugende Weise, dass Ada nur ein begrenztes Verständnis der Komplexität der Analytischen Maschine besaß. Wo Kenntnisse fehlten, griff sie zu Metaphern. Heute wird zu viel hinter diesen Zeilen gelesen - und es wird ins Blaue spekuliert, sie hätte vorausgesehen oder sogar gewusst, wie symbolische Algebra bearbeitet werden könne.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmmung wird hier eine externe Buchempfehlung (Amazon Affiliates) geladen.
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Amazon Affiliates) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.