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
Euclid (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!
{{Infobox programming language | name = Euclid | logo = | paradigm = [[Multi-paradigm programming language|multi-paradigm]]: [[structured programming|structured]], [[Imperative programming|imperative]], [[Functional programming|functional]] | year = 1970s | designer = [[Butler Lampson]], [[James G. Mitchell]], [[Jim Horning]], Ralph L. London, [[Gerald J. Popek]] | developer = [[Ric Holt]] and [[James Cordy]] | latest_release_version = <!--X.Y.Z/{{release date|mf=yes|YYYY|MM|DD}}--> | latest release date = | typing = [[strong typing|strong]], [[static typing|static]] | implementations = | dialects = | influenced_by = [[Pascal (programming language)|Pascal]], [[Mesa (programming language)|Mesa]], [[Alphard (programming language)|Alphard]], [[CLU (programming language)|CLU]], Gypsy, [[BCPL]], [[Modula]], [[LIS (programming language)|LIS]], SUE | influenced = [[Concurrent Euclid (programming language)|Concurrent Euclid]], [[Turing (programming language)|Turing]] | operating_system = | license = | website = | file_ext = }} '''Euclid''' is an imperative programming language for writing [[Formal verification|verifiable]] programs. It was designed in the mid-1970s by [[Butler Lampson]] and [[James G. Mitchell]] at the [[Xerox PARC]] lab in collaboration with [[Jim Horning]] at the [[University of Toronto]], Ralph L. London at [[Information Sciences Institute|USC ISI]] and [[Gerald J. Popek]] at [[University of California, Los Angeles|UCLA]]. The implementation was led by [[Ric Holt]] at the [[University of Toronto]] and [[James Cordy]] was the principal programmer for the first implementation of the [[compiler]]. It was originally designed for the [[Motorola 6809]] microprocessor. It was considered innovative for the time; the compiler development team had a $2 million budget over 2 years and was commissioned by the [[Defense Advanced Research Projects Agency]] of the [[United States Department of Defense|U.S. Department of Defense]] and the [[Department of National Defence (Canada)|Canadian Department of National Defence]]. It was used for a few years at [[I. P. Sharp Associates]], [[MITRE|MITRE Corporation]], [[SRI International]] and various other international institutes for research in systems programming and secure software systems. Euclid is descended from [[Pascal programming language|Pascal]], [[Mesa (programming language)|Mesa]], [[Alphard (programming language)|Alphard]], [[CLU (programming language)|CLU]], Gypsy, [[BCPL]], [[Modula]], [[LIS (programming language)|LIS]], and SUE. Functions in Euclid are closed scopes, may not have side effects, and must explicitly declare imports. Euclid also disallows [[GOTO|goto]]s, floating point numbers, global assignments, [[nested function]]s and aliases, and none of the actual parameters to a function can refer to the same memory cell (which Euclid calls a "variable"). Euclid implements modules as types. Descendants of Euclid include the [[Concurrent Euclid programming language]] and the [[Turing programming language]]. ==External links== *[http://portal.acm.org/citation.cfm?id=954666.971189 B.W. Lampson, J.J. Horning, R.L. London, J.G. Mitchell and G.J. Popek 1977. Report on the programming language Euclid. SIGPLAN Notices 12, 2 (February 1977), 1-79.] *[http://portal.acm.org/citation.cfm?id=804077 R.C. Holt, D.B. Wortman, J.R. Cordy and D.R. Crowe 1978. The Euclid Language: a progress report. In Proceedings of the 1978 Annual Conference (Washington, D.C., United States, December 04 - 06, 1978), 111-115.] *[http://portal.acm.org/citation.cfm?id=802513 D.B. Wortman and J.R. Cordy 1981. Early experiences with Euclid. In Proc. 5th international Conference on Software Engineering (San Diego, California, United States, March 09 - 12, 1981), 27-32.] [[Category:Procedural programming languages]] [[Category:Programming languages created in the 1970s]] [[Category:Statically typed programming languages]] [[Category:Systems 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:Infobox programming language
(
edit
)