Skip to main content

Dijkstra, Hoare and Parnas

  • Chapter
  • First Online:
Concise Guide to Formal Methods

Part of the book series: Undergraduate Topics in Computer Science ((UTICS))

  • 2515 Accesses

Abstract

This Chapter focuses on the approach of Dijkstra, Hoare and Parnas. We discuss the calculus of weakest preconditions developed by Dijkstra and the axiomatic semantics of programming languages developed by Hoare. We then discuss the classical engineering approach of Parnas and his tabular expressions.

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

Access this chapter

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 EPUB and 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

Institutional subscriptions

Notes

  1. 1.

    Software testing is an essential part of the software process, and various types of testing are described in [ORg:02]. Modern software testing is quite rigorous and can provide a high degree of confidence that the software is fit for use. It cannot, of course, build quality in; rather, it can provide confidence that quality has been built in. The analysis of the defects identified during testing may be useful in improving the software development process.

  2. 2.

    Parnas argues that the term engineer’ should be used only in its classical sense as a person who is qualified and educated in science and mathematics to design and inspect products. The evolution of language that has led to a debasement of the term ‘engineer’ with various groups who do not have the appropriate background to be considered ‘engineers’ in the classical sense applying this title.

  3. 3.

    Many of these examples are considered “toy programs” when compared to real-world industrial software development, but they illustrate the concepts involved in developing software rigorously using the weakest precondition calculus.

Reference

  1. G. O’ Regan, Mathematical Approaches to Software Quality, vol 26 (Springer, London)

    Google Scholar 

  2. C. Jones, Systematic Software Development using VDM (Prentice Hall International, 1986)

    Google Scholar 

  3. E.W. Dijkstra, A Disciple of Programming (Prentice Hall, Englewood Cliffs, NJ, 1976)

    Google Scholar 

  4. D. Gries, The Science of Programming (Springer, Berlin, 1981)

    Google Scholar 

  5. R. Floyd, Assigning Meanings to Programs, in Proc. Symp. Appl. Math. (19), 19–32 (1967)

    Google Scholar 

  6. C.A.R. Hoare, An axiomatic basis for computer programming. Commun. ACM 12(10), 576–585 (1969)

    Google Scholar 

  7. D. Hoffman, D.L. Parnas, in Software Fundamentals, ed. by D. Weiss. Collected Papers by D.L. Parnas (Addison Wesley, Reading, 21)

    Google Scholar 

  8. R. Janicki, On a Formal Semantics of Tabular Expressions. Technical Report CRL 355. Communications Research Laboratory, McMaster University, Ontario (1997)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gerard O’Regan .

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this chapter

Cite this chapter

O’Regan, G. (2017). Dijkstra, Hoare and Parnas. In: Concise Guide to Formal Methods. Undergraduate Topics in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-64021-1_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-64021-1_12

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-64020-4

  • Online ISBN: 978-3-319-64021-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics