add assembler and fortran slides to 223015c chapter 1

- assembler (1947): kathleen booth, mnemonics, rollercoaster tycoon
- fortran (1957): john backus, lois haibt, formula translator
- detailed speaker notes with biographical and technical context
This commit is contained in:
2026-04-09 22:11:11 +02:00
parent 5b94593d94
commit edc9225ccf

View File

@@ -614,6 +614,77 @@ COBOL läuft heute noch auf Bankensystemen
---
# Assembler (1947)
**Die erste Stufe über Maschinencode**
- Erfunden von **Kathleen Booth** (Birkbeck College, London)
- Mnemonische Befehle statt Binärzahlen (`MOV`, `ADD`, `JMP`)
- Jeder Befehl entspricht direkt einer CPU-Instruktion
- Hardwarenah, aber für Menschen lesbar
**Fun Fact:** Chris Sawyer schrieb **RollerCoaster Tycoon** (1999) fast komplett in x86-Assembly
<!--
KATHLEEN BOOTH (19222022):
Kathleen Hylda Valerie Booth (geb. Britten), BSc Mathematik (Royal Holloway, London), PhD Applied Mathematics (King's College London). Arbeitete ab 1946 mit Andrew Booth (später ihr Ehemann) am Birkbeck College eines der kleinsten Computing-Teams Großbritanniens: nur Andrew, Kathleen und Xenia Sweeting.
WAS SIE TAT:
Kathleen baute die Hardware des ARC (Automatic Relay Calculator) mit auf und entwickelte dann die Programmierarchitektur. 1947 reiste sie mit Andrew nach Princeton, wo sie John von Neumann trafen und die Stored-Program-Architektur kennenlernten. Sie schrieb "Coding for A.R.C." die erste veröffentlichte Beschreibung einer Assembly-Sprache. Statt roher Binärzahlen (z.B. 10011) konnten Programmierer nun mnemonische Kürzel verwenden (z.B. M -> cR). Ein konzeptioneller Sprung die erste Abstraktionsschicht zwischen Mensch und Maschine.
VOR ASSEMBLER:
ENIAC (194346) wurde durch physisches Umstecken von Kabeln programmiert Programmwechsel dauerten Tage. Danach kamen Stored-Program-Computer, aber Programme mussten als rohe Binärzahlen eingegeben werden. Jeder Tippfehler in einer 0/1-Folge konnte den Befehl komplett verfälschen.
WEITERE LEISTUNGEN:
- Mitentwicklung von Booth's Multiplication Algorithm (heute in Milliarden CPUs)
- Pionierin der neuronalen Netze (1958/59 nur ~4 Jahre nach den allerersten)
- Erste öffentliche Demonstration maschineller Übersetzung (Französisch→Englisch, 1955)
- Wurde 100 Jahre alt
ROLLERCOASTER TYCOON:
Chris Sawyer, schottischer Entwickler, schrieb RCT zu 99% in x86-Assembly (MASM), nur 1% C für Windows-Schnittstellen. Warum? Assembler war seine "Muttersprache" seit Kindheit, und Performance war kritisch: Tausende Besucher mit eigenem Verhalten, Fahrgeschäfte, Pathfinding alles in Echtzeit. Das Spiel lief auf einem Pentium 90 MHz mit 16 MB RAM. Sawyer verdiente ca. 30 Mio. Dollar an Royalties und hat über 700 Achterbahnen weltweit selbst gefahren.
-->
---
# Fortran (1957)
**Die erste höhere Programmiersprache**
- Entwickelt bei IBM unter **John Backus**
- Im Team: **Lois Haibt** verantwortlich für die Control-Flow-Analyse
- Name: **For**mula **Tran**slator
- Ziel: Mathematische Formeln direkt als Code schreiben
- Revolutionär: ~**20 Assembler-Befehle → 1 Fortran-Zeile**
- Noch heute genutzt in Wissenschaft und Hochleistungsrechnen
<!--
JOHN BACKUS (19242007):
Unruhiger Werdegang Chemiestudium abgebrochen, aus der Uni geflogen, Armee, Medizinstudium abgebrochen (Hirntumor, erfolgreich behandelt), dann Mathematik an der Columbia University. Bei IBM ab 1950. Seine Motivation war schlicht Faulheit: "Much of my work has come from being lazy. I didn't like writing programs." Er entwickelte erst Speedcoding (1953), dann leitete er das Fortran-Projekt. Später: Backus-Naur-Form (BNF), Turing Award 1977.
LOIS HAIBT (*1934):
Studierte Mathematik am Vassar College (Stipendium), jobbte in den Semesterferien bei Bell Labs. IBM bot ihr nach dem Abschluss 1955 $5.100/Jahr fast doppelt so viel wie Bell Labs. Sie kam ohne jegliche Programmiererfahrung ins Team und war mit 21 Jahren die einzige Frau unter den 10 Kernentwicklern. Ihre Aufgabe (Section 4 des Compilers): Sie teilte Programme in "Basic Blocks" auf, erstellte einen Control-Flow-Graphen und simulierte per Monte-Carlo-Methode, welche Programmteile häufig durchlaufen werden ("Hot Paths"). Diese Info nutzte der Compiler für die Register-Optimierung. Ein für 1956 extrem fortschrittlicher Ansatz. Außerdem entwickelte sie den ersten syntaktischen Analysator für arithmetische Ausdrücke ein Grundbaustein aller modernen Compiler. Ihre Tochter Carolyn studierte später in Princeton und promovierte am MIT in Mathematik.
Haibt über die Teamkultur: "No one was worried about seeming stupid or possessive of his or her code. We were all just learning together."
DAS TEAM:
~10 Kernmitglieder, alle in ihren 20ern und 30ern, mit "varying academic degrees and unrelated areas of expertise". Harlan Herrick schrieb das erste jemals ausgeführte Fortran-Programm. Roy Nutt war von United Aircraft ausgeliehen. David Sayre war Kristallograph.
ENTWICKLUNG:
Sollte 6 Monate dauern, brauchte 3 Jahre (19541957). Das Team arbeitete nachts, weil sie nur dann Zugang zum IBM 704 hatten, und schlief tagsüber im Langdon Hotel an der 56th Street. Schneballschlachten lockerten die langen Winternächte auf.
WARUM ES FUNKTIONIERTE:
Das Killerkriterium war Performance: Frühere Compiler erzeugten Code, der 510× langsamer war als handgeschriebener Assembler. Fortran I war der erste Compiler, der annähernd gleich schnellen Code erzeugte. Dieser Rekord hielt 20 Jahre. Ken Thompson (Erfinder von Unix): "95% of the people who programmed in the early years would never have done it without Fortran."
HEUTE:
Fortran ist die "Muttersprache des Scientific Computing". Wettervorhersage (GFS, WRF), Klimamodelle (CESM für IPCC-Berichte), Kernphysik-Simulationen, LAPACK/BLAS (die linearen Algebra-Bibliotheken unter NumPy/SciPy) alles Fortran. In numerischen Benchmarks 3060× schneller als Python.
PARALLELE ZU HEUTE:
Assembly-Programmierer sahen Fortran als existenzielle Bedrohung ihrer Kunst genau wie heute manche Programmierer KI fürchten. Das Ergebnis war dasselbe: Das Werkzeug erweiterte das Feld, statt es zu ersetzen.
-->
---
<!-- _header: '' -->
<!-- _footer: '' -->