Misplaced Pages

Euler (programming language)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Euler" programming language – news · newspapers · books · scholar · JSTOR (January 2021) (Learn how and when to remove this message)

Euler
ParadigmsMulti-paradigm: procedural, imperative, structured
FamilyALGOL Wirth
Designed byNiklaus Wirth
Helmut Weber
DevelopersStanford University
ETH Zurich
First appeared1965; 59 years ago (1965)
Typing disciplinedynamic
ScopeLexical
Influenced by
ALGOL 60

Euler is a programming language created by Niklaus Wirth and Helmut Weber, conceived as an extension and generalization of ALGOL 60. The designers' goals were to create a language that is:

  • Simpler, yet more flexible, than ALGOL 60
  • Useful and processed with reasonable efficiency
  • Definable with rigorous formality

Available sources indicate that Euler was operational by 1965.

Overview

Euler employs a general data type concept. In Euler, arrays, procedures, and switches are not quantities which are declared and named by identifiers: in contrast to ALGOL, they are not quantities on the same level as variables. Rather, these quantities are on the level of numeric and boolean constants. Thus, besides the traditional numeric and logical constants, Euler introduces several added types:

  • Reference
  • Label
  • Symbol
  • List (array)
  • Procedure
  • Undefined

All constants can be assigned to variables, which have the same form as in ALGOL, but for which no fixed types are specified: Euler uses dynamic typing. Further, a procedure can produce a value of any type when executed, and this type can vary from one call of the procedure to the next.

Similarly, the elements of a list can have values of any type and these can differ from element to element within a list. So, when the list elements are labels, a switch is obtained. If the elements are procedures, a procedure list is obtained, which is unavailable in ALGOL 60. If the elements are lists themselves, then a general tree structure is obtained.

Euler provides general type-test and type-conversion operators.

See also

References

  1. Wirth, Niklaus; Weber, Helmut (1966). "Euler: a generalization of ALGOL, and its formal definition: Part I". Communications of the ACM. 9 (1): 13–25.
  2. Wirth, Niklaus; Weber, Helmut (1966). "Euler: a generalization of ALGOL, and its formal definition: Part II". Communications of the ACM. 9 (2): 89–99.
  3. Christopher, Thomas W. (1997). Euler: An Experiment in Language Definition (PDF) (Report). Illinois Institute of Technology. Archived from the original (PDF) on 1 September 2006.

External links

Niklaus Wirth
Software
Programming
languages
Euler (1965) → PL360 (1966) → ALGOL W (1966) → Pascal (1970) → Modula (1975) → Modula-2 (1978) → Object Pascal (1986) → Oberon (1987) → Oberon-2 (1991) → Lola (1995) → Active Oberon (1998) → Oberon-07 (2007)
Operating systemsOberon System (1987) → Active Object System (AOS, 2002), Bluebottle (2005), A2 (2008)
Formalisms
Books
WorkstationsLilith (1977) → Ceres (1985)
Workplaces
Collaborators
Awards
Category: