Euler programming language
Encyclopedia
Euler is a programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 created by Niklaus Wirth
Niklaus Wirth
Niklaus Emil Wirth is a Swiss computer scientist, best known for designing several programming languages, including Pascal, and for pioneering several classic topics in software engineering. In 1984 he won the Turing Award for developing a sequence of innovative computer languages.-Biography:Wirth...

 and Helmut Weber, conceived as an extension and generalization of ALGOL 60
ALGOL 60
ALGOL 60 is a member of the ALGOL family of computer programming languages. It gave rise to many other programming languages, including BCPL, B, Pascal, Simula, C, and many others. ALGOL 58 introduced code blocks and the begin and end pairs for delimiting them...

. The designers' goal was to create a language:
  • which was simpler, and yet more flexible, than ALGOL 60
  • that was a useful programming language processed with reasonable efficiency
  • that can be defined with rigorous formality

Overview

Euler employs a general type concept. In Euler, arrays, procedures, and switches are not quantities which are declared and named by identifiers: they are not (as opposed to ALGOL) quantities which are 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 the following additional types:
  • reference
  • label
    Label (programming language)
    A label in a programming language is a sequence of characters that identifies a location within source code. In most languages labels take the form of an identifier, often followed by a punctuation character . In many high level programming languages the purpose of a label is to act as the...

  • 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 is a dynamically typed programming language. Furthermore, 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 be different from element to element within the list. So, when the list elements are labels, a switch is obtained. If the elements are procedures, a procedure list is obtained (which is not available in ALGOL 60). If the elements are lists themselves, then a general tree structure obtains.
Euler provides general type-test and type-conversion operators.

Literature

  • Niklaus Wirth, Helmut Weber: EULER: a generalization of ALGOL, and its formal definition: Part I. Communications of the ACM 1966; 9 (1): p. 13-25
  • Niklaus Wirth, Helmut Weber: EULER: a generalization of ALGOL, and its formal definition: Part II. Communications of the ACM 1966; 9 (2): p. 89-99
  • Thomas W. Christopher: EULER. An Experiment in Language Definition. Illinois Institute of Technology, 1997. full text
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK