Skip to main content

Correctness of Software — An Overview

  • Conference paper
The Use of Formal Specification of Software

Part of the book series: Informatik-Fachberichte ((INFORMATIK,volume 36))

Abstract

During the late sixties and early seventies it became obvious that the design, coding, testing, and maintenance of large programs had become an unmanagable endeavor. Such large programs, particularly operating systems, were prone to unexpected collapse, causing severe outages of service to a community of users dependent upon them for the preparation and execution of their application programs. Large application programs too, e. g. compilers, sort-merge packages, etc. suffered from the same propensities. The root cause of the deficiencies exhibited by these programs was easily attributed to the fact that a sound engineering discipline did not exist (or was not used) to guide their development. More specifically a discipline did not exist (or was not followed) to guide program design, and the verification of the correctness of implemented programs.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. “Special Issue: Program Testing” (guest editor: E.F. Miller, Jr.), Computer, Vol. 11, No. 4, 1978.

    Google Scholar 

  2. Elspas, B.; Levitt, K. N; Waldinger, R. J.; Waksman, A., “An Assessment of Techniques for Proving Program Correctness”, Computing Surveys, Vol. 4, No. 2, 1972.

    Google Scholar 

  3. Popek, G. J.; Farber, D. A., “A Model for Verification of Data Security in Operating Systems”, Comm. of the ACM, Vol. 21, No. 9, 1978.

    Google Scholar 

  4. Boyd, D. L.; Pizzarello, A., “Introduction to the WELLMADE Design Methodology”, IEEE Trans, on Software Engineering, Vol. 4, No. 4, 1978.

    Google Scholar 

  5. Spitzen, J. M.; Levitt, K. N.; Robinson, L., “An Example of Hierarchical Design and Proof”, Comm of the ACM, Vol. 21, No. 12, 1978.

    Google Scholar 

  6. Stoy, J. E., “Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory”, The MIT Press, Cambridge, Massachusetts, 1977.

    Google Scholar 

  7. Wegner, P., “The Vienna Definition Language”, Computing Surveys, Vol. 4, No. 1, 1972.

    Google Scholar 

  8. Van Wijngaarden, A., et.al., “Revised Report on the Algorithmic Language ALGOL 68”, Acta Informatica, No. 5, 1975.

    Google Scholar 

  9. Church, A., “The Calculi of Lambda — Conversion”, Annals of Mathematical Studies, Vol. 6, Princeton University Press, 1951.

    Google Scholar 

  10. Floyd, R. W., “Assigning Meanings to Programs”, Proc. Symposium on Applied Mathematics, American Mathematical Society, Vol. 19, 1967.

    Google Scholar 

  11. Euclid, Elements.

    Google Scholar 

  12. Gödel, K., “Über formal unentscheidbare Sätze der Prinzipia Mathematica und verwandter Systeme I”, Monatsheft für Mathematik und Physik, Vol. 38, 1931.

    Google Scholar 

  13. Kolata, Gina Bari, The Four-Color Conjecture: A Computer-Aided Proof, Research News, Science, Vol. 193, 13. August, 1967.

    Google Scholar 

  14. DeMillo, R. A.; Lipton, R. J.; Perils, A. J., “Social Processes and Proofs of Theorems and Programs”, Conf. Record Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, 1977, also CAM, 22, 5, May 1979.

    Google Scholar 

  15. Elspas, B.; Levitt, Kn. N.; Shostak, R. E.; Spitzen, J. M., “In Support of Program Verification”, unpublished manuscript.

    Google Scholar 

  16. Clarke, E. M., Jr., “Programming Language Constructs for which it is Impossible to Obtain Good Hoare-like Axiom Systems”, Proc. 4th Symposium on Principles of Programming Languages, Jan., 1977.

    Google Scholar 

  17. Liskov, B. H.; Zilles, S., “Programming with Abstract Data Types”, SIGPLAN Notices, Vol. 9, No. 4, 1974.

    Google Scholar 

  18. Hoare, C. A. R., “An Axiomatic Approach to Computer Programming”, Comm. of the ACM, Vol. 12, No. 10, 1969.

    Google Scholar 

  19. Knuth, D. E., “Structured Programming with Goto Statements”, Computing Surveys, Vol. 6, No. 4, 1974.

    Google Scholar 

  20. Darringer, J. A.; King, J. C., “Application of Symbolic Execution to Program Testing”, Computer, Vol. 11, No. 4, 1978.

    Google Scholar 

  21. Milner, R., “An Algebraic Definition of Simulation Between Programs”, Proc. 2nd Int. Joint Conf. on Artificial Intelligence, London, 1971.

    Google Scholar 

  22. Manna, Z., “The Correctness of Programs”, Journal of Computer and System Sciences, Vol. 3, No. 2, 1969.

    Google Scholar 

  23. Dijkstra, E. W., “A Discipline of Programming”, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1976.

    MATH  Google Scholar 

  24. Gries, D., “An Introduction to Current Ideas on the Derivation of Correctness Proofs and Correct Programs”, IEEE Trans. On Software Engineering, Vol. 2, No. 4, 1976.

    Google Scholar 

  25. Manna, Z., Pnueli, “Axiomatic Approach to Total Correctness of Programs”, ACTA Informatica, Vol. 3, 1974.

    Google Scholar 

  26. Wegbreit, B., “Constructive Methods in Program Verification”, IEEE Trans. on Software Engineering, Vol. SE-3, No. 2, May, 1977.

    Google Scholar 

  27. Flon, L., “On the Design and Verification of Operating Systems”, Ph. D. Ghesis, Department of Computer Science, Carnegie-Mellon University, 1977.

    Google Scholar 

  28. Hanson, P. B., “The Architecture of Concurrent Programs”, Prentice Hall, Inc., Englewood Cliffs, NJ, 1977.

    Google Scholar 

  29. Flon, L.; Habermann, A. N., “Towards the Construction of Verifiable Software Systems”, SIGPLAN Notices, Vol. 8, No. 2, 1976.

    Google Scholar 

  30. Owicki, S., “Axiomatic Proof Techniques for Parallel Programs”, Ph. D. Thesis, Department of Computer Science, Cornell University, 1975.

    Google Scholar 

  31. Howard, J. H., “Proving Monitors”, Comm. of the ACM, Vol. 19, No. 5, 1976.

    Google Scholar 

  32. Saxena, A. R., “A Verified Specification of a Hierarchical Operating System”, Ph. D. Thesis, Department of Computer Science, Standford University, 1976.

    Google Scholar 

  33. Owicki, S.; Gries, D., “Verifying Properties of Parallel Programs: An Axiomatic Approach”, Comm. of the ACM, Vol. 19, No. 5, 1976.

    Google Scholar 

  34. Franta, W. R., “The Process View of Simulation”, Elsevier, North-Holland, 1977.

    MATH  Google Scholar 

  35. Owicki, S.; Gries, D., “An Axiomatic Proof Technique for Parallel Programs”, ACTA Informatica, Vol. 6, 1976.

    Google Scholar 

  36. Clint, M.; Moare, C. A. R., “Program Proving: Jumps and Functions”, ACTA Informatica, Vol. 1, 1972.

    Google Scholar 

  37. Laver, H. C., “Correctness in Operating Systems”, Ph. D. Thesis, Department of Computer Science, Carnegie-Mellon University, 1973.

    Google Scholar 

  38. Boehm, W. B.; McClean, R. K.; Urfreg, D. B., “Some Experience with Automated Aids to the Design of Large Scale Reliable Software”, IEEE Transactions on Software Engineering, Vol. SE-1, No. 1, March 1975.

    Google Scholar 

  39. Rubey, R. J.; Dana, J. A.; Biche, P. W., “Quantitative Aspects of Software Validation”, IEEE Transactions on Software Engineering, Vol. SE-1, No. 2, June 1975.

    Google Scholar 

  40. Howden, W. E., “Methodology for Generation of Program Test Data”, IEEE Trans. on Software Engineering, Vol. SE-2, September, 1976.

    Google Scholar 

  41. Flon, L.; Suzuki, N., “Consistent and Complete Proof Rules for the Total Correctness of Parallel Programs”.

    Google Scholar 

  42. Francez, N.; Pnueli, A., “A Proof Method for Cyclic Programs”, ACTA Informatica, Vol. 9, 1978.

    Google Scholar 

  43. von Neumann, J., Collected Work, 5, Macmillan, New York, 1963, pp. 91–99.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1980 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berg, H.K., Franta, W.R., Moher, T.G. (1980). Correctness of Software — An Overview. In: Berg, H.K., Giloi, W.K. (eds) The Use of Formal Specification of Software. Informatik-Fachberichte, vol 36. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-67881-3_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-67881-3_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-10442-1

  • Online ISBN: 978-3-642-67881-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics