Im Jahre 2021 feiern wir den 80. Geburtstag Konrad Zuses
krönender Errungenschaft, der Z3, dem weltweit ersten funktionsfähigen programmgesteuerten Allzweckrechner,
beruhend auf einer Patentanmeldung von 1936.
Heute sind Computer allgegenwärtig, und Milliarden von Menschen hängen von ihnen ab.
Nur noch 20 Jahre bis zum Z3-Jubiläum 2041!
Zwischen 1935 und 1941 schuf
Konrad Zuse (1910-1995)
den ersten funktionierenden programmierbaren Allzweck-Computer der Welt: die Z3.
Die entsprechende Patentanmeldung des "Vaters des Computers" stammt aus dem Jahr 1936.[ZU36-38][RO98]
1946 gründete er auch die erste Computer Startup Firma: das
Zuse-Ingenieurbüro Hopferau (IBM lieferte Wagniskapital für eine Option auf Zuses Patente).
Als wäre dies nicht genug, um Zuses Vermächtnis als Wegbereiter der Informatik zu zementieren, entwarf er in den frühen 1940er Jahren
auch noch Plankalkül,
die erste höhere Programmiersprache[BAU][KNU]
(vgl. auch die erste formale Sprache von Gottlob Frege[FRE]).
1945 wandte Zuse Plankalkül auf Schach an,[KNU]
1948 aufs Theorembeweisen.[ZU48]
Im Jahr 1967 schlug er
Zuse's These vor,
nämlich, dass die Physik selbst berechenbar sei, und eine Art zellulärer Automat die Evolution des Universums
berechnet.[ZU67-69][ALL2]
Welche Rolle spielt die Z3 in der Geschichte der Informatik?
Die Konstruktion von Automaten begann bereits in der Antike.
Das Antikythera-Getriebe (eine astronomische Uhr) entstand vor über 2000 Jahren.
Eineinhalb Jahrtausende später baute Peter Henlein immer noch konzeptionell ähnliche Maschinen—wenn auch kleiner: die ersten miniaturisierten Taschenuhren (1505).
Aber diese Geräte berechneten immer das Gleiche. So teilten sie z.B. die Zahl der Minuten durch 60, um die Zahl der Stunden zu erhalten.
Die 1600er Jahre brachten flexiblere Maschinen, welche Antworten in Reaktion auf Eingabedaten berechneten.
Wilhelm Schickard,
Anwärter auf den Titel
"Vater des automatischen Rechnens", baute 1623
die erste automatische, getriebebasierte, datenverarbeitende Rechenmaschine für einfache Arithmetik,
gefolgt von Blaise Pascals
überlegener Pascaline (1642).
Im Jahr 1673 konstruierte Gottfried Wilhelm Leibniz die erste Maschine, die alle vier Grundrechenarten ausführen konnte (den Schrittzähler), und auch die erste mit internem Speicher.[BL16]
1679 beschrieb er Prinzipien von Binärcomputern, die durch Lochkarten gesteuert
werden.[L79][LA14][HO66][L03][IN08][LEI21,a,b]
1686 schuf Leibniz
seine formale Algebra des Denkens,[L86][WI48]
welche aus
deduktiver Sicht äquivalent[LE18] ist zur viel späteren
Booleschen Algebra[BOO] von 1847.
Leibniz als "Vater der Informatik"[LEI21,a,b]
wurde oft als "erster Computerwissenschaftler" bezeichnet,[LA14]
und sogar als "klügster Mann, der je gelebt hat".[SMO13]
Er war nicht nur der erste, der die Integralrechnung veröffentlichte,[L84]
sondern verfolgte auch das überaus ehrgeizige Projekt der Klärung
aller möglichen Fragen durch Rechnen
(Characteristica Universalis & Calculus Ratiocinator[WI48]).
In den frühen 1930er Jahren
versetzte Kurt Gödel dem Leibniz'schen Projekt der universellen Fragenbeantworter allerdings einen Schlag.[GOD][GOD34][GOD21,a,b]
Mit seiner
universellen Sprache zur Kodierung beliebiger formalisierbarer Prozesse (1931-34)[GOD][GOD34]
zeigte er, dass es fundamentale Beschränkungen dessen gibt, was entscheidbar oder berechenbar ist.
Seine bahnbrechende Arbeit von 1931[GOD] legte die Grundlagen der modernen theoretischen Informatik und der Theorie der künstlichen Intelligenz (KI).[GOD21,a,b]
Der pragmatische Konrad Zuse interessierte sich
offenbar nicht besonders für derartige theoretische Arbeiten.
Im Jahr 1936, fünf Jahre nach Gödel's berühmter Veröffentlichung,[GOD]
reichte er seine Patentanmeldung für einen höchst praktischen
realen Rechner an.[ZU36-38][Z36][RO98]
Sie beschreibt digitale Schaltungen, die für programmierbare physikalische Hardware erforderlich sind,
basierend auf den Leibniz'schen Prinzipien binärer Computer, die durch Lochkarten gesteuert werden (1679).[L79][LA14][HO66][L86][WI48][LEI21,a,b] (Sie
geht auch Claude Shannons 1937er Arbeit[SHA37] zum digitalen
Schaltungsentwurf voraus.)
Zuses Z3 fehlte zwar die
bei Programmierern beliebte explizite bedingte Sprunganweisung "IF ... THEN GOTO ADDRESS ..."[RO98]
(später mit geringem Aufwand hinzugefügt bei einer Variante namens Z4 für die ETHZ).
Dies hinderte Z3 natürlich nicht daran, ein Universalrechner zu sein.[RO98]
Einfache arithmetische Tricks (z.B. Multiplikation mit 0) lassen sich verwenden, um vorübergehend
aus jeder Anweisung, die nicht ausgeführt werden soll, weil eine Bedingung nicht erfüllt ist,
eine Leerinstruktion zu machen.[RO98]
Ignoriert man die unvermeidlichen Speicherbeschränkungen eines jeden realen Computers,
war die physikalische Hardware der Z3 tatsächlich
universell im modernen Sinne der rein theoretischen, unpraktikablen Konstrukte von
Gödel[GOD][GOD34] (1931-34),
Church[CHU] (1935),
Turing[TUR] (1936), und Post[POS] (1936),
welche übrigens auch keine "modernen" bedingten Sprünge aufwiesen (sie hatten ja nicht mal numerierte Speicheradressen, zu denen ein Befehlszähler hätte springen können).
Z3s sichtbar bewegliche Schalter waren
elektromagnetische Relais.
Die erste elektronische Spezialrechenmaschine
(mit unsichtbaren Elektronen als bewegte Teile)
war der
binäre ABC (USA, 1942) des bulgarisch-stämmigen
John Atanasoff (dem "Vater des röhrenbasierten Rechnens"[NASC6a]).
Im Gegensatz zu den getriebebasierten Maschinen der 1600er verwendete
ABC Vakuumröhren—heutige Maschinen beruhen auf dem
von
Julius E. Lilienfeld
1925 patentierten
Transistorprinzip.[LIL1-2]
Doch im Gegensatz zu Zuses Z3 war ABC nicht frei programmierbar.
Ebenso wenig war das Tommy Flowers' elektronische
Colossus-Maschine (UK, 1943-45),
die zum Knacken des Nazi-Codes verwendet wurde.[NASC6]
Das grundlegende Konzept der Programme war zu diesem Zeitpunkt allerdings längst bekannt.
Die vielleicht erste praktische
programmierbare Maschine war im 1.
Jahrhundert ein automatisches Theater[SHA7a][RAU1] des Heron von Alexandria
(der anscheinend auch die erste bekannte funktionierende Dampfmaschine baute—die Aeolipile).
Die Energiequelle seines programmierbaren
Automaten bestand aus einem Fallgewicht, das eine Schnur zog, die um die Stifte eines drehbaren Zylinders gewickelt war.
Komplexe Befehlssequenzen zur Steuerung von Türen und Puppen
über mehrere Minuten hinweg wurden durch komplexe Umwicklungen kodiert.
Der aus dem 9. Jahrhundert stammende
Musik-Automat
der Brüder Banu Musa in Bagdad
war vielleicht die erste Maschine mit gespeichertem Programm.[BAN][KOE1] Stifte auf
einem rotierenden Zylinder stellten Anweisungen für eine dampfgetriebene
Flöte dar—vergleiche auch Al-Jazaris programmierbare Trommelmaschine von 1206.[SHA7b]
Die ersten kommerziellen programmgesteuerten
Maschinen (lochkartenbasierte Webstühle) entstanden in Frankreich um
1800 durch Joseph-Marie Jacquard und andere—vielleicht die ersten "modernen"
Programmierer, die die erste industrielle Software der Welt schrieben.
Sie inspirierten Ada Lovelace und ihren Mentor
Charles Babbage (UK, um 1840). Er plante vergeblich, einen
programmierbaren Universalrechner zu bauen (nur seine nicht-universelle Spezialrechenmaschine
führte zu einem funktionierenden Nachbau im 20. Jahrhundert).
Im Gegensatz zu Babbage verwendete Zuse das Leibniz'sche Binärrechnerprinzip[L79][L03][HO66][LA14]
anstelle der traditionellen
dezimalen Arithmetik.
Dies vereinfachte die Hardware sehr.[LEI21,a,b]
Heute sind die meisten Computer binär wie die Z3.
In diesem Zusammenhang erscheint es angebracht, auf den Unterschied zwischen
Programmen und den oben erwähnten begrenzteren benutzerdefinierten Eingabedaten des 17. Jahrhunderts hinzuweisen.
Programme sind auf einem Medium (z.B. Lochkarten) gespeicherte Befehlssequenzen.
Sie lassen sich immer wieder ausführen, ohne dass ein Mensch eingreifen muss.
Die zum Speichern benötigen physikalischen Objekte wurden im Laufe der Jahrhunderte leichter.
Antike Maschinen speicherten
Programme auf rotierenden Zylindern;
Jacquard speicherte sie auf Pappe;
Zuse speicherte sie auf 35-mm-Film;
heute speichern wir sie oft mit Hilfe von Elektronen und magnetisierbarem Material.
Der erste funktionstüchtige Allzweckrechner, der nicht von
Zuse selbst stammte (1941),[RO98] war Howard Aikens dezimaler MARK I (USA, 1944).
Eckert und Mauchlys wesentlich schnellerer dezimaler ENIAC
(1945/46) wurde durch Umverkabelung programmiert.
Sowohl Daten als auch Programme liessen sich ablegen im elektronischen Speicher
des Manchester-Babys (Williams, Kilburn & Tootill, UK, 1948)
und der ENIAC-Aufrüstung von 1948, welche durch Eingabe numerischer Befehlscodes in den Festspeicher umprogrammiert wurde.[HAI14b]
Bereits 1936-38 dürfte Zuse jedoch als erster vorgeschlagen haben, sowohl Programmanweisungen als auch Daten im Speicher abzulegen.[ZU36-38]
Zuses Arbeiten zu automatischen Schachspielern[KNU] (1945)
und Theorembeweisern[ZU48] (1948, lange vor Newell & Simon[NS56]) waren zwar bahnbrechend, doch
nicht die ersten im Bereich der Künstlichen Intelligenz (KI).
Bereits 1914 baute der Spanier
Leonardo Torres y Quevedo als wohl
erster Pionier der praktischen KI des 20. Jahrhunderts einen funktionierenden Schach-Endspieler
(damals galt Schach noch als eine Tätigkeit, die intelligenten Wesen vorbehalten war).
Noch Jahrzehnte später beeindruckte die Maschine, als sie 1951 gegen
den KI-Pionier Norbert Wiener
auf der Pariser Konferenz spielte,[AI51][BRO21][BRU1-4] welche
heute oft als die erste KI-Konferenz überhaupt angesehen wird—obwohl der Begriff "KI" erst 1956 auf einer anderen Konferenz in Dartmouth von John McCarthy geprägt wurde. Tatsächlich nannte man 1951
vieles von dem, was heute als
KI bezeichnet wird, noch Kybernetik,
mit einem Schwerpunkt vergleichbar dem der
modernen KI
basierend auf neuronalen Netzen.[DL1-2][DEC]
1941 konnte Zuses Z3 ungefähr eine Elementaroperation (z. B. eine Addition) pro Sekunde ausführen. Seither wurde
Rechenleistung alle 5 Jahre 10 mal billiger (man beachte, dass dieses Gesetz viel älter ist als
das Moore'sche Gesetz der 1960er, welches besagt, dass sich die Anzahl der Transistoren[LIL1-2]
pro Mikrochip alle 18 Monate verdoppelt). Heute (2021), 80 Jahre nach der Z3,
führen moderne Computer etwa 10 Millionen Milliarden Befehle pro Sekunde zum gleichen
(inflationsbereinigten) Preis aus.
Die naive Extrapolation dieses exponentiellen Trends sagt voraus, dass es noch im
21. Jahrhundert billige Rechner mit dem Tausendfachen der
rohen Rechenleistung aller menschlichen Gehirne zusammengenommen geben wird.[RAW]
Wo liegen die physikalischen Grenzen?
Nach Bremermann (1982)[BRE]
kann ein Computer mit 1 kg Masse und 1 Liter Volumen höchstens
1051 Operationen pro Sekunde auf höchstens 1032 Bits ausführen.
Ein Vierteljahrtausend nach der Z3 wird sich der obige Trend der
Bremermann-Grenze annähern, so um das Jahr 2200 herum.
Da es im Sonnensystem nur 2 x 1030 kg Masse gibt,
muss der Trend allerdings innerhalb weniger Jahrhunderte umschlagen,
da die Lichtgeschwindigkeit den möglichen Zuwachs an Masse (z.B. in Form anderer Sternsysteme) durch eine polynomielle Funktion der Zeit stark einschränkt,
wie bereits 2004 festgestellt.[OOPS2]
Schon 1970, lange bevor Rechner allgegenwärtig waren, zählte Peters renommierter
Atlas der Weltgeschichte
Zuse zu den 30 wichtigsten Persönlichkeiten des 20. Jahrhunderts, zusammen mit
Einstein,
Gandhi, Hitler, Lenin, Roosevelt, Mao, Picasso, etc.
Zuses historische Bedeutung hat sich mit dem exponentiellen Wachstum
der Computertechnik seither nur weiter vergrössert.
Bereits zur Jahrtausendwende trugen mehr als 80 Strassen und Plätze seinen Namen.
Eine Sammlung seiner Schriften samt Bildern seiner
Maschinen findet sich in diesem
Online-Archiv.
Im Jahr 2021 feiern wir nicht nur den 80. Jahrestag von Zuses
Rechner, sondern auch den
90. Jahrestag von Kurt Gödel's bahnbrechender Arbeit von 1931,[GOD][GOD21,a,b] die die Grundlagen der theoretischen Informatik und der KI-Theorie legte. Gödel identifizierte die fundamentalen Grenzen des Theorembeweisens, des Rechnens, der KI, der Logik und der Mathematik selbst.[GOD][GOD34][BIB3][GOD21,a,b] Dies hatte enormen Einfluss auf Wissenschaft und Philosophie des 20. Jahrhunderts.[GOD21,a,b]
Es scheint kaum glaubhaft, dass binnen nicht mal eines Jahrhunderts etwas, das
einst nur in den Köpfen solcher Titanen lebte, zu einem unverzichtbaren Teil der modernen Gesellschaft geworden ist.
Die Welt schuldet diesen Wissenschaftlern viel.
Noch 10 Jahre bis zur Gödel-Hundertjahrfeier 2031,
20 bis zur Zuse-Hundertjahrfeier 2041, und
1/4 Jahrhundert bis zur 4. Leibniz-Hundertjahrfeier 2046!
Genug Zeit, um entsprechende Paraden zu planen.
Danksagung
Dank an Moshe Vardi, Herbert Bruderer, Jack Copeland, Wolfgang Bibel, Teun Koetsier, Scott Aaronson, Dylan Ashley, Sebastian Oberhoff, Kai Hormann, und weiteren Gutachtern für nützliche Kommentare zum Inhalt der Begleitartikel.[LEI21,a,b][GOD21,a,b][ZUS21,a,b] Da sich Wissenschaft um Selbstkorrektur dreht, lassen Sie es mich unter juergen@idsia.ch wissen, falls Sie irgendwo einen Fehler finden. Der Inhalt dieses Artikels darf für erzieherische und nicht-kommerzielle Zwecke verwendet werden, auch für Wikipedia und ähnliche Seiten, unter der "Creative Commons Namensnennung—Nicht-kommerziell—Weitergabe unter gleichen Bedingungen 4.0 International (CC BY-NC-SA 4.0) Lizenz".
Referenzen
[GOD]
K. Gödel. Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I. Monatshefte für Mathematik und Physik, 38:173-198, 1931.
[GOD34]
K. Gödel (1934).
On undecidable propositions of formal mathematical
systems. Notes by S. C. Kleene and J. B. Rosser on lectures
at the Institute for Advanced Study, Princeton, New Jersey, 1934, 30
pp. (Reprinted in M. Davis, (ed.), The Undecidable. Basic Papers on Undecidable
Propositions, Unsolvable Problems, and Computable Functions,
Raven Press, Hewlett, New York, 1965.)
[GOD21] J. Schmidhuber (AI Blog, 2021). 90th anniversary celebrations: 1931: Kurt Gödel, founder of theoretical computer science, shows limits of math, logic, computing, and artificial intelligence. This was number 1 on Hacker News.
[GOD21a]
J. Schmidhuber (2021). Als Kurt Gödel die Grenzen des Berechenbaren entdeckte.
(When Kurt Gödel discovered the limits of computability.)
Frankfurter Allgemeine Zeitung, 16/6/2021.
[GOD21b]
J. Schmidhuber (AI Blog, 2021). 80. Jahrestag: 1931: Kurt Gödel, Vater der theoretischen Informatik, entdeckt die Grenzen des Berechenbaren und der künstlichen Intelligenz.
[BIB3]
W. Bibel (2003).
Mosaiksteine einer Wissenschaft vom Geiste. Invited talk at
the conference on AI and Gödel, Arnoldsheim, 4-6 April 2003.
Manuscript, 2003.
[FRE] G. Frege (1879).
Begriffsschrift: eine der arithmetischen nachgebildete Formelsprache des reinen Denkens. Halle an der Saale: Verlag Louis Nebert.
[The first formal language / formal proofs—basis of modern logic and programming languages.]
[L79]
G. Leibniz.
De Progressione dyadica Pars I. 15 March 1679.
[Principles of binary computers governed by punch cards.]
[L03]
G. Leibniz (1703). In: Explication de l'Arithmetique Binaire / Die Mathematischen Schriften, ed. C. Gerhardt, Berlin 1879, vol.7, p.223. English link.
[Leibniz documented the binary arithmetics which allow for greatly simplifiying computing hardware and are employed by virtually all modern computers. Binary number encodings per se, however, seem to date back over 4000 years.]
[L84]
G. Leibniz (1684).
Nova Methodus pro Maximis et Minimis.
[First publication on infinitesimal calculus.]
[L86]
G. Leibniz (1686). Generales Inquisitiones de analysi notionum et veritatum.
Also in
Leibniz: Die philosophischen Schriften VII, 1890, pp. 236-247; translated as "A Study in the Calculus of Real Addition" (1690) by G. H. R. Parkinson, Leibniz: Logical Papers - A Selection, Oxford 1966, pp. 131-144.
[LEI21] J. Schmidhuber (AI Blog, 2021). 375th birthday of Leibniz, founder of computer science.
[LEI21a]
J. Schmidhuber (2021). Der erste Informatiker. Wie Gottfried Wilhelm Leibniz den Computer erdachte.
(The first computer scientist. How Gottfried Wilhelm Leibniz conceived the computer.)
Frankfurter Allgemeine Zeitung (FAZ), 17/5/2021. FAZ online:
19/5/2021.
[LEI21b] J. Schmidhuber (AI Blog, 2021). 375. Geburtstag des Herrn Leibniz, dem Vater der Informatik.
[BOO]
George Boole (1847). The Mathematical Analysis of Logic, Being an Essay towards a Calculus of Deductive Reasoning.
London, England: Macmillan, Barclay, & Macmillan, 1847.
[LL7]
A. Bonner (2007). The art and logic of Ramon Llull. Brill Academic Pub, p. 290, 2007.
[RU58]
B. Russell (1958). The Philosophy of Leibniz. London: George Allen and Unwin, 1958.
[LE18]
W. Lenzen.
Leibniz and the Calculus Ratiocinator. Technology and Mathematics, pp 47-78, Springer, 2018.
[LA14]
D. R. Lande (2014).
Development of the Binary Number System and the Foundations of Computer Science. The Mathematics Enthusiast, vol. 11(3):6 12, 2014.
Link.
[BL16]
L. Bloch (2016). Informatics in the light of some Leibniz's works.
Communication to XB2 Berlin Xenobiology Conference.
[HO66]
E. Hochstetter et al. (1966): Herrn von Leibniz' Rechnung mit Null und Eins. Berlin: Siemens AG.
[IN08]
R. Ineichen (2008). Leibniz, Caramuel, Harriot und das Dualsystem. Mitteilungen der deutschen Mathematiker-Vereinigung. 16(1):12-15.
[WI48]
N. Wiener (1948).
Time, communication, and the nervous system. Teleological mechanisms. Annals of the N.Y. Acad. Sci. 50 (4): 197-219.
[Quote: "The history of the modern computing machine goes back to Leibniz and Pascal. Indeed, the general idea of a computing machine is nothing but a mechanization of Leibniz's calculus ratiocinator."]
[SMO13]
L. Smolin (2013). My hero: Gottfried Wilhelm von Leibniz. The Guardian, 2013.
Link.
[Quote: "And this is just the one part of Leibniz's enormous legacy: the philosopher Stanley Rosen called him "the smartest person who ever lived"."]
[CHU]
A. Church (1935). An unsolvable problem of elementary number theory. Bulletin of the American Mathematical Society, 41: 332-333. Abstract of a talk given on 19 April 1935, to the American Mathematical Society.
Also in American Journal of Mathematics, 58(2), 345-363 (1 Apr 1936).
[First explicit proof that the Entscheidungsproblem (decision problem) does not have a general solution.]
[TUR]
A. M. Turing. On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, Series 2, 41:230-267. Received 28 May 1936. Errata appeared in Series 2, 43, pp 544-546 (1937). [2nd explicit proof that the Entscheidungsproblem (decision problem) does not have a general solution.]
[POS]
E. L. Post (1936). Finite Combinatory Processes - Formulation 1. Journal of Symbolic Logic. 1: 103-105.
Link.
[NASC6] J. Schmidhuber. Colossus was the first electronic digital computer. Correspondence, Nature, 441 p 25, May 2006.
[NASC6a] J. Schmidhuber. Comment on "Biography: The ABC of computing" by J. Gilbey, Nature 468 p 760-761 (2010). Link.
[ALL2]
J. Schmidhuber (2000).
Algorithmic theories of everything.
ArXiv:
quant-ph/ 0011122.
More.
See also:
Hierarchies of generalized Kolmogorov complexities and nonenumerable universal measures computable in the limit.
International Journal of Foundations of Computer Science 13(4):587-612, 2002.