Zum Inhalt springen

Algol 60

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 19. Dezember 2003 um 02:53 Uhr durch Zwobot (Diskussion | Beiträge) (Bot: wiki syntax). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Die Programmiersprache Algol 60 wurde von 1958-1963 unter den Auspizien 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 Backus, Friedrich Ludwig Bauer, John McCarthy, Peter Naur, Alan Perlis, Hans Rutishauser, Kurt Samuelson. Der Name Algol ist eine Kurzform für Algorithmic Language, 60 steht für das Jahr der Fastfertigstellung.

(Ein Diskussionsentwurf wird manchmal als Algol58 zitiert; die endgültige Fassung stammt aus dem Jahre 1963.)

Algol 60 war als international entwickelte, von kommerziellen Interessen unabhängige, portable Programmiersprache in erster Linie für wissenschaftliche, d.h. damals numerische Zwecke gedacht.

Interessanterweise gab es auch nichtnumerische Anwendungen, weil ihre Einfachheit und für damalige Verhältnisse weitgehende Freiheit von Restriktionen sie angenehm zu benutzen machte.

Algol 60 war ein Meilenstein in der Geschichte der Programmiersprachen. Mit ihr begann die saubere Definition von Spracheigenschaften unabhängig von (und vor) jeder Implementation (anders als es bei noch LISP war, trotz der theoretischen Grundlage!). Der Algol 60 Report führte die formale Definition der Syntax mithilfe der Backus-Naur-Form ein, die bald allgemein üblich wurde.

Eigenschaften

Algol 60 erlaubte als erste prozedurale Programmiersprache Rekursion.

Algol 60 führte das Prinzip der Blockstruktur und der Sichtbarkeit von Variablen ein:

  • Blöcke gruppieren Programme in logisch zusammenhängende Elemente
  • Blöcke können verschachtelt werden
  • Auf eine Variable, die in einem Block definiert wird, kann nur in diesem Block selbst und in untergeordneten Blöcken zugegriffen werden

Die Sprache kannte zwei Möglichkeiten, Parameter an Funktionen und Prozeduren zu übergeben. Sie unterschieden sich durch die Art, wie die Parameter-Variablen behandelt wurden:

  • Call by Value - Beim Aufruf wird der Parameter-Variable der aktuelle Wert zugewiesen. Ändert sie während der Ausführung der Funktion später ihren Wert, wird dies vom Aufrufer nicht bemerkt.
  • Call by Name - Beim Aufruf wird die Parameter-Variable durch den Parameter ersetzt. Dadurch wirken sich Änderungen der Variable auf den Aufrufer aus. Call by Name unterscheidet sich durch die Semantik der Ersetzung von dem heute üblichen Call by Reference; die Call-by-Name-Semantik wird noch von C-Makros verwendet.

Wirkungen/Bedeutung/Nachfolger

Algol 68 war dem Namen zum Trotz ein völliger Neuentwurf, der ein geteiltes Echo fand.

Der wichtigste Nachfolger war Simula 67, daneben Algol-W (Niklaus Wirth).

Wirtschaftlich war Algol weniger bedeutsam als FORTRAN oder COBOL. (Erst seinen Nachfolgern war größerer Erfolg beschieden.)

Allerdings beeinflusste es stark spätere Programmiersprachen, zum Beispiel:

und sogar noch das neue

Bedeutsam bis heute bleiben auch weniger auffällige Sprachelemente, wie die automatische Speicherverwaltung oder die Ablage von Daten auf Sekundärspeichern.