Skip to main content

Part of the book series: NATO Advanced Study Institutes Series ((ASIC,volume 91))

Abstract

The axiomatic method of Floyd [1] and Hoare [2] has become the most popular formal method for reasoning about programs. Axiomatic semantics, more or less complete, exist for various programming languages [3, 4] and the method is widely used in deriving and verifying programs. Some areas of programming, however, have thus far defied a general axiomatic treatment. One such area is that of pointers and linked data structures, which will be the subject of this and the following two papers. The goal is to make manageable the formal verification of list-processing programs, using axiomatic semantics. The present work does not claim to be complete, but is more systematic than previous treatments [5, 6, 7, 8], and is more general. These advantages accrue from the use of Dijkstra’s “weakest preconditions” [9] rather than Hoare’s “sufficient preconditions”.

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

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Floyd, R.W.: Assigning Meanings to Programs, Proc. Symp. in Applied Mathematics, Vol. 19, J.T. Schwartz (ed.), American Mathematical Society, 1967, pp. 19–32.

    Google Scholar 

  2. Hoare, C.A.R.: An Axiomatic Basis for Computer Programming, Comm. ACM, Vol. 12, No. 10, October 1969, pp. 576–580,

    Article  MATH  Google Scholar 

  3. Hoare, C.A.R.: An Axiomatic Basis for Computer Programming, Comm. ACM, Vol. 12, No. 10, October 1969, pp. 583.

    Article  Google Scholar 

  4. Hoare, C.A.R., and Wirth, N.: An Axiomatic Definition of the Programming Language Pascal, Acta Informatica, Vol. 2, No. 4, 1973, pp. 335–355.

    Article  Google Scholar 

  5. London, R.L., Guttag, J.V., Horning, J.J., Lampson, B.W., Mitchell, J.G., and Popek, G.J.: Proof Rules for the Programming Language Euclid, Acta Informatica, Vol. 10, 1978, pp. 1–26.

    Article  MATH  Google Scholar 

  6. Burstall, R.M.: Some Techniques for Proving Correctness of Programs which Alter Data Structures, Machine Intelligence 7, D. Michie (ed.)., American Elsevier, New York, 1972, pp. 23–50.

    Google Scholar 

  7. Kowaltowski, T.: Data Structures and Correctness of Programs, Jrnl. ACM, Vol. 26, No. 2, 1979, pp. 283–301.

    Article  MathSciNet  MATH  Google Scholar 

  8. Laventhal, M.S.: Verifying Programs which Operate on Data Structures, Proc. Int. Conf. on Reliable Software, 1975, pp. 420–426.

    Google Scholar 

  9. Luckham, D.C., and Suzuki, N.: Verification of Array, Record, and Pointer Operations in Pascal, ACM Trans. Programming Languages and Systems, Vol. 1, No. 2, 1979, pp. 226–244.

    Article  MATH  Google Scholar 

  10. Dijkstra, E.W.: A Discipline of Programming, Prentice-Hall, Englewood Cliffs, N.J., 1976.

    MATH  Google Scholar 

  11. Gries, D.: The Multiple Assignment Statement, IEEE Trans. Software Engineering, Vol. SE-4, No. 2, 1978, pp. 89–93.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1982 D. Reidel Publishing Company

About this chapter

Cite this chapter

Morris, J.M. (1982). A General Axiom of Assignment. In: Broy, M., Schmidt, G. (eds) Theoretical Foundations of Programming Methodology. NATO Advanced Study Institutes Series, vol 91. Springer, Dordrecht. https://doi.org/10.1007/978-94-009-7893-5_3

Download citation

  • DOI: https://doi.org/10.1007/978-94-009-7893-5_3

  • Publisher Name: Springer, Dordrecht

  • Print ISBN: 978-90-277-1462-6

  • Online ISBN: 978-94-009-7893-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics