Euclid Programming Language
   HOME

TheInfoList



OR:

{{Infobox programming language , name = Euclid , logo = , paradigm =
multi-paradigm Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the execution model of the language, suc ...
:
structured Structuring, also known as smurfing in banking jargon, is the practice of executing financial transactions such as making bank deposits in a specific pattern, calculated to avoid triggering financial institutions to file reports required by law ...
, imperative,
functional Functional may refer to: * Movements in architecture: ** Functionalism (architecture) ** Form follows function * Functional group, combination of atoms within molecules * Medical conditions without currently visible organic basis: ** Functional sy ...
, year = 1970s , designer =
Butler Lampson Butler W. Lampson, ForMemRS, (born December 23, 1943) is an American computer scientist best known for his contributions to the development and implementation of distributed personal computing. Education and early life After graduating from the ...
,
Xerox PARC PARC (Palo Alto Research Center; formerly Xerox PARC) is a research and development company in Palo Alto, California. Founded in 1969 by Jacob E. "Jack" Goldman, chief scientist of Xerox Corporation, the company was originally a division of Xero ...
, developer =
Ric Holt Richard Craig Holt (February 13, 1941 – April 12, 2019) was an American-Canadians, Canadian computer scientists, computer scientist. Early life Holt was born on in 1941 in Bartlesville, Oklahoma, to Vashti Young and C.P. Holt, but later move ...
and James Cordy , latest_release_version = , latest release date = , typing = strong,
static Static may refer to: Places *Static Nunatak, a nunatak in Antarctica United States * Static, Kentucky and Tennessee *Static Peak, a mountain in Wyoming **Static Peak Divide, a mountain pass near the peak Science and technology Physics *Static el ...
, implementations = , dialects = , influenced_by =
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Fren ...
, influenced =
Mesa A mesa is an isolated, flat-topped elevation, ridge or hill, which is bounded from all sides by steep escarpments and stands distinctly above a surrounding plain. Mesas characteristically consist of flat-lying soft sedimentary rocks capped by ...
,
Concurrent Euclid Concurrent Euclid (ConEuc) is a concurrent descendant of the Euclid programming language designed by James Cordy and Ric Holt, then at the University of Toronto, in 1980. ConEuc was designed for concurrent, high performance, highly reliable sys ...
,
Turing Alan Mathison Turing (; 23 June 1912 – 7 June 1954) was an English mathematician, computer scientist, logician, cryptanalysis, cryptanalyst, philosopher, and mathematical and theoretical biology, theoretical biologist. Turing was high ...
, operating_system = , license = , website = , file_ext = Euclid is an imperative programming language for writing
verifiable Verify or verification may refer to: General * Verification and validation, in engineering or quality management systems, is the act of reviewing, inspecting or testing, in order to establish and document that a product, service or system meets ...
programs. It was designed by
Butler Lampson Butler W. Lampson, ForMemRS, (born December 23, 1943) is an American computer scientist best known for his contributions to the development and implementation of distributed personal computing. Education and early life After graduating from the ...
and associates at the
Xerox PARC PARC (Palo Alto Research Center; formerly Xerox PARC) is a research and development company in Palo Alto, California. Founded in 1969 by Jacob E. "Jack" Goldman, chief scientist of Xerox Corporation, the company was originally a division of Xero ...
lab in the mid-1970s. The implementation was led by
Ric Holt Richard Craig Holt (February 13, 1941 – April 12, 2019) was an American-Canadians, Canadian computer scientists, computer scientist. Early life Holt was born on in 1941 in Bartlesville, Oklahoma, to Vashti Young and C.P. Holt, but later move ...
at the
University of Toronto The University of Toronto (UToronto or U of T) is a public research university in Toronto, Ontario, Canada, located on the grounds that surround Queen's Park. It was founded by royal charter in 1827 as King's College, the first institution ...
and James Cordy was the principal programmer for the first implementation of the
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
. It was originally designed for the
Motorola 6809 The Motorola 6809 ("''sixty-eight-oh-nine''") is an 8-bit microprocessor with some 16-bit features. It was designed by Motorola's Terry Ritter and Joel Boney and introduced in 1978. Although source compatible with the earlier Motorola 6800, the 6 ...
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 The Defense Advanced Research Projects Agency (DARPA) is a research and development agency of the United States Department of Defense responsible for the development of emerging technologies for use by the military. Originally known as the Adv ...
of the
U.S. Department of Defense The United States Department of Defense (DoD, USDOD or DOD) is an executive branch department of the federal government charged with coordinating and supervising all agencies and functions of the government directly related to national secur ...
and the
Canadian Department of National Defence The Department of National Defence (DND; french: Ministère de la Défense nationale) is the department of the Government of Canada which supports the Canadian Armed Forces in its role of defending Canadian national interests domestically and i ...
. It was used for a few years at I. P. Sharp Associates, MITRE Corporation,
SRI International SRI International (SRI) is an American nonprofit scientific research institute and organization headquartered in Menlo Park, California. The trustees of Stanford University established SRI in 1946 as a center of innovation to support economic d ...
and various other international institutes for research in systems programming and secure software systems. Euclid is descended from the
Pascal programming language Pascal is an Imperative programming, imperative and Procedural programming, procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming an ...
. Functions in Euclid are closed scopes, may not have side effects, and must explicitly declare imports. Euclid also disallows
goto GoTo (goto, GOTO, GO TO or other case combinations, depending on the programming language) is a statement found in many computer programming languages. It performs a one-way transfer of control to another line of code; in contrast a function ca ...
s, floating point numbers, global assignments,
nested function In computer programming, a nested function (or nested procedure or subroutine) is a function which is defined within another function, the ''enclosing function''. Due to simple recursive scope rules, a nested function is itself invisible outside o ...
s and aliases, and none of the actual parameters to a function can refer to the same thing. Euclid implements modules as types. Descendants of Euclid include the
Mesa programming language Mesa is a programming language developed in the late 1970s at the Xerox Palo Alto Research Center in Palo Alto, California, United States. The language name was a pun based upon the programming language catchphrases of the time, because Mesa is a ...
, the
Concurrent Euclid programming language Concurrent Euclid (ConEuc) is a concurrent descendant of the Euclid programming language designed by James Cordy and Ric Holt, then at the University of Toronto, in 1980. ConEuc was designed for concurrent, high performance, highly reliable sys ...
and the
Turing programming language Turing is a high-level, general-purpose programming language developed in 1982 by Ric Holt and James Cordy, at University of Toronto in Ontario, Canada. It was designed in order to help students taking their first computer science course learn ...
.


External links


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.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.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.
Procedural programming languages Programming languages created in the 1970s Statically typed programming languages Systems programming languages