In der heutigen digitalen Welt ist es dank Java, JavaScript, Python und anderen Programmiersprachen für fast jeden einfach, eine mobile App zu erstellen oder Software zu schreiben.
Dies war jedoch nicht immer der Fall. Da es sich bei der Computersprache um Binärcode handelt, verwendeten frühe Programmierer Lochkarten, um Computern mitzuteilen, welche Aufgaben sie ausführen sollten. Jedes Loch repräsentierte eine einzelne Binärziffer.
Dies änderte sich 1952 mit dem A-0-Compiler, einer Reihe von Spezifikationen, die Hochsprachen wie Englisch automatisch in maschinenlesbaren Binärcode übersetzten.
Der Compiler, heute ein IEEE-Meilenstein, wurde von Grace Hopper entwickelt, die als leitende Mathematikerin bei Eckert-Mauchly Computer Corp., heute Teil von Unisys, in Philadelphia arbeitete.
Die Innovation des IEEE Fellow ermöglichte es Programmierern, Code mithilfe englischer Befehle schneller und einfacher zu schreiben. Für sie war das wichtigste Ergebnis jedoch der Einfluss, den sie auf die Entwicklung moderner Programmiersprachen hatte und das Schreiben von Code für jedermann zugänglicher machte, heißt es in einem Artikel in Penn Engineering Today.
Am 7. Mai fand an der University of Pennsylvania in Philadelphia die Einweihungszeremonie für den A-0-Compiler statt, ein IEEE-Meilenstein. Hier ist Eckert-Mauchly Computer Corp. erblickte das Licht der Welt.
„Dieser Meilenstein feiert den ersten Schritt beim Einsatz von Computern zur Automatisierung der mühsamen Teile ihrer eigenen Programmierung“, sagte André DeHon, Professor für elektrische Systeme, Ingenieurwesen und Informatik, bei der Einweihung.
Entfernen des Lochkartensystems
Um einen Computer zu programmieren, schrieben frühe Techniker Aufgaben in Assemblersprache, einer für Menschen lesbaren Art, Maschinencode zu schreiben, der aus Binärzahlen besteht. Anschließend übersetzten sie die Assemblersprache manuell in Maschinencode und stanzten Löcher, die die Binärziffern in Karten darstellten, so a DURCHSCHNITTArtikel zur Methode. Die Karten wurden in eine Maschine eingeführt, die die Löcher las und die Daten in den Computer eingab.
Das Lochkartensystem war mühsam: Manchmal dauerte es mehrere Tage, bis eine Aufgabe erledigt war. Karten konnten nicht verwendet werden, selbst wenn sie einen leichten Defekt aufwiesen, beispielsweise eine gebogene Ecke. Diese Methode birgt auch ein hohes Risiko menschlicher Fehler.
Nachdem sie die Entwicklung des Electronic Digital Integrator and Computer (ENIAC) an der Penn geleitet hatten, machten sich die Informatiker J. Presper Eckert und John W. Mauchly daran, einen Ersatz für Lochkarten zu entwickeln. Der ENIAC wurde gebaut, um die Genauigkeit der amerikanischen Artillerie während des Zweiten Weltkriegs zu verbessern, aber die beiden Männer wollten laut einem Artikel im Pennsylvania Center for the Book Computer für kommerzielle Anwendungen entwickeln.
Die von ihnen entworfene Maschine war der erste bekannte elektronische Großrechner, der Universal Automatic oder UNIVAC I. Hopper war Teil seines Entwicklungsteams.
UNIVAC I verwendete 6.103 Vakuumröhren und belegte einen 33 Quadratmeter großen Raum. Die Maschine war mit einer Speichereinheit ausgestattet. Anstelle von Lochkarten nutzte der Computer Magnetbänder zur Dateneingabe. Die Bänder, die Audio-, Video- und geschriebene Daten enthalten konnten, waren bis zu 457 Meter lang. Im Gegensatz zu früheren Computern war der UNIVAC I mit einer Tastatur ausgestattet, damit ein Bediener Befehle eingeben konnte, so der Artikel des Pennsylvania Center for the Book.
„Dieser Meilenstein markiert den ersten Schritt bei der Nutzung von Computern zur Automatisierung mühsamer Teile der eigenen Programmierung. » —Andre DeHon
Allerdings mussten die Techniker immer noch manuell Anweisungen in den Computer eingeben, um neue Programme auszuführen.
Dieser zeitaufwändige Prozess habe zu Fehlern geführt, weil „Programmierer schlechte Kopisten sind“, sagte Hopper in einer Rede vor der Association for Computing Machinery. „Es war erstaunlich, wie oft sich eine 4 in ein Delta, das unser Weltraumsymbol war, oder ein A verwandelte. Sogar Bs verwandelten sich in eine 13.“
Laut einem Artikel von Hidden Heroes hatte Hopper eine Idee, die Programmierung zu vereinfachen: den Computer Englisch in Maschinencode übersetzen zu lassen.
Sie wurde vom Sort/Merge-Generator der Informatikerin Betty Holberton und Mauchlys Short Code inspiriert. Holberton ist eine von sechs Frauen, die ENIAC so programmiert haben, dass sie Artillerieflugbahnen in Sekundenschnelle berechnet, und sie arbeitete zusammen mit Hopper an UNIVAC I. Ihr Sortier-/Zusammenführungsprogramm, das 1951 für UNIVAC I erfunden wurde, verwaltete große Datendateien, die auf Magnetbändern gespeichert waren. Laut einer Stanford-Präsentation über Programmiersprachen definierte Hopper das Sortier-/Zusammenführungsprogramm als die erste Version des virtuellen Speichers, da es automatisch Overlays verwendete, ohne dass der Programmierer dazu aufgefordert wurde. Short Code, der in den 1940er Jahren entwickelt wurde, ermöglichte es Technikern, Programme mit kurzen Sequenzen englischer Wörter zu schreiben, die direkt den Anweisungen des Maschinencodes entsprachen. Es überbrückte die Lücke zwischen menschenlesbarem Code und maschinenausführbaren Anweisungen.
„Ich denke, der erste Schritt, der es uns ermöglichte zu verstehen, dass wir tatsächlich einen Computer zum Schreiben von Programmen verwenden konnten, war der Sortier-/Zusammenführungsgenerator“, sagte Hopper während der Präsentation. „Und Short Code war der erste Schritt zu etwas, das einem Programmierer die wirkliche Macht gab, ein Programm in einer Sprache zu schreiben, die überhaupt nicht wie der ursprüngliche Maschinencode aussah. »
IEEE-Mitglied Grace Hopper gibt die Aufrufnummern in den Universal Automatic Compiler (UNIVAC I) ein, der es dem Computer ermöglicht, die richtigen Anweisungen zur Ausführung zu finden. Der A-0-Compiler übersetzt englische Anweisungen in maschinenlesbaren Binärcode.Museum für Computergeschichte
Einfachere, schnellere und präzisere Programmierung
Hopper, der glaubte, dass Computer menschenähnliche Sprachen sprechen sollten, anstatt von Menschen zu verlangen, Computersprachen zu sprechen, begann darüber nachzudenken, wie man es Programmierern ermöglichen könnte, bestimmte Codes mithilfe der englischen Sprache aufzurufen, so a IT-Profi Profil.
Aber es brauchte eine Bibliothek mit häufig verwendeten Anweisungen, auf die der Computer zugreifen konnte, und ein System zur Übersetzung von Englisch in Maschinencode. Auf diese Weise könnte der Computer verstehen, welche Aufgabe er ausführen muss.
Es gab keine solche Bibliothek, also baute Hopper seine eigene. Es enthielt Streifen mit häufig verwendeten Anweisungen für Aufgaben, die sie Unterprogramme nannte. Jede Band speicherte ein Unterprogramm, dem ein dreistelliges Rufzeichen zugewiesen wurde, damit der UNIVAC I die richtige Band finden konnte. Die Zahlen stellten Gruppen von drei Speicheradressen dar: eine für den Unterprogrammspeicherort, eine andere für den Datenspeicherort und die dritte für den Ausgabeort, so die Stanford-Präsentation.
„Alles, was ich tun musste, war, eine Reihe von Telefonnummern aufzuschreiben, sie vom Computer auf dem Band finden zu lassen und sie zu addieren“, sagte sie in einem Artikel des Center for Computing History. „Er war der erste Compiler. »
Das System wurde A-0-Compiler genannt, weil der Code in einer Sprache geschrieben wurde, die dann in eine Maschinensprache „kompiliert“ wurde.
Laut einem Artikel von Cockroach Labs konnte die manuelle Codierung, die früher einen Monat in Anspruch nahm, nun in fünf Minuten erledigt werden.
Hopper überreichte den A-0 den Führungskräften von Eckert-Mauchly Computer. Doch anstatt sich zu freuen, sagten sie, sie glaubten nicht, dass ein Computer seine eigenen Programme schreiben könne, heißt es in dem Artikel.
„Ich hatte einen Compiler am Laufen, und niemand wollte ihn anfassen, weil mir gesagt wurde, dass Computer nur rechnen könnten, keine Programme“, sagte Hopper. „Es war eine Verkaufsaufgabe, die Leute davon zu überzeugen, es auszuprobieren. Ich denke, dass man bei jeder neuen Idee rausgehen und die Idee verkaufen muss, weil die Leute allergisch auf Veränderungen reagieren. »
Es dauerte zwei Jahre, bis die Unternehmensleitung die A-0 akzeptierte.
1954 wurde Hopper zum Direktor für automatische Programmierung der UNIVAC-Abteilung befördert. Anschließend entwickelte sie die ersten Compiler-basierten Programmiersprachen, darunter Flow-Matic, den ersten englischsprachigen Datenverarbeitungs-Compiler. Es dient zur Programmierung von UNIVAC I- und II-Maschinen.
Hopper war auch an der Entwicklung von COBOL beteiligt, einer der ersten standardisierten Computersprachen. Es ermöglichte Computern, neben Zahlen auch auf Wörter zu reagieren, und wird immer noch in Geschäfts-, Finanz- und Verwaltungssystemen verwendet. Hoppers Flow-Matic bildete die Grundlage von COBOL, dessen erste Spezifikationen 1959 verfügbar gemacht wurden.
An der University of Pennsylvania ist jetzt eine Gedenktafel zum Gedenken an die A-0 ausgestellt. Dort können wir lesen:
Zwischen 1951 und 1952 erfand Grace Hopper den A-0-Compiler, eine Reihe von Spezifikationen, die als Linker/Loader fungierten. Es ist eine Pionierleistung in der automatischen Programmierung sowie ein bahnbrechendes Hilfsprogramm zur Verwaltung von Unterprogrammen. Der A-0-Compiler beeinflusste die Entwicklung arithmetischer und kommerzieller Programmiersprachen. Dies führte zu COBOL (Common Business-Oriented Language), das zur dominierenden Hochsprache für Geschäftsanwendungen wurde.
Die IEEE Philadelphia Section hat die Nominierung gesponsert.
Das vom IEEE History Center verwaltete und von Spendern unterstützte Milestone-Programm würdigt herausragende technische Entwicklungen auf der ganzen Welt.