Versuch, Ada Lovelace auf die Füße zu stellen

Seite 3: Adas Programm

Der folgende Beitrag ist vor 2021 erschienen. Unsere Redaktion hat seither ein neues Leitbild und redaktionelle Standards. Weitere Informationen finden Sie hier.

Womit wir wieder beim Code für die Berechnung der Bernoulli-Zahlen sind. Der Code kann online gefunden werden.

Ohne zu sehr in die Details einzugehen, ist das Problem folgendes: Die sogenannten Bernoulli-Zahlen sind Koeffizienten in einer Reihenentwicklung (wie z.B. eine Taylor-Reihe), die sehr nützlich für verschiedene Anwendungen sind. Diese Zahlen können rekursiv berechnet werden. Die von Ada benutzte Formel (die ihr Charles Babbage zukommen ließ) erlaubt die Berechnung der Zahl B1, dann der Zahl B3, danach der Zahl B5 usw. (die Bernoulli-Zahlen B2, B4 usw. wären Null und brauchen nicht berechnet zu werden).

Ein Detail ist, dass die von Babbage und Ada benutzte Durchnummerierung der Zahlen nicht der modernen Nummerierung entspricht, aber das ist nebensächlich. Die Bernoulli-Zahlen mit ungeradem Index (bei Babbage und Ada) wären die modernen Zahlen mit geradem Index. Adas Ableitung der spezifischen Rekursion, die sie verwenden will, ist eigentlich unzureichend, um das Endergebnis zu verstehen. Aber man kann die iterative Formel als vorgegeben betrachten und wir brauchen nur auf das entsprechende Programm zu schauen.

Abb. 1 zeigt die Formel für die Aufstellung der Bernoulli-Zahlen. Die einzelnen Bernoulli-Zahlen werden der Reihe nach berechnet. Die A(n)-Konstanten hängen von dem Parameter n ab, der die Werte 1,2,3 und 4 in Abb. 1 nimmt. Für die Konstanten A0(n) und A1(n) gibt es explizite Formeln. Ab A3(n) kann man sich auf die letzte berechnete Konstante beziehen und durch Multiplikation mit speziellen Faktoren rechnen.

Abb. 1: Symbolische Darstellung von Adas Programm für die Berechnung der Bernoullizahlen, mit Angabe der entsprechenden Zeilen im Originalcode. Die Zeilen 7, 12 und 23 enthalten Sprünge mit Test auf Null, die im Code inkomplett spezifiziert sind. Zeile 24 wurde korrigiert (im Original gibt es dort ein Vorzeichenfehler). Das ganze Programm endet bei Zeile 25 und sollte von alleine auf Zeile 1 zurückspringen. Der Sprung ist im Code nicht vorhanden. Ein Operator hätte allerdings das Programm jedes Mal manuell auf den Anfang zurückstellen können. Das Original muss zum Vergleich herangezogen werden.

Adas Code ist schwer zu verstehen, wegen der notwendigen Unterteilung zwischen Operatoren und Variablen. Bei den Operationen kann man Blöcke von Operationen wiederholen. Im Adas Code (man muss die Originaltabelle sehen) befindet sich ein wiederholbarer Bereich zwischen den Zeilen 13 und 22. Das ganze Programm selbst wiederholt sich für unterschiedliche Werte der Variable n. Bei den Variablen kann man allerdings die Variablenkarten nicht wiederverwenden (weil man jedes Mal eine neue Bernoulli-Zahl in eine neue sequentielle Adresse speichern muss). D.h. bei den Variablen muss man das Programm komplett "abrollen" und das ganze entspricht dem, was man in der Informatik "loop unrolling" nennt. Das wäre nicht notwendig gewesen, falls die Analytische Maschine sogenannte "indirekte Adressierung" gehabt hätte (womit man auf eine durch eine Laufvariable angezeigte Speicherzelle zugreifen kann).

Adas Original-Programm ist in vier Blöcken unterteilt. Abb. 1 zeigt was Adas Programm tut (im Sinne der durchgeführten Berechnungen) und abgerollt (wie es wegen der Variablen-Karten notwendig ist).

Es gibt bei Adas ursprünglichem Code drei Zeilen (7, 12 und 23), wo die Variable n getestet wird (auf Gleichheit jeweils mit 1, 2, und mit anderen Werten). Hier hätte aber der bedingte Sprung für die Steuerung der Programmlogik eingebaut werden sollen. Die Reichweite der Sprünge im Code ist nicht spezifiziert: Man hätte angeben sollen, wie groß die Sprünge nach unten bzw. nach oben im Code sind. Ada geht im Text davon aus, dass das Programm an diesen Stellen einfach den jeweils richtigen Weg einschlägt. Der Sprung zurück auf dem Anfang des Programms fehlt komplett (das wären weitere Zeilen nach Zeile 25 gewesen).

Man kann deswegen geteilter Meinung über Adas Programm sein. Einige finden es beeindruckend wegen der Schleife, wo die A(n)-Konstanten berechnet werden, und wegen der Oberschleife, wo die Variable n erhöht wird (wobei, wie oben dargelegt, es nur Schleifen bei den Operatorenkarten gibt, nicht aber bei den Variablenkarten, die auf neue Speicherzellen zugreifen).7 Streng genommen endet das Programm auch nie, da die Variable n immer um Eins erhöht wird, ohne Abbruchbedingung.

Bei der Erstellung der Anmerkungen und des eigenen Programms stand Babbage Ada per Korrespondenz zur Seite. Das Beispiel der Bernoulli-Zahlen hat außerdem Babbage selbst vorgeschlagen und die Formel dafür schriftlich geliefert. Aber Ada "übertrumpft (mit ihren Anmerkungen) die Ideen Babbages"8, wird geschrieben. Und noch weiter: "Ada Gräfin Lovelace hat als erste die Vision eines universellen Computers."

Ada Lovelace (1835). Bild: Kopie von Nils Pooker nach einem Gemälde von Margaret Sarah Carpenter

Glaubt aber ernsthaft jemand, dass Babbage, der die Analytische Maschine entwarf, nichts von deren Möglichkeiten wusste? Als er das Problem der Bernoulli-Zahlen vorschlug, hätte er nicht wissen sollen, dass es mit der Maschine lösbar war? Und Turings Begriff des universellen Computers bedeutet nicht, dass man einfach sagt, "man kann mit dem Gerät alles rechnen". Wichtiger ist auch, was man damit nicht rechnen kann, deswegen ist der Begriff "Universalrechner" eine theoretische Schöpfung des 20. Jahrhunderts, die Hand in Hand mit dem Begriff der Berechenbarkeit einhergeht.

In der Wissenschaftsgeschichte ist es manchmal schwer, Lob zu verteilen. Konrad Zuse z.B. hat mit der Z3 von 1941 einen architektonisch viel besseren Rechner als die Erfinder der ENIAC vorgelegt. Die Z1 war aber jedoch außerhalb eines kleinen Kreises in Deutschland nicht bekannt und so hatte die ENIAC die größere Ausstrahlung und letztendlich historische Bedeutung, weil diese Maschine viele andere Projekte in den USA und Großbritannien ankurbelte.

Auch im Fall des Mikroprozessors gab es einige militärische Chips, die dem ersten Intel-Mikroprozessor überlegen waren. Für die Entstehung des Personal-Computers waren jedoch die Texas-Instruments bzw. Intel-Chips maßgebend und deswegen werden sie immer als erste Mikroprozessoren der Welt angeführt (sehr zum Verdruss meines Bekannten, Ray Holt). Das geschieht nicht wegen der haargenauen Chronologie, sondern wegen der späteren Wirkung auf die technologische Entwicklung.

Im Fall von Software hat nichts, was Ada mit dem vergessenem Programm von 1843 erreicht hätte, später eine technische Auswirkung gehabt. Sie als "Mutter der Software" zu bezeichnen ist reichlich übertrieben. Dafür wäre eine andere Frau, Grace Hopper, eine viel bessere Kandidatin, weil sie mitten im Zentrum der Entwicklung der ersten Computer in den USA und der ersten Softwarebibliotheken und Compiler stand. Hoppers technischer Beitrag und Wirkungsgeschichte war unendlich größer als Adas.

Ada im O-Ton

Bleibt nur noch Ada selbst zu zitieren, um Steins Diagnose des Narzissmus von Ada in voller Entfaltung zu erleben. Dies ist, was Ada in einem Brief über ihre eigenen Fähigkeiten als Mathematikerin zu sagen hatte:

I believe myself to possess a most singular combination of qualities exactly fitted to make me pre-eminently a discoverer of the hidden realities of nature ... the belief has been forced upon me .... Firstly : Owing to some peculiarity in my nervous system, I have perceptions of some things, which no one else has ... an intuitive perception of ... things hidden from eyes, ears, & ordinary senses .... Secondly : my immense reasoning faculties; Thirdly : my concentration faculty, by which I mean the power not only of throwing my whole energy & existence into whatever I choose, but also of bringing to bear on any one subject or idea, a vast apparatus from all sorts of apparently irrelevant & extraneous sources ....

Ada Lovelace

Und in einem anderen Brief:

The more I study, the more irresistible do I feel my genius for it to be. I do not believe that my father was (or ever could have been) such a Poet as I shall be an Analyst, (& Metaphysician); for with me the two go together indissolubly.

Ada Lovelace

