In der heutigen Welt ist Algol 60 für ein breites Spektrum von Menschen zu einem Thema von großer Relevanz und Interesse geworden. Ob es sich um ein soziales Phänomen, einen technologischen Fortschritt, eine historische Persönlichkeit oder einen anderen Aspekt des modernen Lebens handelt, Algol 60 hat die Aufmerksamkeit verschiedener Zielgruppen auf sich gezogen und in verschiedenen Kreisen intensive Debatten ausgelöst. In diesem Artikel werden wir die verschiedenen Aspekte im Zusammenhang mit Algol 60 untersuchen, von seinem Ursprung bis zu seinen aktuellen Auswirkungen, mit dem Ziel, dem Leser eine umfassende und kontextualisierte Sicht auf dieses derzeit wichtige Thema zu bieten.
Algol 60 | |
---|---|
Basisdaten | |
Paradigmen: | prozedural, imperativ, strukturiert |
Erscheinungsjahr: | 1960 |
Designer: | Backus, Bauer, Green, Katz, McCarthy, Naur, Perlis, Rutishauser, Samelson, van Wijngaarden, Vauquois, Wegstein, Woodger |
Entwickler: | John W. Backus, Friedrich Ludwig Bauer, Charles Katz, John McCarthy, Peter Naur, Alan J. Perlis, Heinz Rutishauser, Klaus Samelson, Adriaan van Wijngaarden, Bernard Vauquois[1] |
Aktuelle Version | ISO 1538:1984[2] (15. Oktober 1984) |
Beeinflusst von: | Algol 58 |
Beeinflusste: | die meisten imperativen Sprachen (sogenannte Algol-ähnliche Sprachen), z. B. Simula, CPL, Pascal, Ada, C |
Algol 60 ist eine Programmiersprache der ALGOL-Familie. Sie wurde 1958–1963 unter der Führung der Association for Computing Machinery (ACM) und der Gesellschaft für Angewandte Mathematik und Mechanik (GAMM), später dann der International Federation for Information Processing (IFIP), entwickelt. Beteiligt waren unter anderem John W. Backus, Friedrich L. Bauer, John McCarthy, Peter Naur, Alan J. Perlis, Heinz Rutishauser und Klaus Samelson. Der Name Algol ist eine Kurzform für Algorithmic Language,[3] 60 steht für das Jahr der »Fastfertigstellung« (ein Diskussionsentwurf wurde als International Algorithmic Language (IAL) oder Algol 58 bekannt; die endgültige Fassung (als »Revised Report« tituliert) stammt aus dem Jahre 1963).
Algol 60 war als international entwickelte, von kommerziellen Interessen unabhängige, portable, prozedurale Programmiersprache in erster Linie für wissenschaftliche, das hieß damals numerische, Zwecke gedacht. Es gab aber auch wichtige nichtnumerische Anwendungen. Ihre Einfachheit, und die für damalige Verhältnisse weitgehende Freiheit von Restriktionen, machte sie angenehm zu benutzen.
Algol 60 war ein Meilenstein in der Geschichte der Programmiersprachen:
Als (unerwartet) großes Problem erwies sich, dass die Ein-/Ausgabe nicht geregelt worden war, so dass deren Implementierungen stark zwischen den Compilern variieren. Beispielsweise wird ein Text einmal mit dem OUTSTRING- und einmal mit dem WRITETEXT-Befehl (beispielsweise bei der Electrologica X1) ausgegeben.
Die Methode der sequentiellen Formelübersetzung von Bauer und Samelson ermöglichte es, auf viele Restriktionen zu verzichten, wie sie etwa Fortran kannte. Die darin enthaltene Idee des Stapelspeichers ermöglichte dann auch rekursive Prozeduren (Edsger W. Dijkstra).
Vom λ-Kalkül inspiriert war die Möglichkeit innerer Prozedurdefinitionen (»Blockstruktur«). begin-Blöcke (anonyme Prozeduren) wurden vor allem dazu benutzt, Felder mit variablen Grenzen im Stapelspeicher anzulegen. Sichtbarkeit und Gültigkeitsbereich der Variablen waren dabei korrekt lexikalisch definiert. Vorgesehen waren auch own-Variablen, deren Lebensdauer der Programmlauf sein sollte (vgl. ‚static‘ in C); dieses Konzept wurde aber häufig nicht implementiert.
Ebenfalls vom λ-Kalkül waren die Parameterübergabe-Modi genommen:
integriere (alpha*x*x, x, a, b)
Algol führte mit Lisp das Prinzip der Formatfreiheit in Programmiersprachen ein. Dabei hat ein Schlüsselwort immer dieselbe Bedeutung, unabhängig von der Position im Programm. Außerdem ist der Beginn einer neuen Zeile dem Leerzeichen gleichgestellt. In den damals vorherrschenden Sprachen Fortran und COBOL war die Positionierung der Anweisungen auf den Lochkarten dagegen entscheidend – ein Schlüsselwort konnte je nach Position eine andere Bedeutung haben. Auch die Zeileneinteilung war bei diesen Sprachen nicht frei.
Das folgende (vollständige) Algol-60-Programm gibt Hallo, Welt!
auf dem Ausgabekanal 2 aus:
begin comment Hallo-Welt-Programm in Algol 60; outstring (2, ʿHallo, Welt!ʾ) end
„ALGOL war ein Fortschritt gegenüber den meisten seiner Nachfolger.“
In der Praxis fand Algol weniger Anwendung als Fortran oder COBOL; das minderte aber nicht seinen langfristigen Einfluss (s. o.). Lange Zeit war Algol 60 im akademischen Bereich vorbildlich. Es litt aber unter der mangelnden Implementierungsbereitschaft großer Computer-Hersteller. IBM wollte ab 1964 mit PL/I die drei „großen“ Sprachen COBOL, Fortran und Algol 60 ablösen.
Der wichtigste Nachfolger war Simula 67.
Der US-amerikanische Informatiker John Charles Reynolds behauptete, die meisten Sprachen seien nicht Algol 60, sondern dem (nie implementierten) ISWIM gefolgt; er selbst stellte mit Forsythe eine Fortentwicklung in der Algol-Tradition vor.[7]
Algol 68 war dem Namen zum Trotz ein völliger Neuentwurf, der ein geteiltes Echo fand. Niklaus Wirth entwickelte alternativ Algol W, woraus in der Weiterentwicklung Pascal werden sollte.