Euler (Programmiersprache)
Euler | |
---|---|
Paradigmen: | imperativ |
Erscheinungsjahr: | 1966 |
Entwickler: | Niklaus Wirth, Helmut Weber |
Typisierung: | dynamisch typisiert |
Beeinflusst von: | ALGOL 60 |
Beeinflusste: | Pascal |
Euler ist eine von Niklaus Wirth und Helmut Weber entwickelte Programmiersprache, entworfen als Erweiterung und Verallgemeinerung von ALGOL 60. Sie wurde 1966 publiziert. Ziele der Entwicklung dieser neuen Programmiersprache waren:
- einfacher und doch flexibler als ALGOL 60
- brauchbare Programmiersprache, die mit vernünftiger Geschwindigkeit lief
- präzise formale Definierbarkeit
Übersicht
Einer der großen Unterschiede zu ALGOL ist das erweiterte Typenkonzept. Listen (Arrays), Prozeduren und Verzweigungen sind nicht wie in ALGOL auf der Ebene von Variablen definiert, sondern auf der Ebene von Konstanten. Das heißt, Listen, Verzweigungen und gar Prozeduren konnten Variablen zugewiesen werden. In Ergänzung zu den traditionellen numerischen und logischen Konstanten konnten in Euler folgende Typen verwendet werden.
- Referenzen
- Labels
- Symbole
- Listen (Arrays)
- Prozeduren
- Undefiniert
Alle Arten von Konstanten können Variablen zugewiesen werden. Variablen haben dieselbe Form wie in ALGOL mit Ausnahme, dass der Variablentyp nicht spezifiziert ist. Euler ist eine dynamisch typisierte Programmiersprache. Eine Prozedur kann als Resultat der Ausführung einen Wert jedes Typs zurückgeben. Dieser Typ kann auch bei jedem Aufruf der Prozedur wechseln. Ähnlich können die Elemente einer Liste (Array) jeden Typs sein. Beispiel: Eine Liste mit Elementen des Typs „Label“ erzeugt eine Verzweigung. Eine Liste von Prozeduren erzeugt eine in ALGOL60 nicht verfügbare Prozedurliste (quasi eine jump-list). Eine Liste von Elementen des Typs Liste ermöglicht die Bildung einer allgemeinen Baum-Struktur. Euler hat allgemeine Operatoren zur Kontrolle und Konvertierung von Typen. Eulers automatische Speicherbereinigung und einen Großteil des Interpreters auf dem Burroughs-B5500-Computer schrieb William M. McKeeman.
Literatur
- Niklaus Wirth, Helmut Weber: EULER: a generalization of ALGOL, and its formal definition: Part I. Communications of the ACM 1966; 9 (1): S. 13–25; Volltext
- Niklaus Wirth, Helmut Weber: EULER: a generalization of ALGOL, and its formal definition: Part II. Communications of the ACM 1966; 9 (2): S. 89–99; Volltext
- Karlheinz Natt, Claus Simon: Der EULER-Compiler für die Rechenanlage CD 3300 des Rechenzentrums der Universität des Saarlandes, 1972
- Thomas W. Christopher: EULER. An Experiment in Language Definition. Illinois Institute of Technology, 1997. Volltext