34
Historie der Programmierung Maschinen und Algorithmen Androiden Algorithmen der Antike Die Rechenmeister des Mittelalters Rechenmaschinen Schickard, Pascal, Leibniz Jacquards Webstühle Babbages Analytical Engine Theorie der Berechenbarkeit im 20. Jh. • Universalmaschinen Turings Universalmaschine Stored Programm Computer, Zuse, von Neumann

Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Embed Size (px)

Citation preview

Page 1: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Historie der Programmierung

• Maschinen und Algorithmen– Androiden

– Algorithmen der Antike

– Die Rechenmeister des Mittelalters

– Rechenmaschinen Schickard, Pascal, Leibniz

– Jacquards Webstühle

– Babbages Analytical Engine

– Theorie der Berechenbarkeit im 20. Jh.

• Universalmaschinen– Turings Universalmaschine

– Stored Programm Computer, Zuse, von Neumann

Page 2: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Androiden

Automaten für Lebendiges

Seit der Antike sind Zeugnisse von Automaten (Selbstbewegern) bekannt, um damit Natur oder das Leben nachzuahmen.

Heron von Alexandria (1. Jh. nach Chr.)

Mittelalter:Jacques de Vaucanson (1709 - 1782)

- Ente- Flötenspieler (um 1738)- Tamburinspieler (um 1738)

Page 3: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Androiden

Familie Jaquet-Droz

Die Automaten Jaquet-Droz werden zwischen 1768 und 1774 durch Pierre Jaquet-Droz, seinem Sohn Henri-Louis und Jean-Frédéric Leschot geschaffen. Sie sind - für die damalige Zeit -wahre Wunder an mechanischer Präzision.

Drei Automaten- Zeichner- Schriftsteller- Musikerin.

Page 4: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Androiden

Sätze auswechselbarer Nocken, die aus der Konstruktionszeit stammen, erlauben die Ausführung von vier Zeichnungen.

- Amor von Schmetterling gezogen

- Hund

- Ludwig XVI und Marie-Antoinette

- Ludwig XV

Page 5: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Maschinen

