Lochkartenmaschinen Florian Fey Julian Andres Klode 26. Januar 2015 Florian Fey, Julian Andres Klode Lochkartenmaschinen Florian Fey, Julian Andres Klode Lochkartenmaschinen Anfänge der Automatisierungstechnik Bereits lange vor Erfindung der Rechenmaschinen / Informatik Verwendung von Werkzeugen → Maschinen Ursprüngliche Bestrebungen: Automatisierung von Abläufen Fertigung von Maschinen zur Verrichtung von Arbeit Parametrisierung des Arbeitsprozesses Wiederverwenden von spezifischem Wissen ⇒ Stichwort: Algorithmen Florian Fey, Julian Andres Klode Lochkartenmaschinen Konkrete Umsetzung Zunächst: Entwicklung von Automaten auf Basis von Uhrwerken Spieluhren mit austauschbaren Walzen Webstühle mit einstellbarem Webmuster (a) Spieldose Florian Fey, Julian Andres Klode (b) Jacquard-Webstuhl Lochkartenmaschinen Entwicklung der Lochkarten Verwendung in Webstühlen bereits im 18. Jahrhundert Ursprünglich Metallwalzen Pappkarten erheblich flexibler Erhöhte Austauschbarkeit / Wiederverwendbarkeit Fassen mehr Informationen (c) Skizze Webstuhl Florian Fey, Julian Andres Klode (d) Webstuhlkarten Lochkartenmaschinen Lochkarten als Speichermedium Speichern eines Webmusters mit Lochkarten: Pappkarten kostengünstig herstellbar Einfaches Auslesen möglich Abtasten mit Metallstiften und Anheben der Kettfäden Nur mechanische Operationen benötigt Florian Fey, Julian Andres Klode Lochkartenmaschinen Lochkarten zur Steuerung von Rechenmaschinen Analytical Engine (1837) von Charles Babbage Dampfbetriebene Rechenmaschine (Turing-vollständig) Programmierung durch Lochkarten Entwurfsstadium, nie praktisch umgesetzt ⇒ Lochkarten zur Steuerung bzw. Ein-/Ausgabe ⇒ Keine direkte Verarbeitung von Lochkarten ⇒ Schwerpunkt: Mechanik Interessantes Konzept, aber nicht Gegenstand des Vortrags Florian Fey, Julian Andres Klode Lochkartenmaschinen Lochkarten zur Datenrepräsentation Alternatives Konzept: Hollerith-Maschinen Zu verarbeitende Daten auf Lochkarten speichern Verarbeitung der Daten durch Operationen auf Lochkarten Mechanisches Suchen, Sortieren, Summieren, etc. Florian Fey, Julian Andres Klode Lochkartenmaschinen Hollerith-Maschinen Herman Hollerith (1860–1929) Sohn deutscher Einwanderer Bergwerksingenieur und Sachbearbeiter Regierungsauftrag: US-Volkszählung Soll Gutachten erstellen Auszählung äußerst unbefriedigend Wunsch: Automatisierung Abbildung: Herman Hollerith Florian Fey, Julian Andres Klode Lochkartenmaschinen Hollerith-Maschinen US-Volkszählungen 1880: Erfassen von Ja/Nein Tatbeständen durch Ankreuzen Auswertung von Hand mühsam und fehlerbehaftet Mehrfaches Auszählen notwendig (mögliche Teilmengen!) Geringe maschinelle Unterstützung Auswertung dauert ca. 7 Jahre ⇒ Idee: Maschinelles Auslesen von ’Zählplättchen’ Lochkarten-Technik bekannt von Webstühlen und Fahrkarten Florian Fey, Julian Andres Klode Lochkartenmaschinen Hollerith-Maschinen US-Volkszählungen 1880: Erfassen von Ja/Nein Tatbeständen durch Ankreuzen Auswertung von Hand mühsam und fehlerbehaftet Mehrfaches Auszählen notwendig (mögliche Teilmengen!) Geringe maschinelle Unterstützung Auswertung dauert ca. 7 Jahre ⇒ Idee: Maschinelles Auslesen von ’Zählplättchen’ Lochkarten-Technik bekannt von Webstühlen und Fahrkarten 1890: Erfassen von Ja/Nein Tatbeständen durch Kartenlochen Auswertung durch Tabelliermaschinen Auswertung dauert ca. 4 Wochen ⇒ Holleriths Idee erfolgreich Florian Fey, Julian Andres Klode Lochkartenmaschinen Hollerith-Maschinen Eingesetzte Lochkartenmaschinen Locher Sortiermaschinen Tabelliermaschinen Mischer Florian Fey, Julian Andres Klode Lochkartenmaschinen Locher Locher Dienten dem Lochen der Karten Lochen vorgefertigter Bereiche mit Ja/Nein Antworten Später: Nutzung spezieller Codierungen (a) Pantograph-Locher Florian Fey, Julian Andres Klode (b) IBM-Kartenlocher Lochkartenmaschinen Locher Locher Abbildung: Lochkartenlocher an der Uni 1965 Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Sortiermaschinen für Lochkarten Sortieren von Lochkarten genau genommen kein echtes Sortieren Genauer: Kategorisieren von Lochkarten Im Gegensatz zum vergleichsbasierten Sortieren lineare Laufzeit Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Vergleichsbasiertes Sortieren Wie viele Vergleichsschritte werden hierzu benötigt? Vorstellung: Sortieren = Bestimmen einer Permutation Für n Elemente gibt es n! mögliche Permutationen Entscheidungen auf Basis von Vergleichen, Beispiel: 1|2 2|3 (1,2,3) 1|3 1|3 (1,3,2) (2,1,3) (3,1,2) Florian Fey, Julian Andres Klode 2|3 (2,3,1) Lochkartenmaschinen (3,2,1) Sortierer Vergleichsbasiertes Sortieren Es entsteht ein binärer Entscheidungsbaum mit n! Blättern Fragestellung: Welche Tiefe hat der Baum? ⇒ Abschätzung für log(n!) Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Vergleichsbasiertes Sortieren Es entsteht ein binärer Entscheidungsbaum mit n! Blättern Fragestellung: Welche Tiefe hat der Baum? ⇒ Abschätzung für log(n!) Nach Stirling-Formel: √ n! ≥ 2πn · ( ne )n > ( ne )n = nn en Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Vergleichsbasiertes Sortieren Es entsteht ein binärer Entscheidungsbaum mit n! Blättern Fragestellung: Welche Tiefe hat der Baum? ⇒ Abschätzung für log(n!) Nach Stirling-Formel: √ n! ≥ 2πn · ( ne )n > ( ne )n = nn en Da log() streng monoton wachsend: n log(n!) > log( ne n ) = log(nn ) − log (e n ) = n · log(n) − n Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Vergleichsbasiertes Sortieren Es entsteht ein binärer Entscheidungsbaum mit n! Blättern Fragestellung: Welche Tiefe hat der Baum? ⇒ Abschätzung für log(n!) Nach Stirling-Formel: √ n! ≥ 2πn · ( ne )n > ( ne )n = nn en Da log() streng monoton wachsend: n log(n!) > log( ne n ) = log(nn ) − log (e n ) = n · log(n) − n Interessant: O(log(n!)) = n · log(n) ⇒ Kein Algorithmus kann schneller sortieren Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Sortieren in linearer Zeit Offensichtlich: Mechanik arbeitet zu langsam Viele Verfahren zu kompliziert für mechanisches Sortieren Einige Verfahren erheblich langsamer als n · log(n) ⇒ Einschränkungen zugunsten linearer Laufzeit Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Radix-Sort Kein wirkliches Sortieren / Vergleichen Kategorisierung von Karten in Fächern Funktioniert nur mit endlichem Wertebereich (Werte auf Lochkarten ohnehin endlich) Häufige Verwendung: Sortieren von Briefen Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Das Verfahren Gegeben: Zahlen fester Länge XYZ mit X , Y , Z ∈ {0..9} ⇒ 103 Werte Naives Verfahren: 103 Fächer → Einordnen Beobachtung: Nicht praktikabel, aber Sortieren nach einer Stelle sehr einfach ⇒ Fallunterscheidung: Nur ein Fach pro Ziffer ⇒ Karten in Reihenfolge aus den Fächern holen Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Beispiel 1. Eingabe: Zahlen zu Sortieren 123, 412, 241, 132, 431, 231 Sortieren nach letzter Stelle Fach 1 241 431 231 Fach 2 412 132 Fach 3 123 Letzte Ziffer offensichtlich sortiert Vermutung: Das Verfahren ist stabil ⇔ Zahlen mit gleichen Ziffern ändern relative Position nicht Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Stabiles Sortieren mit Radix-Sort Elemente im gleichen Fach bleiben in Reihenfolge ⇒ Verfahren lässt sich fortsetzen ⇒ Sortieren nach vorletzter Stelle, usw. Welche Reihenfolge muss berücksichtigt werden? Welche Vor-/Nachteile und Einschränkungen gibt es? ⇒ Arbeitsphase Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Sortiermaschinen Radix-Sort effizient mechanisch umsetzbar Grundlegendes Konstruktionsprinzip der Lochkartensortierer Florian Fey, Julian Andres Klode Lochkartenmaschinen Sortierer Sortiermaschinen Sortieren bis zu 1000 Karten pro Minute Eignen sich auch zum Aussortieren und Trennen von Karten Abtasten der Karten elektromechanisch, später optisch Abbildung: Lochkartensortierer IBM 083 Florian Fey, Julian Andres Klode Lochkartenmaschinen Tabelliermaschinen Holleriths Tabelliermaschinen Dienten der Auswertung von Lochkarten Auszählen und Summieren Ursprünglich manuelles Einlegen der Karten Ansteuerung verschiedener Zähler über elektrische Kontakte Primitive Sortierfunktion durch Schubfächer Florian Fey, Julian Andres Klode Lochkartenmaschinen Tabelliermaschinen Fortschritt der Tabelliermaschinen Anfangs: Nur Zählen/Summieren möglich Später: Kompliziertere Rechenoperationen (Multiplikation, etc.) Rechen- und Zählwerke basierten auf Sprossenradmaschine Drucker oder Kartenstanzer zur Ausgabe der Ergebnisse Programmierung erfolgte mit Steckbrettern Control-Switch zum Ausführen mehrere Befehle pro Karte Florian Fey, Julian Andres Klode Lochkartenmaschinen Tabelliermaschinen Bilder Abbildung: Tabelliermaschine BULL BS-PR Florian Fey, Julian Andres Klode Lochkartenmaschinen Tabelliermaschinen Bilder Abbildung: Rechenwerk auf Sprossenradbasis Florian Fey, Julian Andres Klode Lochkartenmaschinen Tabelliermaschinen Bilder Abbildung: Steckbretter und Relais zur Programmierung Florian Fey, Julian Andres Klode Lochkartenmaschinen Tabelliermaschinen Steckbrett zur Multiplikation Abbildung: Multiplikation 4 stelliger Zahlen auf einer IBM 407 Florian Fey, Julian Andres Klode Lochkartenmaschinen Tabelliermaschinen Multiplikation mit dem Tabellierer (progressive digiting) Berechnen von Produkten durch fortlaufende Summen: Es soll die Summe folgender Produkte berechnet werden: 1x2= 2 1x8= 8 2x3= 6 2x1= 2 2x5= 10 3x9= 27 5x6= 30 5x2= 10 6x7= 42 Summe: 137 (9 Multiplikationen, 8 Additionen) Florian Fey, Julian Andres Klode 7=7 2+6=8 0=0 9=9 5+1+3=9 8 + 2 = 10 Summe: (14 Additionen) Lochkartenmaschinen 7 15 15 24 33 43 137 Tabelliermaschinen Progressive Digiting Sortieren nach ersten Faktoren (nur ganzzahlig) Summiere Summen zweiter Faktoren in umgekehrter Reihenfolge Es gibt Kategorien 1,2,...,n erster Faktoren K (i) := {k|(i · k) ∈ Kartenstapel } Faktoren aus Kategorie i P S(i) := k∈K (i) k Summe aller Zahlen aus Kategorie i P(i) := i P S(n − z + 1) z=1 Die Summe der Produkte errechnet sich wie folgt: n P P(i) = S(n)+(S(n)+S(n−1))+(S(n)+S(n−1)+S(n−2))+... i=1 Kumulative Summe ⇒ Dynamische Programmierung Florian Fey, Julian Andres Klode Lochkartenmaschinen Tabelliermaschinen Tabellieren Tabelliermaschinen ermöglichen trickreiche Berechnungen Ursprünglich: Kaufmännische Anwendungen Auch nutzbar für mathematische Berechnungen ⇒ Scientific Computing mit Lochkarten Florian Fey, Julian Andres Klode Lochkartenmaschinen Lochkartenmischer Lochkartenmischer Dienten dem Zusammenmischen von Kartenstapeln Auch Aussortieren von Karten möglich Vergleichbar mit heutigen Datenbanken: Einfügen neuer Daten in alten Datenbestand Aktualisieren von Karten durch Austauschen, etc. Hohe Flexibilität ’Verallgemeinerter Sortierer’ Florian Fey, Julian Andres Klode Lochkartenmaschinen Lochkartenmischer Lochkartenmischer Florian Fey, Julian Andres Klode Lochkartenmaschinen Anwendungen Mathematische & Statistische Anwendungen Statistik Volkszählung Florian Fey, Julian Andres Klode Lochkartenmaschinen Anwendungen Mathematische & Statistische Anwendungen Statistik Volkszählung Scientific Computing mit Lochkarten Leslie John Comrie: Berechnung der Umlaufbahn des Mondes Präzise Berechnung von Gezeiten Ballistische Kurven (militärische Nutzung) Wallace John Eckert: Pionier des Scientific Computing mit Lochkarten ’Punched Card Methods in Scientific Computation’ Fouriersynthese mit Lochkarten ⇒ Beeindruckende Techniken, sehr anspruchsvoll Florian Fey, Julian Andres Klode Lochkartenmaschinen Anwendungen Randlochkarten Abbildung: Beispiel für eine Randlochkarte Florian Fey, Julian Andres Klode Lochkartenmaschinen Programm- und Dateneingabe Lochkarten zur Programmierung Allgemein Jede Karte repräsentiert eine Programmzeile Programmiersprachen u.a. Fortran ALGOL COBOL Beispiel: Fortran auf einer 80-spalten Karte Spalten 1-5: Numerisches Label Spalte 6: beliebiges Zeichen Spalte 7-72: Programmanweisung Spalte 73-80: Kommentar Florian Fey, Julian Andres Klode Lochkartenmaschinen Programm- und Dateneingabe Lochkarten zur Programmierung Abbildung: Beispiel-Lochkarte mit Fortran Code Florian Fey, Julian Andres Klode Lochkartenmaschinen Programm- und Dateneingabe Lochkarten zur Programmierung Abbildung: IBM Lochkartenformat Florian Fey, Julian Andres Klode Lochkartenmaschinen Rechnerarten Mainframe und Satellitenrechner Satellitenrechner Lesen Lochkarten ein Leitet eingelesene Daten und Programme an den Mainframe weiter Geben Ausgabe vom Mainframe wieder (i.A. drucken) Später durch Terminals mit Bildschirmen ersetzt Mainframe Erhält Befehle und Daten von den Satellitenrechner Verarbeitet die Eingaben Leitet die Ausgabe an den Satellitenrechner weiter Florian Fey, Julian Andres Klode Lochkartenmaschinen Rechnerarten Bilder Abbildung: Telefunken TR-4 1966 Florian Fey, Julian Andres Klode Lochkartenmaschinen Literatur Ceruzzi, Paul E. - A History of Modern Computing (MIT Press, 2003) Priestley M. A science of operations.. Machines, logic and the invention of programming (Springer, 2011) Eckert, W. J., Punched Card Methods in Scientific Computing (Columbia University, 1940) de Beauclair, W. Rechnen mit Maschinen (Vieweg, 1968) Fröschl, Karl A. Geschichte der Informatik (Vorlesung, TU Wien, 2008) Florian Fey, Julian Andres Klode Lochkartenmaschinen Bilder Bilderquellen Alle Bilder: Wikicommons, mit Ausnahme von: Steckbrett www.glennsmuseum.com Tabelliermaschinen planet-wissen.de, technikum29.de Florian Fey, Julian Andres Klode Lochkartenmaschinen