skip to main content
article
Free Access

Logical analysis of programs

Published:01 April 1976Publication History
Skip Abstract Section

Abstract

Most present systems for verification of computer programs are incomplete in that intermediate inductive assertions must be provided manually by the user, termination is not proven, and incorrect programs are not treated. As a unified solution to these problems, this paper suggests conducting a logical analysis of programs by using invariants which express what is actually occurring in the program.

The first part of the paper is devoted to techniques for the automatic generation of invariants. The second part provides criteria for using the invariants to check simultaneously for correctness (including termination) or incorrectness. A third part examines the implications of the approach for the automatic diagnosis and correction of logical errors.

References

  1. 1 Allen, F.E. A basis for program optimization. Proc. IFIP Cong. 71, Vol. 1, North-Holland Pub. Co., Amsterdam, 1971, pp. 385-390.Google ScholarGoogle Scholar
  2. 2 Cooper, D.C. Programs for mechanical program verification. Machine Intelligence 6, American Elsevier, New York, 1971, pp. 43-59.Google ScholarGoogle Scholar
  3. 3 Caplain, M. Finding invariant assertion for proving programs. Proc. Int. Conf. on Reliable Software, Los Angeles, Calif., April 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Dahl, O.J., Dijkstra, E.W., and Hoare, C.A.R. Structured Programming. Academic Press, New York, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Deutsch, L.P. An interactive program verifier. Ph.D. Th., Dept. of Computer Sci., U. of California, Berkeley, June 1973.Google ScholarGoogle Scholar
  6. 6 Elspas, B., Levitt, K.N., and Waldinger, R.J. An interactive system for the verification of computer programs. Research Rep., SRI, Menlo Park, Calif., Sept. 1973.Google ScholarGoogle Scholar
  7. 7 Elspas, B. The semiautomatic generation of inductive assertions for proving program correctness. Research Rep., SRI, Menlo Park, Calif., July 1974.Google ScholarGoogle Scholar
  8. 8 Floyd, R.W. Assig.ning meaning to programs. Proc. Symp. in Appl. Math., Vol. 19, J.T. Schwartz (Ed.), Amer. Math. Soc., Providence, R.I., 1967, pp. 19-32.Google ScholarGoogle Scholar
  9. 9 Floyd, R.W. Towards interactive design of correct programs. Proc. IFIP Cong., Vol. 1, North-Holland Pub. Co., Amsterdam, 1971, pp. 7-10.Google ScholarGoogle Scholar
  10. 10 German, S. M. A program verifier that generates inductwe assertions. B.A. Th., Harvard U., May 1974.Google ScholarGoogle Scholar
  11. 11 Greff, I., and Waldmger, R. A more mechanical heuristic approach to program verification. Proc. Int. Symp. on Programming, Paris, April 1974, pp. 83-90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Hoare, C.A.R. An axiomatic basis of computer programming. Comm. ACM 12, 10 (Oct. 1969), 576-580, 583. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Hoare, C.A.R. Proof of a program: FIND. Comm. ACM 14, 1 (Jan. 1971), 39-45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Katz, S.M., and Manna, Z. A heuristic approach to program verification. Proc. 3rd Int. Conf. on Artificial Intelligence, Stanford U., Aug. 1973, pp. 500-512.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 Katz, S.M., and Manna, Z. Towards automatic debugging of programs. Proc. Int. Conf. on Reliable Software, Los Angeles, Calif., April 1975, pp. 143-155. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 Katz, S.M., and Manna, Z. A closer look at termination. Acta InJormatica, to appear.Google ScholarGoogle Scholar
  17. 17 King, J. A program verifier. Ph.D. Th., Dep. of Computer Sci., Carnegie-Mellon U., Pittsburgh, Pa., 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 King, J. A verifying compiler. In Debugging Techniques in Large Systems, Randall Rustin (Ed.), Prentice-Hall, Englewood Cliffs, N.J. 1970, pp. 17-39.Google ScholarGoogle Scholar
  19. 19 Knuth, D.E. The Art of Computer Programming, Vol. I, Fundamental Algorithms. Addison-Wesley, Reading, Mass. 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 Manna, Z. The correctness of programs. J. Computer and System Sci., 3, 2 (May 1969), 119-127.Google ScholarGoogle Scholar
  21. 21 Manna, Z. Mathematical Theory of Computation. McGraw- Hill, New York, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 Maurer, W.D. The theory and practice of algorithm verification. ERL-M315, U. of California, Berkeley, Aug. 1973.Google ScholarGoogle Scholar
  23. 23 Misra, J. Relations uniformly conserved by a loop. Proc. Int. Symp. on Proving and Improving Programs, Arc et Senans, France, July 1975, pp. 71-80.Google ScholarGoogle Scholar
  24. 24 Moriconi, M.S. Towards the interactive synthesis of assertions. Research Rep., U. of Texas at Austin, Oct. 1974.Google ScholarGoogle Scholar
  25. 25 Sussman, G.J. A computational model of skill acquisition. Ph.D. Th., MIT, Cambridge, Mass., Aug. 1973.Google ScholarGoogle Scholar
  26. 26 Sites, R.L. Proving that computer programs terminate cleanly. Ph.D. Th., Dep. of Computer Science, Stanford U., STAN-CS-74- 418, May 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27 Waldinger, R. and Levitt, K.N. Reasoning about programs. Artificial Intelligence 5 (1974), 235-316.Google ScholarGoogle ScholarCross RefCross Ref
  28. 28 Wegbreit, B. The synthesis of loop predicates. Comm. ACM 17, 2 (Feb. 1974), 102-112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29 Wensley, J.H. A class of non-analytical interactive processes. Computer J., 1 (1958), 163-167.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Logical analysis of programs
    Index terms have been assigned to the content through auto-classification.

    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 Communications of the ACM
      Communications of the ACM  Volume 19, Issue 4
      April 1976
      38 pages
      ISSN:0001-0782
      EISSN:1557-7317
      DOI:10.1145/360032
      Issue’s Table of Contents

      Copyright © 1976 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 1 April 1976

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader