Notes on the design of Euclid

  • Authors:
  • G. J. Popek;J. J. Horning;B. W. Lampson;J. G. Mitchell;R. L. London

  • Affiliations:
  • UCLA Computer Science Department, Los Angeles, California;Computer Systems Research Group, University of Toronto, Toronto, Canada;Xerox Palo Alto Research, Palo Alto, California;Xerox Palo Alto Research, Palo Alto, California;USC Information Sciences Institute, Marina del Rey, California

  • Venue:
  • Proceedings of an ACM conference on Language design for reliable software
  • Year:
  • 1977

Quantified Score

Hi-index 0.03

Visualization

Abstract

Euclid is a language for writing system programs that are to be verified. We believe that verification and reliability are closely related, because if it is hard to reason about programs using a language feature, it will be difficult to write programs that use it properly. This paper discusses a number of issues in the design of Euclid, including such topics as the scope of names, aliasing, modules, type-checking, and the confinement of machine dependencies; it gives some of the reasons for our expectation that programming in Euclid will be more reliable (and will produce more reliable programs) than programming in Pascal, on which Euclid is based.