Homepage

Frauen

Informatik

Geschichte

Kommentar

Gewebe

Bestellung

Impressum
Inhalt  return next
Informatik
Compiler-Konzept

Im Herbst 1951 erhielt UNIVAC-Teamleiterin Grace Murray Hopper den Auftrag, eine Sammlung mathematischer Unterroutinen zusammenzustellen, die so standardisiert waren, dass alle UNIVAC-ProgrammiererInnen sie benutzen könnten. Im Zuge ihrer Standardisierungsüberlegungen machte sie zwei Beobachtungen in ihrem Programmierteam: Es war schon lange üblich, Unterroutinen zu kopieren, aber beim Kopieren musste zu allen vorhandenen Adressen etwas hinzuaddiert werden - eine äußerst fehleranfällige Angelegenheit! Außerdem entstanden beim Kopieren, d.h. Abschreiben der Unterprogrammzeilen ebenfalls zahlreiche Fehler. Die Lösung war, den Computer selbst kopieren zu lassen.

Ihr Konzept sah vor, viele Unterprogramme in einer Programmbibliothek auf dem Computer zusammenzustellen, die jeweils mit einem "call word" gekennzeichnet wurden. Beispielsweise "sin" für die Sinus-Berechnung. Die ProgrammiererInnen sollten zukünftig die call words in ihren Anwendungsprogrammen benutzen; danach würde ein spezielles Übersetzungsprogramm im fertigen Anwendungsprogramm alle call words durch die in Maschinensprache geschriebenen Unterprogrammcodes ersetzen. Erst nach diesem Schritt sollte das veränderte Anwendungsprogramm selbst ausgeführt werden. Ihr neues Übersetzungsprogramm nannte Hopper "Compiler" - bis heute ein Fachbegriff der Informatik (kompilieren bedeutet, Ausschnitte aus verschiedenen Texten zu einem neuen Text zusammenschreiben; die Idee der call words stammt von den call numbers in der Library of Congress in Washington, mit denen die Bücher aus dem Magazin bestellt werden).

Ihren ersten Compiler nannte Hopper schlicht A-0. A steht für algebraic und betont die mathematische Natur der Programmiersprache. Der Artikel über das Compilerkonzept mit dem Titel 'The Education of a Computer' brachte ihr bei Remington Rand die Beförderung zur 'Systems Engineer, Director of Automatic Programming Development' ein. Zusammen mit ihrem Programmierteam entwickelte sie verbesserte Versionen des A-0 Compilers namens A-1, A-2... Dabei war der 1955 vollendete A-2 der erste extensiv genutzte Compiler und 1957 versah die Verkaufsabteilung der Sperry Rand Corporation (wie Remington Rand seit 1955 hieß) eine weitere Folgeversion mit dem sprechen-deren Namen MATH-MATIC, die übrigens den gleichen Funktionsumfang hatte, wie die im selben Jahr bei IBM fertiggestellte Programmiersprache FORTRAN. Im UNIVAC-Programmierteam waren übrigens noch weitere Frauen; einige von ihnen wie Adele Mildred Koss, Frances Morello und Lillian Jay blieben jahrzehntelang in der Computerentwicklung tätig.

Indem ein Compiler entwickelt wird, wird somit zugleich festgelegt, welche Wörter im Anwendungsprogramm nutzbar sind. Zugleich kann in gewissem Maße das Anwendungsprogramm schon vor der Programmausführung auf Fehler kontrolliert werden, etwa ob die Klammern einer mathematischen Formel korrekt gesetzt sind oder die passende Anzahl an Operatoren zu einer Funktion angegeben wurden. Ebenso wird die Wirkung des Worts bei der Ausführung auf dem Computer detailliert (hier noch in Maschinensprache) ausformuliert. Dabei kann die Speicherzuteilung oder die Steuerung von Ein/Ausgabe durch einen Compiler automatisch optimiert werden. Ein Vorteil ist, dass sich so die direkten Vorgänge beispielsweise in den Rechen- und Speicherregistern des Computers verbergen lassen. Es wird mit einem Compiler also auf der einen Seite eine neue Programmiersprache definiert, die den Aufgabenstellungen eines Anwendungsbereichs angepasst werden kann. Andererseits können bei genauer Kenntnis der Hardware des Computers durch das Compiler-Programm möglichst effiziente Wege der Umsetzung (also der Speicherzuteilung, der Reihenfolge einzelner Rechen- oder Sortierschritte usw.) produziert werden.

Das UNIVAC-Programmierteam erkannte viele dieser Möglichkeiten erst im Laufe der praktischen Nutzung seiner Compiler oder durch Austausch mit anderen Gruppen. Hinzu kam, dass in den ersten Jahren der Ablauf eines Compilerprogramms oftmals länger dauerte, als wenn eine ProgrammiererIn den Maschinencode direkt nutzte, und Compiler deswegen nicht überall beliebt waren. Seit Anfang der fünfziger Jahre waren ganz allgemein vielfältige Bemühungen zur Erleichterung und Effizienzsteigerung des Programmierens im Gange. Wie im Hardware-Bereich sind auch eine Reihe von Software-Konzepten unabhängig voneinander in Europa und den USA entstanden. So wird in Europa ebenfalls 1951/52 die Entwicklung des ersten "Übersetzungsprogramms" dem Schweizer Mathematiker Heinz Rutishauser zugeschrieben.