Amazing Grace

… oder die Erfindung des Bug

Inhalt überspringen zur Navigation

Grace Murray Hopper, die "Großmutter von Cobol", entwickelte die ersten Compiler, prägte den Begriff bug und gab einer großen Tagung von Frauen im Computer­bereich ihren Namen. Aber wer war diese Frau eigentlich?

Portrait von Grace Hopper in Uniform

Portrait von Grace Hopper in Uniform

Grace' Jugend

Grace Brewster Murray wurde am 9. Dezember 1906 in New York City geboren. Dort wuchs sie als älteste von drei Kindern auf.

Ihre Neugierde, besonders an technischen Geräten, zeigte sie schon sehr früh: mit sieben Jahren zum Beispiel wollte sie herausfinden, wie ein Wecker funktioniert und nahm ihn deshalb auseinander. Leider schaffte sie es nicht, ihn wieder zusammen­zusetzen. Sie "reparierte" insgesamt sieben Wecker, bevor ihr verboten wurde, mit mehr als einem Wecker zu spielen.

Dieses Interesse wurde von ihren Eltern trotzdem gefördert. Auch ihre Mutter war sehr an den Naturwissenschaften interessiert. Aber als sie jung war, gehörte sich das nicht für ein Mädchen. Nur durch eine spezielle Abmachung mit der Schule war es ihr damals erlaubt gewesen, von einem Fenster aus dem Geometrie-Unterricht zuzuschauen. Algebra- und Trigonometrie-Unterricht dagegen bekam sie nicht.

Für ihre Tochter galt das gottseidank nicht mehr. Ihr Vater ermutigte sie, ihren Interessen zu folgen, statt sich in die üblichen Rollen­bilder pressen zu lassen. Im Gegenteil: er bestand sogar darauf, daß seine Töchter einen Beruf erlernten, da er wegen einer schweren Krankheit befürchtete, früh zu sterben – was aber glücklicher Weise nicht eintraf. Er hatte während der Welt­wirtschafts­krise von 1893 erlebt, wie viele junge Mädchen sich nicht selbst über Wasser halten konnten, weil sie keine Ausbildung hatten und deshalb keinen Job fanden.

Grace besuchte deshalb zwei renommierte Mädchen­schulen in New York, wo sie 1923 ihren High-School-Abschluß machte. Da sie aber die Latein-Prüfung nicht bestand, konnte sie nicht sofort auf ein College gehen und besuchte erst ein Jahr lang die Hartridge School in New Jersey.

1924 schrieb sie sich dann in Vassar ein, dem ältesten Women College der USA, wo sie 1928 den Bachelor of Arts in Mathematik und Physik machte.

Von Vassar bekam sie danach ein Stipendium für die Yale-University; dort studierte sie zunächst weiter Mathematik und Physik und machte in diesen Fächern 1930 ihren Master of Arts. In diesem Jahr heiratete sie auch ihren Mann Vincent Hopper, der parallel zu seiner Promotion an der Columbia University in New York als Englisch­lehrer arbeitete.

Ab 1931 nahm sie dann einen Job in Vassar als Mathematik-Lehrerin an und machte parallel dazu ihren Ph.D. in Mathematik in Yale. Auch mit ihrem Ph.D. blieb sie in Vassar, zuletzt als "associate professor".

Die erste Begegnung mit einem Computer

Als die USA 1941 in den zweiten Weltkrieg eintraten, meldete sich Grace zur Navy. Sie hatte einen Urgroßvater, der Konter­admiral in der Navy war und sie war sehr beeindruckt von ihm.

Doch mit 35 Jahren war sie eigentlich zu alt für die Grund­aus­bildung; es bedurfte einer Sonder­genehmigung, bis sie der Navy beitreten durfte. Die Grund­aus­bildung war auch sehr hart für Grace, waren doch einerseits die körperlichen Anforderungen sehr groß. Andererseits waren auch viele ihrer Schülerinnen in ihrer Einheit, vor denen sie sich natürlich nicht blamieren wollte.

Nach ihrer Grundausbildung wurde Grace der U.S. Naval Reserve zugeteilt und arbeitete im "Bureau of Ordinance Computation Project at Harvard" mit.

Dort hatte sie ihre erste Begegnung mit "MARK I", dem ersten Digital­rechner der USA.

MARK I war 1939 in Kooperation mit der Navy in einem IBM-Labor gebaut und getestet worden und stand seit 1943 in Harvard. Dort wurden mit Hilfe dieses Rechners ballistische Berechnungen ebenso wie mathematische Simulationen der Atombombe gemacht. Solche ballistischen Tabellen wurden vorher von sogenannten "computern" berechnet, das waren Frauen in der Navy mit einer mathematischen Ausbildung.

Grace durfte aufgrund ihrer mathematisch-technischen Ausbildung diesen Rechner – als dritter Mensch überhaupt – programmieren. Außerdem schrieb sie das Handbuch zu MARK I. Dieser war das aller­größte "Gadget", mit dem sie je gespielt hatte.

Allerdings wurde MARK I damals natürlich noch in Maschinen­sprache "codiert", so daß sich sehr oft Tippfehler beim Codieren einschlichen. MARK I besaß zwar schon einige eingebaute Programme für bestimmte mathematische Operationen, aber da diese in die Hardware eingebaut waren, waren sie sehr allgemein gefaßt und mußten für jede Rechnung spezifiziert werden. (In Amerika benutzte man zuerst den Begriff "codieren", später setzte sich aber auch hier der englische Begriff "programmieren" durch.)

Da das Codieren trotz dieser allgemeinen Programme sehr mühsam war, begannen Grace und ihr Team solche subroutines von einander abzuschreiben.

Eine weitere Quelle von Frustrationen war die Anfälligkeit der MARK-Computer (es gab davon drei: MARK I–III). Oft war Grace's Team stundenlang damit beschäftigt, ein kaputtes Relais oder eine kaputte Röhre zu finden.

Dabei prägte sie einen weiteren Begriff in der Computer-Technologie:
Eines Tages – am 9.  September 1947 – machte sich ihr Team mal wieder auf die Suche nach solch einer Fehl­funktion von MARK II und entdeckte dabei eine tote Motte, die sich in einem Relais verfangen hatte.

First actual case of bug being found

Erstes Vorkommen eines "bug" [D]

Diese wurde vorsichtig aus dem Relais entfernt und mit Tesa-Film in das Logbuch des MARK II geklebt, mit dem Kommentar: First actual case of bug being found.

Daraufhin wurden die Begriffe "bug" und "debugging" in ihrem Team zu running gags. Mittler­weile hat dieser Begriff einen festen Bestandteil in der Computer­terminologie. Ob der "bug" aber wirklich von Grace erfunden wurde, ist nicht ganz sicher; schon Thomas Edison hat diesen Begriff einmal in ähnlicher Bedeutung benutzt.

Grace und die Computer in der Industrie

Während des zweiten Weltkrieges hatte sich Grace von Vassar beurlauben lassen, um ihren Dienst in der Navy tun zu können.

Nach dem Krieg kündigte sie – mittler­weile geschieden – endgültig und wechselte 1949 zur Eckert-Mauchly Computer Corporation, wo seit 1943 ein neuer Computer entwickelt wurde: der ENIAC (Electronic Numerical Integrator and Calculater), der erste amerikanische Röhrenrechner der USA.

Auch der ENIAC wurde gebaut, um die Atombombe zu simulieren und ballistische Berechnungen anzustellen, und obwohl der Rechner erst nach dem Krieg fertig gestellt wurde, waren dies die ersten Berechnungen, die mit diesem Computer gemacht wurden.

Aber auch zivile Berechnungen wurden mit ENIAC ausgeführt, zum Beispiel die erste computer­berechnete Wetter­vorhersage. Außerdem sollte er beweisen, daß diese Geräte zuverlässig sind.

Das Programmieren von ENIAC war allerdings sehr müsahm, er rechnete noch mit Dezimal­zahlen (BCD). Für jedes Problem mußten die Kabel an ENIAC per Hand umgesteckt werden, dafür waren die "ENIAC-girls" zuständig. Dies waren mathematisch ausgebildete Frauen aus dem Women's Army Corps. Der Input und Output von ENIAC lief über Lochkarten, trotzdem war er schneller als die bisherigen Rechner MARK I–III in den USA, COLOSSUS in England und Z3 in Deutschland.

In dem Team der WissenschaftlerInnen, die mit ENAIC arbeiteten, gab es übrigens drei Frauen: Mary Mauchly, Mildret Kramer und Adele Goldstine.

1946 bekam die Eckert-Mauchly Computer Corporation einen zivilen Auftrag, nämlich von der Morthrop Aircraft Corporation, und baute den ersten Rechner, der mit dem Dualsystem arbeitete, den BINAC.

Als Grace 1949 eine Stelle als Abteilungs­leiterin bei Eckert-Mauchly annahm, war BINAC gerade fertig gestellt worden. Grace durfte ihn programmieren und arbeitete die künftigen AnwenderInnen ein.

1950 wurde Eckert-Mauchly von Jim Rand aufgekauft, seine Firma Remington Rand war IBM's größter Konkurent im Büro­maschinen­sektor. 1951 startete Remington Rand (wie Eckert-Mauchly jetzt hieß) das erste kommerzielle Computer­projekt, den UNIVAC I.

Die ersten Compiler

Zu Beginn des Computer­baus wurden sehr schnell große Fortschritte in den technischen Entwicklungen gemacht (UNIVAC war ca. 1000mal schneller als MARK I), die ProgrammiererInnen dagegen arbeiteten noch lange nach dem selben System, sie programmierten in der Computer­sprache, auch wenn sie sich gegenseitig die subroutines "klauten".

Um 1950 änderte sich aber auch das: John Mauchly entwickelte seinen "short-order code", von dem Grace sehr beeindruckt war. Dieser funktionierte wie folgt: für jedes mathematische Symbol gab es einen zwei­stelligen Code, der das jeweilige Programm aufrief, das die Rechen­operation in die Maschinen­sprache umsetzte. Diese Codes waren als Unter­routinen im Speicher des Computers vorhanden. Damit schrieb Mauchly den ersten Interpreter, den er schon auf ENIAC entwickelte und später für UNIVAC portierte.

Bald schrieben auch andere ProgrammiererInnen solche Codes, und im Herbst 1950 bekam Grace den Auftrag, all diese Codes zu sammeln, so daß alle UNIVAC-ProgrammierInnen diese nutzen könnten. Allerdings waren diese Codes sehr unterschiedlich, je nachdem, ob die ProgrammiererIn gerade mehr Wert auf Genauigkeit, geringen Speicher­verbrauch oder Schnelligkeit legte.

Außerdem waren die Codes sehr abhängig davon, für welches System sie gerade entwickelt wurden.

Auch beim Abschreiben der subroutines unterliefen oft Fehler, deshalb kam Grace auf die Idee, den Computer selbst diese Codes und Unter­routinen kopieren zu lassen.

Sie selbst sagte dazu:

Between October of 1951 and May of 1952 I wrote a compiler. Now, there was a curios thing about it: it wasn't what you'd call a 'language' today. It was a series of specifications. For each subroutine you wrote some specs. The reason it got called a compiler was that each subroutine was given a 'call word', because the subroutines were in a library, and when you pull stuff out of a library you compile things. It's as simple as that. The program was a program which, given a call word, pulled a particular subroutine. Following the call word were the specifications of the arguments and results were to be entered into the subroutine with no language or whatsoever. The program was butted, one bang against another. There was no attempt, really, at optimization.

Der Begriff Compiler stammt dabei aus dem Mittelalter, Kompilation bedeutete damals Hand­schriften zusammen­tragen.

