Wer hat’s erfunden? D. R. Reddy auf der Suche nach dem Erfinder des Computers

BLOG: Heidelberg Laureate Forum

Laureates of mathematics and computer science meet the next generation
Heidelberg Laureate Forum
Dabbala Rajagopal Reddy
Dabbala Rajagopal Reddy
© Klaus Tschira Stiftung / Peter Badge

“Wer die Vergangenheit nicht kennt, kann die Gegenwart nicht verstehen und die Zukunft nicht gestalten.” Ich bezweifle, dass Dabbala Rajagopal Reddy (Turing Award 1994) vorstehendes Zitat aus einer Bundestagsrede Helmut Kohls kannte, als er beschloss, seinen HLF-Vortrag der Suche nach den Ursprüngen des modernen Computers zu widmen. Dennoch ging es im ersten Laureatenvortrag des Forums um ein auf den ersten Blick sehr geschichtslastiges, aber dennoch hochrelevantes Thema: Wem kann (und mit welchem Recht) nun eigentlich die Erfindung des Computers zugeschrieben werden?

Nach einer historischen Einführung, bestehend aus einer Übersichtsdarstellung der Informationsrevolution und ihren drei Stufen Schrift, (Buch)Druck, und Computer, den philosophischen und mathematischen Grundlagen, beginnend u.a. mit Napiers analogen Rechenschiebern, Leibniz und Booles theoretischen Vorarbeiten, sowie Babbages und Lady Lovelaces Bemühungen um eine erste physikalische Realisierung einer (mehr oder minder) generellen Rechenmaschine, identifizierte Reddy schnell eine kurze Liste von Hauptverdächtigen: Alan Turing, John V. Atanasoff, Konrad Zuse, oder John von Neumann.

Die Beweislage würde dabei in einem reinen Indizienprozess wohl ausreichen, um jeden der vier Kandidaten schuldig zu sprechen. Alan Turing ist sowohl der Vater des (theoretischen) Konzepts der Turing-Maschine, als auch die Schlüsselfigur in der Entwicklung der Automatic Computing Engine (1945). John V. Atanasoff ist einer der beiden Namensgeber des Atanasoff-Berry-Computers (ABC; 1941). Konrad Zuse war alleiniger Entwickler der relativ bekannten Zuse Z3. Und John von Neumann verfasste 1945 zunächst den Electronic Discrete Variable Automatic Computer (EDVAC)-Report, bevor er 1952 an entscheidender Stelle an der Entstehung des Institute for Advanced Study (IAS)-Computers beteiligt war.

Alan Turing-Skulptur
Alan Turing-Skulptur in Bletchley Park
Flickr / CC-licensed: oalfonso

Doch eins nach dem anderen: Zunächst gilt es, zwischen zwei Alan Turings zu unterscheiden – nämlich Turing im Jahr 1936, sozusagen dem “Turing Maschinen Turing”, und Turing im Jahr 1945, dem “ACE Turing”. 1936 formuliert Turing zum ersten Mal das Konzept einer universellen Turing Maschine, d.h., er entwickelt die theoretische Idee eines Mechanismus, welcher als Grundlage einer domänenunabhängigen Rechenmaschine dienen kann. Vereinfacht gesagt, handelt es sich dabei in seiner Vorstellung um nichts anderes als ein unendlich langes Speicherband, welches durch einen Lese-/Schreibmechanismus nach gewissen Vorgaben bearbeitet werden kann – der Mechanismus kann das Band schrittweise vor- und zurückspulen, kann den Inhalt an einer Stelle lesen, und (nach gewissen Vorgaben) im nächsten Schritt gegebenenfalls verändern. Klingt trivial? Ist es aber nicht – mit einigen Modifikationen, Hinzufügungen und Einschränkungen unterliegt dieses Modell unserer modernen Vorstellung von Berechenbarkeit, und damit (so gut wie) allen modernen Rechnern und Computern.

Während der “Turing Maschinen Turing” somit noch rein theoretisch blieb, wurde der 1945er “ACE Turing” schon etwas angewandter: Im sogenannten Automatic Computing Engine-Report entwarf Turing ein Konzept für einen Computer mit im Speicher befindlicher Programmierung, binärer Arithmetik, basierend auf elektronischen Logikgattern als technischen Bausteinen – ein Konzept, welches frappierende Ähnlichkeit mit der RISC-Architektur moderner elektronischer Computer (eingeführt Ende der 1970er/Anfang der 1980er Jahre) aufweist!

Weitenteils unabhängig davon, jedoch zeitlich parallel, entwarf John V. Atanasoff (gemeinsam mit Clifford Berry) den Atanasoff-Berry-Computer. Anders als im Falle Turings resultierte Atanasoffs Arbeit auch tatsächlich in einer Rechenmaschine, welche Anfang der 1940er ihren Dienst am Iowa State College aufnahm: Im Gegensatz zu Turings Ideen handelte es sich beim ABC aber nicht um einen generellen, programmierbaren Computer, sondern um einen Röhrencomputer mit einem einzigen, festen Zweck, nämlich dem Lösen von linearen Gleichungssystemen. Nichtsdestotrotz war der ABC der erste automatische elektronische Digitalrechner in den USA, und somit Vorläufer zahlreicher, heute weltberühmter Nachfolgesysteme.

Zuse Z3 im Deutschen Museum, München
Nachbau einer Zuse Z3 im Deutschen Museum in München
German language Wikipedia / CC-licensed: Venusianer

Ungefähr zeitgleich, aber auf der anderen Seite des Atlantiks, entwickelte Konrad Zuse mit seiner Z3 (in Zusammenarbeit mit Helmut Schreier) 1941 in Berlin den weltweit ersten funktionsfähigen programmierbaren Digitalrechner. Nur als grobe Größenordnung: Die Z3 bestand aus 600 elektromagnetischen Relais für das Rechenwerk, sowie 1600 Relais für das Speicherwerk, und übertraf (vor allem gemeinsam mit der Lochstreifenleser- und Tastatureinheit) die durchschnittliche IKEA-Wohnwand problemlos an Größe.

Als letzter Kandidat auf der Liste verbleibt John von Neumann – und damit ein Schwergewicht und fast schon Gewohnheitstäter für wissenschaftliche Durchbrüche in der Mitte des 20. Jahrhunderts. In seinem 1945 veröffentlichten ersten Entwurf eines Berichts zum EDVAC-Projekt (First Draft of a Report on the EDVAC) führte er die später nach ihm benannte Von-Neumann-Architektur ein – ein Computermodell, bei dem Daten und Programm im selben Speicher codiert liegen, was es erlaubt, ein Programm während eines laufenden Rechenvorgangs zu verändern, bzw. von der vorab festgelegten Reihenfolge von Rechenschritten situationsbedingt abzuweichen. Doch damit nicht genug, 1949 übernimmt John von Neumann außerdem die Leitung des Computerprojekts des Institute for Advanced Study, welches durch frei zugängliche Forschungsberichte starken Einfluss auf die beginnenden Computerprojekte anderer Universitäten und Regierungseinrichtungen in den USA und England nahm.

Aber wer hat nun den Computer erfunden, wem steht die Krone zu? Auf ihre jeweils eigene Weise eigentlich jedem der vier (bzw. fünf):

  • Atanasoff entwickelte den ersten funktionsfähigen elektronischen Digitalcomputer mit binärer Arithmetik.
  • Zuse entwickelte den ersten funktionsfähigen programmierbaren allgemeinen Computer.
  • Turing (1936) schlug zum ersten Mal das Konzept von im Speicher abgelegten Programmen vor.
  • John von Neumann entwarf den ersten elektronischen digitalen Computer mit gespeicherter Programmierung.
  • Turing (1945) sah als erster die Architektur moderner Rechner vorher.
John von Neumann
John von Neumann
United States Department of Energy, Los Alamos National Laboratory

Um das Täterfeld dann doch noch ein wenig einzuschränken, empfiehlt sich vielleicht ein Blick auch auf das Umfeld und den bleibenden Eindruck, welche die jeweiligen Entwicklungen hatten (oder eben nicht hatten). Atanasoff hatte in seinem ABC keine allgemeine, programmierbare Architektur, seine Maschine war ausschließlich auf das Lösen linearer Gleichungen festgelegt – was vielleicht auch eine teilweise Erklärung dafür ist, dass die Auswirkungen auf nachfolgende Generationen von Computern doch sehr beschränkt waren. Turings 1936er Ergebnisse rund um die universelle Turing Maschine sind heute zwar von großer theoretischer Bedeutung, blieben seinerzeit aber weitestgehend unbeachtet – und hatten daher auch allenfalls marginalen Einfluss auf die weitere Entwicklung. Und Zuses Z3 hatte zwei entscheidende Nachteile: Zum einen gab es keine Möglichkeit, den Programmlauf durch bedingte Abfragen des aktuellen Speicherzustands zu verändern, zum anderen bestand die Z3 aus elektromechanischen (und damit relativ anfälligen, aber vor allem auch raumgreifenden) Komponenten.

Somit lässt sich das Feld also auf zwei Kandidaten einschränken, John von Neumann und den 1945er Turing. Und hier traf D. R. Reddy meines Dafürhaltens den Nagel auf den Kopf: Zwischen diesen beiden entscheiden zu müssen, ist, als ob man entscheiden solle, wer die Analysis erfunden habe – Newton oder Leibniz? Insofern wird die Informatik wohl mit zwei gleichwertigen Vätern ihres liebsten Spielgerätes leben müssen. Was aber, angesichts der Bedeutung und des Lebenswerks beider, definitiv als feature, und nicht als bug, gesehen werden sollte.

Tarek R. Besold

arbeitet als PostDoc zu verschiedenen Themen aus dem Dunstkreis "Künstliche Intelligenz und Künstliche Kreativität" am Institut für Kognitionswissenschaft der Universität Osnabrück. Vor seiner Promotion in Kognitionswissenschaft hatte er Mathematik mit Nebenfach Informatik studiert, und ein einjähriges Intermezzo als "Logic Year"-Gaststudent an der Universität Amsterdam verbracht. Neben seiner eigentlichen Forschungsarbeit engagiert er sich als Wissenschaftskommunikator (zweiter Gewinner des 2013er Falling Walls Lab "Young Innovator of the Year"-Preises), Mitveranstalter von Wissenschaftsevents und gelegentlicher Autor des Analogia-SciLogs-Blog tätig.

4 comments

  1. Gestern Abend hatte ich das Vergnügen neben Raj Reddy und seiner netten Frau im Schloss Schwetzingen zu dinnieren. Wir haben uns über Social Media und deren Nutzen ausgetauscht.

  2. Theoretiker erfanden den Computer? Sicher hat Turing grundlegende Konzepte entwickelt aber keinen lauffähigen Computer. Zudem sind Turings Konzepte mehr für theoretische Fragen wie die der Berechenbarkeit und weniger für praktische Anwendungen wegweisend. Von Neumann war als Berater des ENIAC-Projekts schon viel näher an der Sache. Doch der ENIAC wurde erst 1948 fertigt während die Z3 schon 1941 lief. Selbst wenn man zugestehen muss, dass die Z3 durch die fehlende Unterstützung für bedingte Befehle von der Programmierbarkeit sehr beschränkt war, war er zugleich der erste lauffähige universelle Computer wie der Nachweis der Turing-Vollständigkeit des Z3 durch Raúl Rojas beweist.

  3. @Martin Holzherr:
    Ja, im Nachhinein betrachtet war die Z3 tatsächlich der erste lauffähige, universelle Computer (zwar sind für die Universalität dann doch einige ziemlich beschwerliche Tricks und Umwege notwendig, aber nichtsdestotrotz) – das Problem war/ist in meinen Augen aber, dass dies zu Lebzeiten Zuses (geschweige denn 1941) niemandem klar war. Insofern ist die Turing-Vollständigkeit wohl eher ein unerwartetes, aber überaus erfreuliches Feature der Z3, denn eine gewollte/erwartete Konstruktionseigenschaft.

  4. @Tarke R.Besold
    Mit folgender Einschätzung täuschen sie sich meiner Ansicht nach: “Insofern ist die Turing-Vollständigkeit wohl eher ein unerwartetes, aber überaus erfreuliches Feature der Z3, denn eine gewollte/erwartete Konstruktionseigenschaft”

    Jedes nicht von vornherein auf eine bestimmte Anwendung zugeschnittene Programmiermodell wird Turing-Vollständig sein, denn sonst kann man wirklich sehr wenig mit der Maschine anfangen. SQL ist beispielsweise nicht Turing vollständig. Eine Maschine wie die Z3, welche beliebige Gleitkommaoperationen unterstützte und mit der Matrizenrechnungen durchgeführt wurden, wird mit grosser Wahrscheinlichkeit Turing vollständig sein. Falls das nicht der Fall gewesen wäre, hätte man sagen können, nur diese und diese Algorithmen lassen sich auf der Z3 implementieren. Auf der Seite How to Make Zuse’s Z3 a Universal Computer wird gezeigt wie man mit der Z3 Schleifen und bedingt ausgeführte Abschnitte programmiert.
    Im strengen Sinn gibt es übrigens keine reelllen universellen Turing-Maschinen, da diese ja einen unbeschränkt grossen Speicher erfordern. Doch für praktische Zwecke ist ein grosser Speicher fast gleichbedeutend mit einem unbegrenzt grossen Speicher.
    Ich bin überzeugt, dass die Techniken, die in dem verlinkten Artikel gezeigt werden, bereits von den Z3-Programmierern verwendet wurden. Programmierer sind bekanntlich für jeden Trick zu haben.

Leave a Reply


E-Mail-Benachrichtigung bei weiteren Kommentaren.
-- Auch möglich: Abo ohne Kommentar. +