Die talentierte Ada wollte nach ihren gelungenen Auftritt Babbages Arbeit an der analytischen Maschine selbst organisieren und stellte Babbage schroffe Bedingungen dafür, die er umgehend ablehnte. So endete die Kooperation mit dem Erfinder der analytischen Maschine und Ada wandte sich später im Leben anderen Untersuchungen wie dem Mesmerismus bzw. anderen Unternehmungen wie dem Wetten bei Pferderennen zu.

Irgendwie hat sie aber ihren späteren Ruhm vorhergesehen und dazu aufgeschrieben:

In all probability my reign (if ever I have one) over mankind will be chiefly after my death.

Ada Lovelace

Wie Recht sie hatte! Wenn schon ein ganzes Buch wie das von Dorothy Stein keine Auswirkung auf ihre Legende hat, dann noch weniger Aufsätze. Noch ein pikantes Beispiel: Das Buch von Stein wurde sogar auf Deutsch übersetzt und es hieß bei der ersten Auflage erstaunlicherweise: "Die Braut der Wissenschaft". Schon mit dem Titel lässt sich hierzulande der Umsatz nicht steigern, daher wurde er für die zweite Auflage verändert: "Eine Frau am Anfang der Moderne".

Es ist natürlich klar, dass Ada Lovelace im viktorianischen England nicht dieselben Studiermöglichkeiten wie den Männern zur Verfügung standen. Dass sie sich auf eigene Faust teilweise in der Mathematik und Naturwissenschaften ausbildete, ist bemerkens- und lobenswert. Dass dafür eine große Portion Selbstvertrauen und Durchsetzungsvermögen nötig ist, steht außer Frage.

Es wäre aber vielleicht besser, wenn über Frauen in der Mathematik und Informatik die Rede ist, vor allem echte Beiträge anerkannt zu sehen, z.B. Grace Hopper, die die erste Compiler entwickelt hat, Mary Somerville, die Laplace übersetzt und dazu beigetragen hat, die Leibniz-Notation in England einzuführen, Maria Agnesi, die berühmte Mathematikerin des 18. Jahrhunderts, oder Laura Bassi, die erste Professorin in Europa (mit 21 Jahren).

Einige Autoren sind deswegen vorsichtiger bei der Einschätzung von Ada. Sie schreiben, sie wäre sicherlich die erste Frau, die ein Programm geschrieben hat. Sie wäre sogar die erste (m/w), die ein komplexes Programm veröffentlicht hat. Sie hat aber weder die Programmsprünge noch die Schleifen erfunden, sie hat die Analytische Maschine nicht mitentworfen, sie hat nicht besser als Babbage begriffen, was die Maschine alles tun kann, sie hat auch nicht den Universalrechner erdacht. Bei alle diesen Behauptungen muss man wohl die Kirche im Dorf lassen.

Postskriptum

Der Artikel hat bei der Veröffentlichung zu manch kontroversen Reaktionen geführt. Einige Leser waren fast beleidigt, dass auf Unstimmigkeiten in Ada Lovelaces Story hingewiesen wurde. Unbelastet von jeglicher Kenntnis der Original- und der Sekundärliteratur verbeißen sie sich an der Legende, als ob ein Märchen eine historische Tatsache wäre. Ich bin auch auf ein Magazin über Ada hingewiesen worden, in dem die Übertreibungen anscheinend keine Obergrenze zu kennen scheinen. So behauptet diese Broschüre aus dem Jahr 2015 folgendes:

  • Ada wurde Babbage "research assistant" und half bei "mehreren" Projekten.
  • Sie übersetzte "mehrere" Ingenieurarbeiten aus dem Französischen ins Englische.
  • Ada sah, dass die Maschine mehr konnte, als Babbage beabsichtigt hatte oder wusste.
  • Ada schrieb im Jahr 1843 ein "paper".
  • Babbage arbeitete zusammen mit Ada an der Analytical Engine.
  • Ada benutze Farbstifte für Diagramme - sie war offensichtlich eine "natural" beim Design von Benutzerschnittstellen (!).
  • Adas Arbeit (erster Algorithmus für den ersten Computer) trägt heute zum Studium von Gehirnkrankheiten (!) bei.
  • Ada hat crowdsourcing vorausgedacht.
  • Ada spekulierte, dass eines Tages mathematische Modelle beschreiben würden, wie elektrische Signale sich im Nervensystem ausbreiten (Wissenschaftler wussten aber erst im 20. Jahrhundert, dass Nervensignale von elektrischer Natur sind).
  • Ada hat Turings Ideen über Künstliche Intelligenz bereits 90 Jahren vor ihm gehabt.
  • Ada und Babbage arbeiteten zusammen an der Erstellung von maritimen Tafeln (?).
  • Ada hat symbolisches Rechnen und Theorembeweise vorausgesehen.

Solche und andere Übertreibungen landen im Netz und dort werden sie zu Wahrheiten. Mundus vult decipi, ergo decipiatur.

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.