Diesen ersten Compiler nannte Grace A-0, das A stand dabei für algebraic, da dieser Compiler eine sehr mathematische Struktur hatte. Dieser Compiler wurde natürlich von Grace und ihrem Team ständig weiter­entwickelt, 1957 entstand A-2, der unter dem Namen MATH-MATIC verkauft wurde. Übrigens mit dem gleichen Funktions­umfang wie das gleichzeitig von IBM heraus­gebrachte Fortran.

Der Compiler für "Nicht-MathematikerInnen"

Mittlerweile wurden aber die Computer nicht mehr nur von Mathemati­kerInnen, zum Beispiel für militärische Projekte, sondern auch in der Wirtschaft benutzt, um zum Beispiel Lager­bestände zu verwalten und zu optimieren.

Die Programmie­rerInnen in der Wirtschaft hatten aber meistens keine fundierte Mathematik-Ausbildung, so daß Grace auf die Idee kam, einen Compiler zu schreiben, der auf umgangs­sprachlichen Wörtern statt auf mathematischen Symbolen basiert: We went to languages to try and simplify things and the mathematicians objected when we let the poor data processing people say add instead of writing a plus sign. Davon konnte sie aber zunächst nicht einmal ihr eigenes Management überzeugen, englisch sprechende Computer waren undenkbar.

Trotzdem entwickelte sie mit ihrem Team einen solchen Compiler. Sie nahmen etwa 500 Programme und suchten die häufigsten Verben heraus. Dabei entschieden sie sich für etwa 30 umgangs­sprachliche Begriffe, wie zum Beispiel Compare, Transfer, Replace. Diesen Compiler nannte sie dann B-0, dabei steht das B für business.

Um damit doch ihr Management und andere Geldgeber zu überzeugen, ließ sie sich für den Prototyp des B-0 einen besonderen Clou einfallen: sie schrieb ein Programm, das die Befehle nicht nur auf englisch verstand sondern sie auch ins deutsche oder französische übertragen konnte. Was für Grace und ihr Team eigentlich nur eine kleine Spielerei gewesen war, erschien den fassungslosen und dadurch auch mißtrauischen (potentiellen) Geldgebern fast wie ein Werk des Teufels. Grace selbst beschreibt die Reaktionen so:

What to us had been a simple […] substitution of a bit patterns, to management we'd moved into the whole world of foreign languages, which was obviously impossible.

Sie fanden tatsächlich Geldgeber für die Entwicklung des B-Compilers, der später in FLOW-MATIC umbenannt wurde.

Die Entwicklung von COBOL

Grace Hopper wird oft als die "Grandmother of Cobol" bezeichnet, obwohl sie nicht direkt an der Entwicklung beteiligt war. Allerdings war ihr Einfluß darauf immens.

Ende der fünfziger Jahre gab es also einige Programmier­sprachen, die allerdings sehr abhängig von dem jeweiligen Computer­system abhängig waren. Nur Fortran war davon einigermaßen unabhängig; aber es war für bestimmte Dinge, wie Administration, ungeeignet.

Deshalb traf sich im April 1959 eine Gruppe von VertreterInnen aus Wissenschaft und Wirtschaft und formulierte ein Ziel: Die Entwicklung einer maschinen- und hersteller­unabhängigen Wirtschafts­sprache.

Eine Delegation unter Grace wandte sich daraufhin an das Pentagon, mit der Bitte, eine Tagung dazu einzuberufen und als Schiedsrichter und Sponsor zu fungieren.

Wie wichtig dieses Ziel war, sieht man daran, daß das Pentagon diesem Wunsch entsprochen hat und schon einen Monat später zu einer solchen Tagung eingeladen hat. Sie erhielt den Namen CODASYL (Conference on Data Systems Languages) und wurde zu einer regelmäßigen Einrichtung.

Auf der ersten CODASYL wurden die Anforderungen an die Wirtschafts­sprache definiert, Aufgaben verteilt und Ausschüsse gebildet. Schon 1960 wurde die Sprache Cobol fertig­gestellt, an deren Entwicklung ein neunköpfiges Team beteiligt war. Grace war zwar nicht darunter, aber einer ihrer Mitarbeiter und außerdem drei andere Frauen.

Dies war aber nicht der eigentliche Grund dafür, daß sie die Großmutter von Cobol genannt wird, sondern der Einfluß von FLOW-MATIC auf die Entwicklung von Cobol. Graces FLOW-MATIC war nämlich das zentrale Modell für die Entwicklung von Cobol.

Am Ende ihres Lebens

1971 ging Grace in den Ruhestand. Schon 1966 hatte sie den Reserve­dienst bei der Navy aufgegeben, war aber sieben Monate später – zunächst vorübergehend, dann unbefristet – wieder in den aktiven Dienst der Navy zurück berufen worden. Dort arbeitete sie weiter an verschiedenen Projekten und wurde 1983 sogar – wie ihr Urgroßvater – zum Konter­admiral ernannt.

Während ihrer gesamten Lauf­bahn nahm Grace Lehraufträge an, weil sie die Alters­gruppe von 17 bis 20 für am wiss­begierigsten hielt. Sie sagte oft, daß working with the youth is the most important job I've done. It's also the most rewarding.

In ihren Vorträgen benutzte Grace viele Metaphern, besonders beeindruckend war ihr Vergleich zwischen einem Kabel und einer Nanosekunde:
Sie brachte ein Kabel von ca. 30 cm Länge mit in die Vorlesung. Dieses repsäsentierte die Strecke, die elektrischer Strom in einer Nano­sekunde zurück legt. Dieses verglich sie dann mit einer Kabelrolle, auf der 300 m Kabel waren, entsprechend einer Mikro­sekunde.

Die berühmte Mikrosekunde

Die berühmte Darstellung einer Mikrosekunde [D]

Damit wollte sie die Programmie­rerInnen anhalten, nicht eine einzige Mikro­sekunde in ihren Programmen zu verschwenden.

Wie wichtig für sie Bildung und Erziehung waren, sieht man auch daran, daß sie ihren ersten Aufsatz über das Compilerkonzept und den A-0 The Education of a Computer nannte.

Ein weiterer wichtiger Punkt für Grace war die Benutzer­freund­lichkeit ihrer Programme. Schließlich hat sie ihre B-Compiler geschrieben, damit auch 'normale' Menschen Computer bedienen können.

So gerne sie auch mit ihren "gadgets" spielte, die Menschen waren ihr immer wichtiger. Das zeigt auch das folgende Zitat:

You don't manage people. […] You manage things, you lead people. We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington.

Kritisch zu betrachten ist aber Grace's Mitwirkung in der Navy. Ohne diese hätte Grace zwar nicht schon so früh einen Computer gesehen und auch wohl kaum so maßgeblich an der Entwicklung der Computer­systeme mitgewirkt, allerdings war das, was sie – jedenfalls während des Krieges – gemacht hat, ganz klar militärische Forschung, worauf sie auch stolz war.

Auch die Navy selbst war sehr stolz auf Amazing Grace, wie sie dort genannt wurde. Sie benannten sogar ein Schiff nach ihr, den Lenk­waffen­zerstörer Hopper.

Dies war nur eine von vielen Ehrungen. Am Ende ihres Lebens konnte sie auf nicht weniger als 40–Ehren­doktor­würden, 10–militärische Aus­zeichnungen und viele Ehrungen durch Berufs­organisationen zurückschauen.

Darunter ist auch eine Kuriosität: 1969 bekam sie – als Frau!!! – den allerersten "Computer Science Man-of-the-Year Award", den die Data Processing Management Association vergab.

Am 1. Januar 1992 starb Grace im Schlaf.

↑ nach oben
(zur Navigation)

Letzte Änderung: Wednesday, 02-Apr-2008 19:05:13 CEST,
by britta@net.t-labs.tu-berlin.de