Euler (Programmiersprache)
# Euler (Programmiersprache)

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.