Content deleted Content added
Added removed implementation stuff. |
Expand list of designers and influences, fix order of influence with mesa (it was backwards -- mesa influenced euclid, not vice-versa) |
||
(18 intermediate revisions by 17 users not shown) | |||
Line 1:
{{Infobox programming language
'''Euclid''' is an imperative programming language for writing verifiable programs. It was designed by [[Butler Lampson]] and associates at the [[Xerox PARC]] lab in the mid 1970s. 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 dollar 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.▼
| 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.
Euclid is descended from the [[Pascal programming language]]. Functions in Euclid are closed scopes, may not have side effects, and must explicity declare imports. Euclid also disallows gotos, floating point numbers, global assignments, nested functions and aliases, and none of the actual parameters to a function can refer to the same thing. Euclid implements modules as types. Descendents of Euclid include the [[Mesa programming language]], [[Concurrent Euclid]] and the [[Turing programming language]].▼
▲Euclid is descended from
==External links==
*[http://portal.acm.org/citation.cfm?id=
*[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:
[[Category:Programming languages created in the 1970s]]
[[Category:Statically typed programming languages]]
[[Category:Systems programming languages]]
|