Lochkartenmaschinen - Fachbereich Mathematik und Informatik

Werbung
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
Herunterladen