euclid (programming language) - wikipedia, the free encyclopedia

Upload: beta2009

Post on 14-Apr-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Euclid (Programming Language) - Wikipedia, The Free Encyclopedia

    1/1

    Euclid

    Paradigm(s) multi-paradigm: structured,

    imperative, functional

    Appeared in 1970s

    Designed by Butler Lampson, Xerox PARC

    Developer Ric Holt and James Cordy

    Typing

    discipline

    strong, static

    Influenced

    by

    Pascal

    Influenced Mesa, Concurrent Euclid, Turing

    uclid (programming language)m Wikipedia, the free encyclopedia

    clid is an imperative programming language for writing verifiable

    grams. It was designed by Butler Lampson and associates at the

    rox PARC lab in the mid-1970s. The implementation was led by

    Holt at the University of Toronto and James Cordy was the

    ncipal programmer for the first implementation of the compiler. It

    s originally designed forthe Motorola 6809 microprocessor. Its considered innovative for the time; the compiler development

    m had a $2 million budget over 2 years and was commissioned by

    Defense Advanced Research Projects Agency of the U.S.

    partment of Defense and the Canadian Department of National

    fence. It was used for a few years at I. P. Sharp Associates,

    TRE Corporation, SRI International and various other international

    itutes for research in systems programming and secure software

    tems.

    clid is descended from the Pascal programming language.nctions in Euclid are closed scopes, may not have side effects, and must explicitly declare imports. Euclid also disallows

    os, floating point numbers, global assignments, nested functions and aliases, and none of the actual parameters to a

    ction can refer to the same thing. Euclid implements modules as types. Descendants of Euclid include the Mesa

    gramming language, the Concurrent Euclid programming language and the Turing programming language.

    xternal 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. (http://portal.acm.org/citation.cfm?

    id=954666.971189)

    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=804077)

    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.

    (http://portal.acm.org/citation.cfm?id=802513)

    rieved from "http://en.wikipedia.org/w/index.php?title=Euclid_(programming_language)&oldid=550080609"

    tegories: Procedural programming languages Programming languages created in the 1970s

    This page was last modified on 12 April 2013 at 23:57.

    Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using

    this site, you agree to the Terms of Use and Privacy Policy.

    Wikipedia is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.

    http://en.wikipedia.org/wiki/Category:Programming_languages_created_in_the_1970shttp://en.wikipedia.org/w/index.php?title=Euclid_(programming_language)&oldid=550080609http://portal.acm.org/citation.cfm?id=802513http://portal.acm.org/citation.cfm?id=802513http://portal.acm.org/citation.cfm?id=802513http://portal.acm.org/citation.cfm?id=804077http://portal.acm.org/citation.cfm?id=804077http://www.wikimediafoundation.org/http://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_Licensehttp://en.wikipedia.org/wiki/Help:Categoryhttp://en.wikipedia.org/wiki/Category:Procedural_programming_languageshttp://en.wikipedia.org/wiki/Category:Programming_languages_created_in_the_1970shttp://en.wikipedia.org/w/index.php?title=Euclid_(programming_language)&oldid=550080609http://portal.acm.org/citation.cfm?id=802513http://portal.acm.org/citation.cfm?id=802513http://portal.acm.org/citation.cfm?id=804077http://portal.acm.org/citation.cfm?id=804077http://portal.acm.org/citation.cfm?id=954666.971189http://portal.acm.org/citation.cfm?id=954666.971189http://portal.acm.org/citation.cfm?id=954666.971189http://en.wikipedia.org/wiki/Mesa_programming_languagehttp://en.wikipedia.org/wiki/Concurrent_Euclid_programming_languagehttp://en.wikipedia.org/wiki/Pascal_programming_languagehttp://en.wikipedia.org/wiki/MITREhttp://en.wikipedia.org/wiki/SRI_Internationalhttp://en.wikipedia.org/wiki/Pascal_(programming_language)http://en.wikipedia.org/wiki/Department_of_National_Defence_(Canada)http://en.wikipedia.org/wiki/United_States_Department_of_Defensehttp://en.wikipedia.org/wiki/Type_systemhttp://en.wikipedia.org/wiki/Strong_typinghttp://en.wikipedia.org/wiki/Static_typinghttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Ric_Holthttp://en.wikipedia.org/wiki/James_Cordyhttp://en.wikipedia.org/wiki/Motorola_6809http://en.wikipedia.org/wiki/Ric_Holthttp://en.wikipedia.org/wiki/University_of_Torontohttp://en.wikipedia.org/wiki/James_Cordyhttp://en.wikipedia.org/wiki/Imperative_programminghttp://en.wikipedia.org/wiki/Functional_programminghttp://en.wikipedia.org/wiki/Xerox_PARChttp://en.wikipedia.org/wiki/Programming_paradigmhttp://en.wikipedia.org/wiki/Multi-paradigm_programming_languagehttp://en.wikipedia.org/wiki/Structured_programminghttp://www.wikimediafoundation.org/http://wikimediafoundation.org/wiki/Privacy_policyhttp://wikimediafoundation.org/wiki/Terms_of_Usehttp://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_Licensehttp://en.wikipedia.org/wiki/Help:Categoryhttp://en.wikipedia.org/w/index.php?title=Euclid_(programming_language)&oldid=550080609http://portal.acm.org/citation.cfm?id=802513http://portal.acm.org/citation.cfm?id=804077http://portal.acm.org/citation.cfm?id=954666.971189http://en.wikipedia.org/wiki/Turing_programming_languagehttp://en.wikipedia.org/wiki/Concurrent_Euclid_programming_languagehttp://en.wikipedia.org/wiki/Mesa_programming_languagehttp://en.wikipedia.org/wiki/Nested_functionhttp://en.wikipedia.org/wiki/GOTOhttp://en.wikipedia.org/wiki/Pascal_programming_languagehttp://en.wikipedia.org/wiki/SRI_Internationalhttp://en.wikipedia.org/wiki/MITREhttp://en.wikipedia.org/wiki/I._P._Sharp_Associateshttp://en.wikipedia.org/wiki/Department_of_National_Defence_(Canada)http://en.wikipedia.org/wiki/United_States_Department_of_Defensehttp://en.wikipedia.org/wiki/Defense_Advanced_Research_Projects_Agencyhttp://en.wikipedia.org/wiki/Motorola_6809http://en.wikipedia.org/wiki/Compilerhttp://en.wikipedia.org/wiki/James_Cordyhttp://en.wikipedia.org/wiki/University_of_Torontohttp://en.wikipedia.org/wiki/Ric_Holthttp://en.wikipedia.org/wiki/Xerox_PARChttp://en.wikipedia.org/wiki/Butler_Lampsonhttp://en.wikipedia.org/wiki/Formal_verificationhttp://en.wikipedia.org/wiki/Category:Programming_languages_created_in_the_1970shttp://en.wikipedia.org/wiki/Category:Procedural_programming_languageshttp://en.wikipedia.org/wiki/Turing_(programming_language)http://en.wikipedia.org/wiki/Concurrent_Euclid_(programming_language)http://en.wikipedia.org/wiki/Mesa_(programming_language)http://en.wikipedia.org/wiki/Pascal_(programming_language)http://en.wikipedia.org/wiki/Static_typinghttp://en.wikipedia.org/wiki/Strong_typinghttp://en.wikipedia.org/wiki/Type_systemhttp://en.wikipedia.org/wiki/James_Cordyhttp://en.wikipedia.org/wiki/Ric_Holthttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Xerox_PARChttp://en.wikipedia.org/wiki/Butler_Lampsonhttp://en.wikipedia.org/wiki/Functional_programminghttp://en.wikipedia.org/wiki/Imperative_programminghttp://en.wikipedia.org/wiki/Structured_programminghttp://en.wikipedia.org/wiki/Multi-paradigm_programming_languagehttp://en.wikipedia.org/wiki/Programming_paradigm