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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
“Special Issue: Program Testing” (guest editor: E.F. Miller, Jr.), Computer, Vol. 11, No. 4, 1978.
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.
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.
Boyd, D. L.; Pizzarello, A., “Introduction to the WELLMADE Design Methodology”, IEEE Trans, on Software Engineering, Vol. 4, No. 4, 1978.
Spitzen, J. M.; Levitt, K. N.; Robinson, L., “An Example of Hierarchical Design and Proof”, Comm of the ACM, Vol. 21, No. 12, 1978.
Stoy, J. E., “Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory”, The MIT Press, Cambridge, Massachusetts, 1977.
Wegner, P., “The Vienna Definition Language”, Computing Surveys, Vol. 4, No. 1, 1972.
Van Wijngaarden, A., et.al., “Revised Report on the Algorithmic Language ALGOL 68”, Acta Informatica, No. 5, 1975.
Church, A., “The Calculi of Lambda — Conversion”, Annals of Mathematical Studies, Vol. 6, Princeton University Press, 1951.
Floyd, R. W., “Assigning Meanings to Programs”, Proc. Symposium on Applied Mathematics, American Mathematical Society, Vol. 19, 1967.
Euclid, Elements.
Gödel, K., “Über formal unentscheidbare Sätze der Prinzipia Mathematica und verwandter Systeme I”, Monatsheft für Mathematik und Physik, Vol. 38, 1931.
Kolata, Gina Bari, The Four-Color Conjecture: A Computer-Aided Proof, Research News, Science, Vol. 193, 13. August, 1967.
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.
Elspas, B.; Levitt, Kn. N.; Shostak, R. E.; Spitzen, J. M., “In Support of Program Verification”, unpublished manuscript.
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.
Liskov, B. H.; Zilles, S., “Programming with Abstract Data Types”, SIGPLAN Notices, Vol. 9, No. 4, 1974.
Hoare, C. A. R., “An Axiomatic Approach to Computer Programming”, Comm. of the ACM, Vol. 12, No. 10, 1969.
Knuth, D. E., “Structured Programming with Goto Statements”, Computing Surveys, Vol. 6, No. 4, 1974.
Darringer, J. A.; King, J. C., “Application of Symbolic Execution to Program Testing”, Computer, Vol. 11, No. 4, 1978.
Milner, R., “An Algebraic Definition of Simulation Between Programs”, Proc. 2nd Int. Joint Conf. on Artificial Intelligence, London, 1971.
Manna, Z., “The Correctness of Programs”, Journal of Computer and System Sciences, Vol. 3, No. 2, 1969.
Dijkstra, E. W., “A Discipline of Programming”, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1976.
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.
Manna, Z., Pnueli, “Axiomatic Approach to Total Correctness of Programs”, ACTA Informatica, Vol. 3, 1974.
Wegbreit, B., “Constructive Methods in Program Verification”, IEEE Trans. on Software Engineering, Vol. SE-3, No. 2, May, 1977.
Flon, L., “On the Design and Verification of Operating Systems”, Ph. D. Ghesis, Department of Computer Science, Carnegie-Mellon University, 1977.
Hanson, P. B., “The Architecture of Concurrent Programs”, Prentice Hall, Inc., Englewood Cliffs, NJ, 1977.
Flon, L.; Habermann, A. N., “Towards the Construction of Verifiable Software Systems”, SIGPLAN Notices, Vol. 8, No. 2, 1976.
Owicki, S., “Axiomatic Proof Techniques for Parallel Programs”, Ph. D. Thesis, Department of Computer Science, Cornell University, 1975.
Howard, J. H., “Proving Monitors”, Comm. of the ACM, Vol. 19, No. 5, 1976.
Saxena, A. R., “A Verified Specification of a Hierarchical Operating System”, Ph. D. Thesis, Department of Computer Science, Standford University, 1976.
Owicki, S.; Gries, D., “Verifying Properties of Parallel Programs: An Axiomatic Approach”, Comm. of the ACM, Vol. 19, No. 5, 1976.
Franta, W. R., “The Process View of Simulation”, Elsevier, North-Holland, 1977.
Owicki, S.; Gries, D., “An Axiomatic Proof Technique for Parallel Programs”, ACTA Informatica, Vol. 6, 1976.
Clint, M.; Moare, C. A. R., “Program Proving: Jumps and Functions”, ACTA Informatica, Vol. 1, 1972.
Laver, H. C., “Correctness in Operating Systems”, Ph. D. Thesis, Department of Computer Science, Carnegie-Mellon University, 1973.
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.
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.
Howden, W. E., “Methodology for Generation of Program Test Data”, IEEE Trans. on Software Engineering, Vol. SE-2, September, 1976.
Flon, L.; Suzuki, N., “Consistent and Complete Proof Rules for the Total Correctness of Parallel Programs”.
Francez, N.; Pnueli, A., “A Proof Method for Cyclic Programs”, ACTA Informatica, Vol. 9, 1978.
von Neumann, J., Collected Work, 5, Macmillan, New York, 1963, pp. 91–99.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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