skip to main content
article

Methods for teaching program verification

Published:01 January 1975Publication History
Skip Abstract Section

Abstract

“Program verification” is generally defined as the process of ascertaining and demonstrating that a program is correct, i.e., that a program satisfies a given set of specifications. The most common method of verifying a program is by testing, the process of executing a program for a set of selected inputs and inferring from the results of those executions that the program is correct for all possible inputs.

In practice today, a few programs are being proved correct but the most common method of program verification is still testing. Both methods are unreliable in different ways, but when combined, their complementary relationship can provide a high degree of assurance that programs are correct. The purpose of this paper is (1) to review the state of the art of these two approaches to program verification and the relationship between them, and (2) to suggest a number of ways in which program verification can be introduced into the computer science curriculum.

References

  1. 1 Burstall, R. M., "Program Proving as Simulation plus a little Induction", IFIPS 74 Proceedings, pp. 308-312.Google ScholarGoogle Scholar
  2. 2 Conway, R. W. and Gries, D., An Introduction to Programming, Winthrop, 1973.Google ScholarGoogle Scholar
  3. 3 Dahl, O. J., Dijkstra, E. W. and Hoare, C. A. R., Structured Programming, Academic, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Davis, P. J., "Fidelity in Mathematical Discourse", Am. Math. Mo. 79, 3, (March, 1972).Google ScholarGoogle ScholarCross RefCross Ref
  5. 5 Elspas, B., et. al., An Assessment of Techniques for Proving Program Correctness. Computing Surveys 4, 2 (June, 1972). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Floyd, R. W., Assigning Meanings to Programs. Symposium in Appl. Math., Vol. 19, 1967.Google ScholarGoogle Scholar
  7. 7 Goodenough, J. B. and Gerhart, S. L., "Toward a Theory of Test Data Selection", to be presented at Intl. Conf. on Software Reliability, April, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 Gordon, G., System Simulation, Prentice-Hall, 1969 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Hetzel, W. C. (Ed), Program Test Methods, Prentice-Hall, 1972.Google ScholarGoogle Scholar
  10. 10 Hoare, C. A. R., An Axiomatic Basis for Computer Programming, CACM 12, 10 (Oct., 1969). Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 Knuth, D. E., The Art of Computer Programming, Vol. I., Addiston-Wesley, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Manna, Z., Ness, S. and Vuillemin. Inductive Methods for Proving Program Correctness', Proc. of an ACM Conferences on Proving Correctness of Programs, Jan. 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Naur, P., Programming by Action Clusters, BIT 9, 3 (1969).Google ScholarGoogle ScholarCross RefCross Ref
  14. 14 Naur, P., Proof of Algorithms by General Snapshots, BIT 6 (1966).Google ScholarGoogle Scholar
  15. 15 Sites, R., ALGOL W reference manual. Stanford Report STAN-CS-71-230, February, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 Wirth, N., Systematic Programming. Prentice-Hall, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Methods for teaching program verification

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGCSE Bulletin
                ACM SIGCSE Bulletin  Volume 7, Issue 1
                Proceedings of the 5th SIGCSE symposium on Computer science education
                February 1975
                209 pages
                ISSN:0097-8418
                DOI:10.1145/953064
                Issue’s Table of Contents
                • cover image ACM Conferences
                  SIGCSE '75: Proceedings of the fifth SIGCSE technical symposium on Computer science education
                  January 1975
                  221 pages
                  ISBN:9781450373982
                  DOI:10.1145/800284

                Copyright © 1975 ACM

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 January 1975

                Check for updates

                Qualifiers

                • article
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!