Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Euler (programming language)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{More citations needed|date=January 2021}} {{Use dmy dates|date=January 2021}} {{Infobox programming language | name = Euler | logo = | paradigms = [[Multi-paradigm programming language|Multi-paradigm]]: [[Procedural programming|procedural]], [[Imperative programming|imperative]], [[Structured programming|structured]] | family = [[ALGOL]] [[Niklaus Wirth|Wirth]] | designers = [[Niklaus Wirth]]<br />Helmut Weber | developers = [[Stanford University]]<br />[[ETH Zurich]] | released = {{Start date and age|1965}} | latest release version = | latest release date = | typing = [[Dynamic typing|dynamic]] | scope = [[Scope (computer science)|Lexical]] | programming language = | platform = | operating system = | license = | file ext = | website = <!-- {{URL|www.example.com}} --> | influenced by = [[ALGOL 60]] | influenced = }} '''Euler''' is a [[programming language]] created by [[Niklaus Wirth]] and Helmut Weber, conceived as an extension and generalization of [[ALGOL 60]].<ref> {{Cite journal |last1=Wirth |first1=Niklaus |author-link=Niklaus Wirth |last2=Weber |first2=Helmut |date=1966 |title=Euler: a generalization of ALGOL, and its formal definition: Part I |journal=Communications of the ACM |volume=9 |issue=1 |pages=13–25}}</ref><ref> {{Cite journal |last1=Wirth |first1=Niklaus |author-link=Niklaus Wirth |last2=Weber |first2=Helmut |date=1966 |title=Euler: a generalization of ALGOL, and its formal definition: Part II |journal=Communications of the ACM |volume=9 |issue=2 |pages=89–99}}</ref><ref> {{Cite report |last=Christopher |first=Thomas W. |date=1997 |title=Euler: An Experiment in Language Definition |url=http://www.iit.edu/~tc/euler.pdf |publisher=Illinois Institute of Technology |archive-url=https://web.archive.org/web/20060901063907/http://www.iit.edu/~tc/euler.pdf |archive-date=1 September 2006 |url-status=dead}}</ref> 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 [[Formal methods|rigorous formality]] Available sources indicate that Euler was operational by 1965. ==Overview== Euler employs a general [[data type]] concept. In Euler, [[Array data type|arrays]], [[Subroutine|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 [[Variable (computer science)|variables]]. Rather, these quantities are on the level of numeric and boolean [[Constant (computer programming)|constants]]. Thus, besides the traditional numeric and logical constants, Euler introduces several added types: * Reference * [[Label (programming language)|Label]] * [[Symbol (programming)|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 == * [[Wirth–Weber precedence relationship]] * [[Simple precedence parser]] == References == {{Reflist}} == External links == * {{GitHub|pkimpel/retro-b5500/tree/master/source/EULER}} - EULER IV for the [[Burroughs Large Systems#B5000|Burroughs B5500]] from 1965 * {{GitHub|gtownsend/icon/tree/master/ipl/packs/euler}} - An implementation written in [[Icon (programming language)|Icon]] from 2000-2001 {{Wirth}} {{DEFAULTSORT:Euler (Programming Language)}} [[Category:Dynamically typed programming languages]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite journal
(
edit
)
Template:Cite report
(
edit
)
Template:GitHub
(
edit
)
Template:Infobox programming language
(
edit
)
Template:More citations needed
(
edit
)
Template:Reflist
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Wirth
(
edit
)