Mit René Descartes (1596 - 1650) gewann der Automat auch philosophisch anBedeutung. Im „Discours de la méthode“ (1637) und im „Traité de l‘homme (1677)setzt er Tiere mit Maschinen gleich. La Mettrie erweitert das Prinzip in„L`homme Machine“ (1748) auf den Menschen.

Page 6: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Algorithmen

• Klassische Algorithmen

– Wurzelziehen (Heron v. Alexandria, ca. 100 n. Chr.)

Bestimmung der Wurzel einer Zahl. Zur Berechnung der Kantenlänge in rechtwinkligen Dreiecken.

– Der Euklidsche Algorithmus (Euklid, 365 - 300 v. Chr.)

Bestimmung des größten gemeinsamen Teilers zweier Zahlen

– Das Sieb des Eratosthenes (276 - 194 v. Chr.)

Berechnung von Primzahlen

– Die Approximation der Kreiszahl , ca. 287 - 212 v. Chr.)

Page 7: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Algorithmen

Al-Chwarazmi

Um das Jahr 820 schreibt der persisch-arabische Mathematiker Abu Dscha’far Muhammed ibn Musa Al-Chwarazmi (Muhammed, Vater des Dscha’far, Sohn des Musa, der Chorasmier) ein einflussreiches Lehr- und Rechenbuch „Über die indischen Zahlen“.

Der Begriff Algorithmus wird also ursprünglich zur Bezeichnung arithmetischer Verfahren, also der Grundrechenarten verwendet. Die älteste erhaltene lateinische Übersetzung beginnt mit den Worten: „Dixit Algoritmi: laudes deo rectori nostro atque defensori dicamus dignas“ (Algoritmi hat gesprochen! Lob sei Gott unserem Herrn und Beschützer)

Page 8: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Algorithmen

• Aus der Antrittsrede Melanchtons als Mathematikprofessor in Wittenberg im Jahre 1517

„Nachdem ich Ihnen den Nutzen der Rechenkunst erörtert habe, der nicht im geringsten in Zweifel zu ziehen ist, meine ich, auch noch kurz etwas über ihre Leichtigkeit hinzufügen zu sollen. Ich glaube, dass sich die Studierenden von diesen Künsten durch das Vorurteil, sie seien zu schwer, abschrecken lassen. Was die Anfangsgründe des Rechnens betrifft, die ja gewöhnlich schon in der Schule getrieben und im täglichen Leben angewandt werden, so sind die gewaltig im Irrtum, die sie für äußerst schwierig halten. Diese Wissenschaft entspringt unmittelbar dem Menschengeist und lässt sich völlig klar dartun. Deshalb können ihre Anfangsgründe gar nicht dunkel und schwer sein, sie sind im Gegenteil so durchsichtig, dass Kinder sie begreifen können, weil alles ja so natürlich vor sich geht. Die Regeln des Vielfachens und Teilens allerdings erfordern viel mehr Fleiß, aber ihr Sinn wird doch sehr bald von den Aufmerksameren eingesehen werden. Übung und Anwendung erfordert diese Fertigkeit wie alle anderen.“

Page 9: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Algorithmen

Das Versagen der bestehenden Schulformen beförderte die Bildung eines neuen Berufsstandes, den des Rechenmeisters. Sie führten gegen Bezahlung nicht nur die in den städtischen Verwaltungen anfallenden Rechenaufgaben durch, sondern unterhielten oft eigene Rechenschulen, in denen Sie den Umgang mit den Zahlen und vor allem die Grundrechenarten Addition, Subtraktion, Multiplikation und Division unterrichteten.

Page 10: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Algorithmen

Adam Riese (1492 - 1559)

Der im Jahr 1492 im fränkischen Staffelstein geborene Adam Ries (auch Riese) ist in beiden Welten zuhause, bei den Abacisten und bei den Algorithmikern. Er gilt als der bedeutendste und wirksamste deutsche Rechenmeister, der nicht nur zahlreiche Rechenbücher verfasst hat, sondern sowohl das „Rechnen auf den Linien“ (mit Rechenbrettern) als auch das „Rechnen mit den Federn“ (Ziffernrechnen) einschließlich der Coß unterrichtet hat. Das Wort „Coß“ ist hergeleitet vom italienischen cosa (Sache) und steht für die unbekannte Größe in Gleichungen.

Page 11: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Algorithmen

Die Rechenmeister und ihre Rechenbücher verdrängten nach und nach die Rechenbretter, aber erst im 16. Jh. setzen sich die Algorithmiker endgültig gegen die Abacisten durch. Der Methodenstreit zwischen den beiden Schulen wird im Holzschnitt von Gregor Reisch aus dem Jahre 1503 versinnbildlicht. Die Göttin Arithmetica überwacht einen Wettbewerb zwischen dem Philosophen Boethius, der zu dieser Zeit für die Erfindung des Ziffernrechnens stand, und Pythagoras. Der zufriedene Boethius ist bereits fertig, während Pythagoras noch missmutig rechnet. Arithmetica ist offensichtlich der neuen Technik zugeneigt.

Page 12: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Rechenmaschinen

Wilhelm Schickard (1592 - 1635)

Ab 1619 Professor für biblische Sprachen an der Universität Tübingen. 1634 bricht in Tübingen die Pest aus, der auch Schickard 1635 zum Opfer fällt.

Mechanisierung des Rechnens. In zwei Briefen an Kepler beschreibt Schickard seine Maschine.

Bild: Wilhelm Schickard mit copernicanischen Handplanetarium.

Page 13: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Rechenmaschinen

Wilhelm Schickard

Im Jahre 1623 führt mit Schickards Rechenmaschine erstmals eine Komplexion von Zahnrädern die Addition und Subtraktion von Zahlen durch.

Entdeckung durch den Keplerforscher Franz Hammerer, vorgestellt 1957 auf einem Kongress für Mathematikerhistoriker

Erster Nachbau durch Baron Bruno v. Freytag Löringhoff.

Page 14: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Rechenmaschinen

Blaise Pascal (1623 - 1662)

Mathematiker, Physiker und Religionsphilosoph.

Um 1643 entwickelt er seine Zwei-Spezies-Maschine zur Durchführung von Addition und Subtraktion.

Vor der Wiederentdeckung der Maschine von Schickard galt Pascal lange Zeit als Erfinder der ersten Rechenmaschine.

Page 15: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Rechenmaschinen

Blaise Pascal

Umschaltung durch verschieben der Abdeckplatte

Übertrag durch Hebelmechanismus

Page 16: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Rechenmaschinen

Gottfried Wilhelm Leibniz (1646 - 1716)

Philosoph, Mathematiker, Physiker, Historiker und Sprachwissenschaftler (der letzte Universalgelehrte)

Die Leibnizsche Dyadik

Im Jahre 1679 erläutert er in einer aus 3 Seiten bestehenden Schrift ein neues Zahlensystem, das nur auf die zwei Ziffern 0 und 1 aufbaut.

Page 17: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Rechenmaschinen

Im Frühjahr 1996 schildert Leibniz während eines Aufenthalts in Wolfenbüttel dem Herzog von Braunschweig-Wolfenbüttel den Aufbau seines binäres Systems. Herzog Rudolf August war fasziniert und sah in der Entwicklung der Zahlen aus 0 und 1 eine Analogie mit der biblischen Schöpfungsgeschichte. Leibniz greift den Vergleich auf und übernimmt das Bild in sein eigenes philosophisches System. Anfang 1697 schickt Leibniz dem Herzog als Neujahrsgeschenk den Entwurf für eine Medaille, die das duale System und seine Analogie zur Schöpfung symbolisieren sollte.

Page 18: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Rechenmaschinen

Gottfried Wilhelm Leibniz

Prinzip der Staffelwalze

Wurde 50 Jahre später auch von Pfarrer Philipp Matthäus Hahn wieder verwendet. Er opferte seiner Rechenmaschinen-Konstruktion den für damalige Verhältnisse sehr hohe Betrag von 24.000 Talern.

Page 19: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Rechenmaschinen

„Eine Dose soll mit Löchern versehen sein, die geöffnet oder geschlossen werden können. Die offenen Löcher seien gleichbedeutend mit einer 1, die geschlossenen mit einer Null. Eine 1 werde durch das Fallen einer Kugel gekennzeichnet, die 0 durch das Nichtfallen. In mehreren Ebenen aufgebaut könnten mit dieser Maschine durch das Verschieben von Spalte zu Spalte Multiplikationen durchgeführt werden.“

Page 20: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Programmierte Maschinen

Joseph-Marie Jacquard (1752 - 1834)

Er machte durch einen besonderen Mechanismus das arbeits- und zeitaufwendige Auflesen der Latzen und ihre Bedienung durch den Ziehjungen überflüssig. Die von ihm verwendete Kartensteuerung ist der Vorgänger der später von Babbage für Computer verwendete Lochkarten.

Die bahnbrechende Erfindung fand bei den Lyoner Webern nur wenig Gegenliebe. Sie zerstörten wenige Jahre später Maschinen und Modelle. Jacquard musste aus Lyon fliehen und starb 1834 in Armut.

Page 21: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Programmierte Maschinen

Charles Babbage (1791 – 1871)

Einer der wichtigsten Schritte auf dem Weg zur Realisierung der Universellen Maschine ist die Idee der externen Programmierung. Der erste Rechner, der durch ein einzulesendes Programm gesteuert werden sollte - die „Analytical Engine“ von Charles Babbage - wird in den 1830-er Jahren in England konzipiert.

Page 22: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Programmierte Maschinen

Ada Augusta Lovelace (1815 - 1852)Die Maschine wurde zu Babbages

Lebzeiten nie gebaut. Die genaueste und umfassendste Beschreibung die überliefert ist, stammt von dem italienischen Militäringenieur und späteren Premierminister von Italien, L. F. Menabrea. Seine Veröffentlichung wird später von Ada Augusta Lovelace, der berühmten Freundin von Babbage und Tochter von Lord Byron, ins englische übersetzt und mit zahlreichen Kommentaren und Anmerkungen ergänzt.

Page 23: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Programmierte Maschinen

Charles Babbage „Analytical Engine“

Page 24: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Programmierte Maschinen

The Mill

Analytical Engine Mill by Henry Prevost Babbage, 1910.

Babbage Sohn Henry Prevost wollte einige Teile der Analytischen Maschine verwirklichen. Dieser Teil der „Mill“, die arithmetische Einheit und der Druckmechanischmus waren das Ergebnis.

Page 25: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Programmierte Maschinen

Das Programm der Analytischen Maschine sollte auf einer Reihe von Lochkarten gespeichert werden. Diese Idee hatte Babbage von Jacquards Webstühlen übernommen

Page 26: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Algorithmen

Algorithmen sind nach heutiger Auffassung endliche schrittweise Verfahren zur Berechnung gesuchter aus gegebenen Größen.

Folgende Eigenschaften dienen als erste Charakterisierung des Begriffs:

• Endlichkeit

• Elementarität

• Determiniertheit

• Unbeschränktheit

• Allgemeinheit

• Materialunabhängigkeit

Page 27: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Algorithmen

Was ist ein effektives Verfahren?Im letzten Jahrhundert – besonders intensiv im Zeitraum von ca. 1930 bis 1965 - wurden eine ganze Reihe von

formalen Systemen für die Begriffe „Algorithmus“ bzw. „Effektives Verfahren“ entwickelt. Es konnte nachgewiesen werden, dass verschiedene, unabhängig voneinander entwickelte Formalismen zueinander äquivalent sind, d.h. alle Modelle beschreiben die gleiche Klasse von berechenbaren und entscheidbaren bzw.

partiell-entscheidbaren Funktionen.

• 1934 Gödel/Herbrand (allgemein-)rekursive Funktionen

• 1936 Turing, Automatic Computing Machines• 1936 Church -Kalkül• 1936 Kleene -rekursive Funktionen• 1943 Post Kanonische Systeme• 1954 Markov Normale Algorithmen• 1963 Sheperdson/Sturgis unbeschränkte Registermaschinen• 1964 Elgot/Robinson RASP (random access stored

programms)

Page 28: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Universalmaschinen

Alan Mathison Turing (1912 - 1954)

Im zweiten Weltkrieg war Turing für den britischen Geheimdienst tätig. Mit er Entwicklung de Enigma, die zu Entschlüsselung des deutschen Funkverkehrs führte, trug er entscheidend zum Ausgang des Zweiten Weltkriegs bei.

Mit der zentralen Frage „Kann eine Maschine denken?“ legte er auch die Grundlagen für die heutige „Künstliche Intelligenz“

In Turings berühmten Artikel „On Computable Numbers, with an Application to the Entscheidungsproblem“ von 1936 wird auch erstmals das Konzept einer universellen Rechenmaschine eingeführt.

Page 29: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Universalmaschinen

Die Grundidee der universellen Maschine ist sehr einfach, auch wenn die Einzelheiten ihrer Realisierung relativ kompliziert sind.

Page 30: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Universalmaschinen

Idee:- Man codiert eine Liste von Befehlen für eine

beliebige Turing-Maschine T als Folge von 0- 1-Zeichen.

- Diese Folge wird als erster Teil des Inputs für die Universelle Maschine U verwendet.

- Die universelle Maschine U bearbeitet den restlichen Teil des Inputs wie T.

- U ist ein universeller Imitator. Der erste Teil liefert U die vollständige Information, die benötigt wird um T zu imitieren.

Ähnlich:Spezielles Musikinstrument - Grammophon

Page 31: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Universalmaschinen

Konrad Zuse (1910 - 1995)1936 baut der deutsche Ingenieur Konrad Zuse in der elterlichen Wohnung in

Berlin den Z1, den ersten mechanischen programmgesteuerten Rechner.

Page 32: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Universalmaschinen

Aber auch Zuse ist als Konstrukteur des universellen Rechners umstritten. Seine Maschinen bis hin zur Z4 sind schleifengesteuert und erlauben nicht die Berechung allgemein rekursiver Funktionen. Jedoch gehen die Ideen in seinen Aufzeichnungen und Notizen weiter. Bereits 1938 erwähnt er „lebendige Rechenpläne“, bei denen im Unterschied zu seinen bisherigen „starren Rechenplänen“ nun die errechneten Daten und die Ausgangsdaten auch Einfluss auf den Ablauf der Berechnung haben.

Page 33: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Universalmaschinen

Die Realisierung der ersten Universalmaschine, die zumindest im Prinzip der universellen Turing-Maschine äquivalent ist, bleibt Eckert, Mauchly, Goldstine und von Neumann vorbehalten. Das durch von Neumann im First Draft of a Report on the EDVAC beschriebene Entwurf ist die erste speicherprogrammierte Maschine, die der universellen Turing-Maschine wirklich gleichmächtig ist. Interessant ist der Hinweis von F. L. Bauer, dass die Erfinder des Programmspeicherkonzeptes die Universalität ihres Ansatzes offensichtlich selbst nicht erkannten.

Page 34: Historie der Programmierung Maschinen und Algorithmen –Androiden –Algorithmen der Antike –Die Rechenmeister des Mittelalters –Rechenmaschinen Schickard,

Universalmaschinen

Von-Neumann-Architektur (beschrieben im First Draft of a Report on the EDVAC)

- Der Rechner wird logisch und räumlich in Teile zerlegt. Rechenwerk, Speicherwerk, Leitwerk, E/A-Werk

- Der Rechner ist in seiner Struktur unabhängig vom zu bearbeitenden Problem. Erst das Programm macht den Automaten arbeitsfähig.

- Programm und Daten werden in einem einheitlichen Speicher abgelegt.- Jeder Speicherplatz erhält eine Adresse. Der Inhalt ist über die Adresse

aufrufbar.- Befehle werden aus aufeinander folgenden Speicherplätzen geholt.- Es gibt bedingte und unbedingte Sprungbefehle.- Es wird das duale Zahlensystem verwendet.