Algol 68
aus Wikipedia, der freien Enzyklopädie
ALGOL 68 ist eine Programmiersprache. Ihr Entwurf beruhte auf den Anforderungen, dass sie geeignet sein soll, Algorithmen darzustellen und zu verbreiten, diese effektiv auf einer Vielzahl unterschiedlicher Rechenanlagen auszuführen und um zu helfen, sie Studenten zu lehren.
Die Sprache ALGOL 68 stellte einen neuen Anlauf dar, beruhte jedoch auf den Erfahrungen mit ALGOL 60 und den Prinzipien dieser Sprache. Ziel war ein wesentlich breiterer Anwendungsbereich und eine stringentere Sprachdefinition. Die Definition wurde als Report on the Algorithmic Language ALGOL 68 erstmals 1968 veröffentlicht und 1976 im Revised Report grundlegend revidiert.
Der Bericht nennt als Ziele: Vollständigkeit und Klarheit der Beschreibung, Orthogonalität des Entwurfes, Sicherheit, Effektivität.
Im Vergleich zu ALGOL 60 wurden einige Konzepte vereinheitlicht; neu eingeführt wurde das Konzept eines Namens, ein Wert, der auf andere Werte referiert, die Möglichkeit zur Definition von Strukturen und anderer Datentypen. Aus der geringeren Akzeptanz von ALGOL 60 verglichen mit FORTRAN, wurde geschlossen, dass eine Definition von Ein- und Ausgabe die Verbreitung fördern könnte.
Kritiker wandten ein, die Sprache habe nicht mehr die Einfachheit von Algol 60 und sei zu schwierig zu implementieren. Konzepte, die in praktisch erfolgreicheren Sprachen wie C++ weitere Verbreitung fanden, wie Überladen von Operatoren, wurden erstmals syntaktisch definiert. Im Unterschied zu Algol 60 ist die Sprache weitestgehend ausdrucksorientiert, daher auch als frühes Beispiel einer funktionalen Programmiersprache anzusehen.
In der Beschreibung der Programmiersprache wurde ein neuartiges Beschreibungsverfahren, die 2-stufige Grammatik, auch van-Wijngaarden-Grammatik genannt, entwickelt. Diese erlaubte es, alle Kontextbedingungen mit zu formalisieren.
Neu war auch das Konzept PRAGMA, das Hinweise zur Optimierung für die Compiler erlaubte, ohne die Semantik eines Programms zu ändern, sodass die Programme trotz Optimierung portabel blieben.
ALGOL 68 wurde von einigen als akademisches Projekt betrachtet, weil längere Zeit brauchbare Compiler fehlten, die den gesamten Sprachstand implementierten.
Inhaltsverzeichnis |
[Bearbeiten] Reservierte Symbole
In ALGOL 68 gibt es 61 reservierte Symbole (für einige Symbole gibt es Abkürzungen):
mode, op, prio, proc, flex, heap, loc, long, ref, short, bits, bool, bytes, char, compl, int, real, sema, string, void, channel, file, format, struct, union, of, at "@", is ":=:", isnt ":/=:", true, false, empty, nil "∘", skip "~", co "¢", comment "¢", pr, pragmat, case in ouse in out esac "( ~ | ~ |: ~ | ~ | ~ )", for from to by while do od, if then elif then else fi "( ~ | ~ |: ~ | ~ | ~ )", par begin end "( ~ )", go to, goto, exit.
[Bearbeiten] Literatur
- van Wijngaarden et al., Revised Report on the Algorithmic Language ALGOL 68, Acta Informatica 5, (1975), 1-236
http://vestein.arb-phys.uni-dortmund.de/~wb/RR/rrTOC.html - A.S. Tanenbaum, A Tutorial on ALGOL 68, Computing Surveys 8, (1976), 155-190