Skip to main content

Verification of Euclid programs

  • II. Program Verification
  • Chapter
  • First Online:
  • 239 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 69))

Abstract

The proof rules for the programming language Euclid are closely modelled on the axiomatic definition of Pascal. However, there is intended to be a much closer correspondence between the language as actually implemented and the proof rules. This has been achieved by a combination of language changes, more stringent requirements on the compiler, and modifications of the proof rules. Several novel features of Euclid were introduced specifically in response to problems and limitations of the Pascal definition.

Typical proof rules and proofs for programs using basic language constructs are very similar in Euclid and Pascal. We discuss some of these as a review of Hoare's methodology.

The proof rules for Euclid functions and procedures deviate from those for Pascal, and avoid some of their problems. We discuss the reasons for some of the changes.

Some parts of the Euclid language, such as modules and zones, were motivated by application or implementation considerations. These have been more difficult to axiomatize, and have proved to be some of the most troublesome parts of the language. We mention a few of the problem areas.

These notes should be read in conjunction with the published proof rules.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Ashcroft, E. A., M. Clint, and C. A. R. Hoare [1976]. “Remarks on ‘Program proving: Jumps and functions' by M. Clint and C. A. R. Hoare.” Acta Informatica 6, pp. 317–318.

    Article  Google Scholar 

  • Clarke, E. M. Jr. [1977]. “Programming language constructs for which it is impossible to obtain good Hoare-like axiom systems.” Conference Record, Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, pp. 10–20.

    Google Scholar 

  • Clint, M., and C. A. R. Hoare [1972]. “Program proving: Jumps and functions.” Acta Informatica 1, pp. 214–224.

    Article  Google Scholar 

  • Guttag, John V., James J. Horning, and Ralph L. London [1978]. “A proof rule for Euclid Procedures.” In Formal Description of Programming Concepts, ed. E. J. Neuhold, pp. 211–220, North-Holland, Amsterdam.

    Google Scholar 

  • Hoare, C. A. R. and N. Wirth [1973]. “An axiomatic definition of the programming language Pascal.” Acta Informatica 2, pp. 335–355.

    Article  Google Scholar 

  • Ichbiah, J. D., J. P. Rissen, and J. C. Heliard [1973]. “The two-level approach to data definition and space management in the LIS system implementation language.” SIGPLAN Notices 8, no. 9, pp. 79–81.

    Article  Google Scholar 

  • —,—, and — [1974]. “The two-level approach to data independent programming in the LIS system implementation language.” In Machine Oriented Higher Level Languages, ed. W. L. van der Poel and L. A. Maarssen, pp. 161–174, North-Holland, Amsterdam.

    Google Scholar 

  • Lampson, B. W., J. J. Horning, R. L. London, J. G. Mitchell, and G. J. Popek [1977]. “Report on the programming language Euclid.” SIGPLAN Notices 12, no. 2.

    Google Scholar 

  • London, R. L., J. V. Guttag, J. J. Horning, B. W. Lampson, J. G. Mitchell, and G. J. Popek [1978]. “Proof rules for the programming language Euclid.” Acta Informatica 10, pp. 1–26.

    Article  Google Scholar 

  • Musser, David R. [1977]. “A proof rule for functions.” University of Southern California Information Sciences Institute Technical Report ISI/RR-77-62.

    Google Scholar 

  • Parnas, D. L. [1971]. “Information distribution aspects of design methodology.” In Proc. IFIP Congress 71. pp. 339–344, North-Holland, Amsterdam.

    Google Scholar 

  • SIGPLAN [1976]. Special issue on data: abstraction, definition, and structure. SIGPLAN Notices 11.

    Google Scholar 

  • Wirth, N. [1971]. “The programming language Pascal.” Acta Informatica 1, pp. 35–63.

    Article  Google Scholar 

  • — [1977]. “Modula: A language for modular multiprogramming.” Software—Practice and Experience 7, pp. 3–35.

    MATH  Google Scholar 

  • —, and K. Jensen [1974]. Pascal—User Manual and Report, Springer-Verlag, New York.

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Friedrich L. Bauer Manfred Broy E. W. Dijkstra S. L. Gerhart D. Gries M. Griffiths J. V. Guttag J. J. Horning S. S. Owicki C. Pair H. Partsch P. Pepper M. Wirsing H. Wössner

Rights and permissions

Reprints and permissions

Copyright information

© 1979 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Horning, J.J. (1979). Verification of Euclid programs. In: Bauer, F.L., et al. Program Construction. Lecture Notes in Computer Science, vol 69. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014667

Download citation

  • DOI: https://doi.org/10.1007/BFb0014667

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-09251-3

  • Online ISBN: 978-3-540-35312-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics