Ja, ja, wissen wir doch alle: Der Computer versteht nur Nullen und Einsen. Der Mensch aber verständigt sich lieber mit der gesprochenen oder geschriebenen Sprache. Sogenannte „höhere“ Programmiersprachen stellen den Versuch dar, dem Menschen ein Sprachwerkzeug an die Hand zu geben, das seine Wünsche dem Computer mit Hilfe eines ihm halbwegs verständlichen Vokabulars und einer für ihn nachvollziehbaren Grammatik mitteilt. Im selben Maße wie sich die Computertechnik als solche fortentwickelt hat, sind auch Programmiersprachen immer mächtiger und – im Prinzip – leichter beherrschbar geworden. Wie sich diese Entwicklung vollzogen hat, wollen wir uns einmal am Wesen der berühmtesten Programmiersprachen anschauen.
1952: Grace Hopper erfindet das Prinzip „Programmiersprache“
Und wieder: Die Frühgeschichte der Computerei ist weiblich. So wie Ada Lovelace die erste Programmiererin überhaupt war, so war Grace Hopper die Erfinderin der höheren Programmiersprachen – getrieben genau durch den Wunsch zwischen Mensch und Computer zu vermitteln – dies in der Zeit der röhrenbetriebenen Elektronenhirnen. Beteiligt an der Entwicklung der UNIVAC-Maschinen erfand sie die Programmiersprache A-0; die Abkürzung steht für „Arithmetic Language Version 0“. Tatsächlich war A-0 wie auch der Nachfolger Flow-Matic das erste Stück Software, dem man das Etikett „Compiler“ aufkleben könnte, denn es übersetzte eine nach festen Regeln beschriebene Folge von Unterprogrammen und Argumenten in den Maschinencode des Rechners. Amazing Grace, wie Kollegen sie nannten, war ihrer Zeit so weit voraus, dass sie von der US Navy im Jahr 1967 – da war sie 61 – als Reserveoffizierin reaktiviert wurde, weil man bei der Marine mit Computerproblemen kämpfte. Erst mit 81 im Range einer Flotillenadmiralin konnte sie sich zur Ruhe setzen. Heute gelten ihre Sprachen als bahnbrechend und bildeten die Grundlagen für Cobol und Fortran.
Übrigens: Dass man einen Computerfehler „Bug“ nennt, hat auch mit Grace Hopper zu tun. Einmal fiel der Mark II aus, weil eine Motte ein Relais lahmgelegt hatte. Ein Techniker klebte das Insekt ins Logbuch der Maschine, die von Grace betreut wurde, und schrieb dazu, es sei der erste wirkliche Bug, der je gefunden wurde.
1957: John W. Backus entwickelt Fortran, die erste höhere Programmiersprache
Nein, John Backus hat Fortran nicht „erfunden“, sondern war Leiter des Fortran-Entwicklungsteams am IBM Watson Laboratory der Columbia University. Aber er war es, der nahezu alle theoretischen Grundlagen für die Programmierung, wie wir sie heute kennen, zumindest mitentwickelt hat. So beispielsweise die Backus-Naur-Form (BNF), eine Metasprache zum Beschreiben von Programmen unabhängig von der verwendeten Programmiersprache. Oder die Prinzipien der funktionalen Programmierung, bei der Funktionen verwendet werden können wie jede andere Art Daten. Zwischen seiner Idee für eine höhere Programmiersprache und der Realisierung im Jahr 1957 lagen fünf Jahre, in denen das Team nicht nur an Fortran arbeitete, sondern Backus als Teamleiter die IBM davon überzeugen musste, dass dieses Projekt sinnvoll und zukunftsweisend war. Fortran gilt nicht nur als erste höhere Programmiersprache, es ist nach wie vor quicklebendig und ist immer noch ziemlich optimal für numerische Berechnungen in Wissenschaft, Technik und Forschung. Deshalb wurde die Sprache auch ständig weiterentwickelt – über die Versionen FORTRAN 77 (nur echt in Großbuchstaben) und Fortran 90 (jetzt gemischt geschrieben) bis zum erst kürzlich freigegebenen Fortran 2018.
Berühmt ist John Backus auch für seine prägnanten Statements, die oft in den Sprachgebrauch von Computer-Freaks und -Nerds übergegangen sind. So war er es, der sagte (frei übersetzt aus dem Englischen): „Viel von meiner Arbeit ist das Ergebnis von Faulheit“.
1959: Grace Hopper entwickelt im Auftrag des US-Verteidigungsministerium COBOL
Und wieder stoßen wir auf Amazing Grace, die Mitte der Fünfzigerjahre den Auftrag enthielt, eine höhere Programmiersprache zu entwickeln, mit der man betriebswirtschaftliche Aufgaben lösen könnte. Dass es das US-Verteidigungsministerium war, das diesen Auftrag erteilte, erscheint nur auf den ersten Blick merkwürdig. Tatsächlich aber hatte die US-Regierung mit dem Beginn des kalten Krieges begonnen, das Militär wie ein großes Unternehmen zu organisieren und hatte Bedarf nach Rechenpower in Sachen Buchführung et cetera. Unter der Leitung von Grace Hopper erarbeitete ein großes Team das gewünschte Projekt – COBOL (Common Business Orientated Language) war geboren. Auch diese Programmiersprache überdauerte die Zeiten und schaffte es sogar auf die Minicomputer der Siebzigerjahre und den PC. COBOL brachte den Durchbruch für den Einsatz von Computern in nicht-technische Unternehmen, also Firmen, in denen nicht nur Konstruktionen rechnerisch zu unterstützen waren, sondern die in den Bereichen Handel und Verkehr unterwegs waren. Und weil COBOL zum Produkt wurde, war es die erste Programmiersprache, mit der Geld verdient wurde.
Wenig bekannt ist, dass sich das ursprüngliche Programmierschema von COBOL an der klassischen IBM-Lochkarte mit ihren 80 Spalten orientierte, deren Größe 1895 von Herman Hollerith eher zufällig gewählt worden war.
1962: Backus, Naur und die GAMM heben Algol 60 aus der Taufe
Computer in den Fünfzigerjahren waren nicht nur riesige Maschinen, sondern waren durchweg der Wissenschaft und Forschung zugeordnet. Auch wenn sie von Großunternehmen wie der IBM hergestellt oder betrieben wurden; in der Regel standen sie an Universitäten. Hatte eine Instanz außerhalb der akademischen Welt ein Problem, das mit Hilfe von Computern zu lösen war, musste sie sich an eine Uni wenden, die über ein solches Elektronenhirn verfügte – das galt übrigens auch für das US-amerikanische Militär und die NASA, die beide erst ab Mitte der Sechziger über eigene Anlagen verfügten. Diese Situation brachte es mit sich, dass Programmiersprachen eben vor allem dazu dienten, Berechnungen durchzuführen: im Bereich der Strömungstechnik, in der Statistik, bei der chemischen Synthese oder der Entschlüsselung der DNA. Viele der dazu bestimmten Programme wurden ab etwa 1962 in einer der Algol-Sprachen formuliert. Dabei handelt es sich um eine Sprachenfamilie, bei der zum ersten Mal Algorithmen (daher der Name…) im Mittelpunkt standen. Neben dem gute John Backus und dem nicht minder genialen Peter Naur war auch die deutsche Gesellschaft für Angewandte Mathematik und Mechanik (GAMM) an der Entwicklung von Algol 60 beteiligt.
Kaum zu glauben, aber wahr: Tausende von in einem Algol-Dialekt formulierte Programme liefen noch bis zum Ende der Neunzigerjahre weitgehend unverändert auf Großrechnern in aller Welt; sie waren so perfekt, dass man sie für die Nutzung auf massiv parallelen Computersystem einfach portierte.