H ? « »

Language peer sets for Euclid:
Canada
Canada/1977
Designed 1977
1970s languages
Fourth generation
High Cold War

Euclid(ID:756/euc001)

Verifiable system software language  

alternate simple view
Country: Canada
Designed 1977
Published: 1977


(named for the Greek geometer, fl ca 300 BC.) A Pascal descendant for development of verifiable system software. No goto, no side effects, no global assignments, no functional arguments, no nested procedures, no floats, no enumeration types. Pointers are treated as indices of special arrays called collections. To prevent aliasing, Euclid forbids any overlap in the list of actual parameters of a procedure. Each procedure gives an imports list, and the compiler determines the identifiers that are implicitly imported. Iterators.

The Euclid Project. Holt et al, University of Toronto, (1977-80). Project supported by Canadian and USA governments and by IBM to build a compiler for a systems programming language with verification facilities. Used at I.P. Sharp Associates (Toronto), MITRE Corp. (Boston) and various institutes for system programming and research in secure software.


People:
Structures:
Related languages
Pascal Euclid   Evolution of
Euclid Capsule   Incorporated some features of
Euclid Cedar   Evolution of
Euclid EV2   Evolution of
Euclid Ottawa Euclid   Dialect of
Euclid Pascal*   Influence
Euclid PLAIN   Influence
Euclid Real-Time Euclid   Augmentation of
Euclid Simple Euclid   Subset
Euclid Small Euclid   Subset
Euclid Theseus   for verifiability complete Extension of
Euclid Toronto Euclid   Dialect of
Euclid ZENO   Extension of

References:
  • Horning, J. J. (1976) Horning, J. J. "Some desirable properties of data abstraction facilities" pp60-62 Extract: Euclid Modules Extract: Modules as Abstraction Mechanisms
          in [SIGPLAN] (1976) SIGPLAN Notices 11(02) February 1976 also Proceedings of the SIGPLAN '76 Conference on Data: Abstraction, Definition and Structure, Salt Lake City, Utah, USA, March 22-24, 1976
  • (1976) The Higher Order Language Working Group (HOLWG) Working Paper on 23 exisitng programming languages
          in [SIGPLAN] (1976) SIGPLAN Notices 11(02) February 1976 also Proceedings of the SIGPLAN '76 Conference on Data: Abstraction, Definition and Structure, Salt Lake City, Utah, USA, March 22-24, 1976
  • G. J. Popek, J. J. Horning, B. W. Lampson, J. G. M (1977) G. J. Popek, J. J. Horning, B. W. Lampson, J. G. Mitchell, R. L. London "Notes on the design of Euclid" pp11-18 Abstract DOI
          in [ACM] (1977) Proceedings of an ACM conference on Language design for reliable software 1977, Raleigh, North Carolina
  • Lampson, B.W.; Horning, J.J.; London, R.L.; Mitche (1977) Lampson, B.W.; Horning, J.J.; London, R.L.; Mitchell, J.G.; Popek, G.J. "Report on the programming language Euclid"
          in [SIGPLAN] (1977) SIGPLAN Notices 12(02) February 1977
  • Aseltine, Edward G. and Spencer, Henry (1978) Aseltine, Edward G. and Spencer, Henry "Isolation of machine dependencies in Euclid" pp43-48 Abstract DOI
          in [SIGPLAN] (1978) SIGPLAN Notices 13(03) March 1978
  • Barnard, D. T., W. D. Elliott, et al. (1978) Barnard, D. T., W. D. Elliott, et al. "Euclid and Modula." Abstract
          in [SIGPLAN] (1978) SIGPLAN Notices 13(03) March 1978
  • Chang, Ernest; Kaden, Neil E.; Elliott; W. David (1978) Chang, Ernest; Kaden, Neil E.; Elliott; W. David "Abstract data types in Euclid" pp34-42 Abstract DOI Extract: Introduction
          in [SIGPLAN] (1978) SIGPLAN Notices 13(03) March 1978
  • Elliott, W. David (1978) Elliott, W. David "Index to the Euclid report" pp85-89 Abstract DOI
          in [SIGPLAN] (1978) SIGPLAN Notices 13(03) March 1978
  • Rivieres, Jim des and Spencer, Henry (1978) Rivieres, Jim des and Spencer, Henry "Readability and writability in Euclid" pp49-56 Abstract DOI
          in [SIGPLAN] (1978) SIGPLAN Notices 13(03) March 1978
  • Venema, Ted and Rivieres, Jim des (1978) Venema, Ted and Rivieres, Jim des "Euclid and PASCAL" pp57-69 Abstract DOI Extract: Euclid
          in [SIGPLAN] (1978) SIGPLAN Notices 13(03) March 1978
  • Holt, Richard C. and Wortman, David B. (1979) Holt, Richard C. and Wortman, David B. "A model for implementing Euclid modules and type templates", p8-12
          in [SIGPLAN] (1979) Proceedings of the SIGPLAN symposium on Compiler construction, August 06-10, 1979, Denver, Colorado, United States
  • London, Ralph L. et al (1979) London, Ralph L. et al "Proof Rules for the Programming Language Euclid" pp1-26
          in (1978) Acta Informatica 10(1) August 4, 1978
  • Schwartz, Richard L. (1979) Schwartz, Richard L. "Aliasing among pointers in EUCLID" Inf. Process. Lett. 9, 2 (Aug. 1979), pp76-79.
          in (1978) Acta Informatica 10(1) August 4, 1978
  • Wasserman, A. I. (1979) Wasserman, A. I. "Testing and Verification Aspects of Pascal-Like Languages"
          in (1979) Computer Languages 4(3-4)
  • Pagan, F. (1980) Pagan, F. G. review of Schwartz 1980 (Euclid) Abstract
          in (1980) ACM Computing Reviews 21(01) January 1980
  • Wand, I. C. (1980) Wand, I. C. "Dynamic resource allocation and supervision with the programming language MODULA" Extract: Modula Extract: Modula vs GYVE vs EUCLID
          in (1980) The Computer Journal 23(2) 1980
  • Wasserman, A. (1981) Wasserman, A. "Revised Report on the Programming Language PLAIN",
          in [SIGPLAN] (1981) SIGPLAN Notices 16(05) May 1981
  • Wortman, David B.; Cordy, James R. (1981) Wortman, David B.; Cordy, James R. "Early experiences with Euclid" pp27-32
          in [Proceedings] (1981) Proceedings of the 5th International Conference on Software Engineering 1981, March 09-12, 1981, San Diego, California, United States
  • Holt, Richard C.; Wortman, David B. (1982) Holt, Richard C.; Wortman, David B. "A Model for Implementing EUCLID Modules and Prototypes" pp552-562
          in (1982) TOPLAS 4(4) October 1982
  • R.P. Cook and T.J. LeBlanc (1983) R.P. Cook and T.J. LeBlanc "A Symbol Table Abstraction to Implement Languages with Explicit Scope Control" from IEEE Transactions on Software Engineering, January 1983
          in (1982) TOPLAS 4(4) October 1982
    Resources
    • Programming languages and compilers by Butler Lampson
      Euclid (1976-79): With Horning, Mitchell, London and Popek I designed this language for writing verifiable system software [17, 18, 20]. It has been implemented at the University of Toronto, and has had several descendants (Concurrent Euclid, Turing, and less directly, Ada).


    Search in: Google  Google scholar  World Cat  Yahoo  Overture  DBLP  Monash bib  NZ  IEEE  ACM portal  CiteSeer  CSB  ncstrl  jstor  Bookfinder