ACM Home Page
Please provide us with feedback. Feedback
Logical analysis of programs
Full text PdfPdf (1.85 MB)
Source
Communications of the ACM archive
Volume 19 ,  Issue 4  (April 1976) table of contents
Pages: 188 - 206  
Year of Publication: 1976
ISSN:0001-0782
Authors
Shmuel Katz  IBM Research Center, Technion, Haifa, Israel
Zohar Manna  IBM Research Center, Technion, Haifa, Israel
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 29,   Citation Count: 30
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/360032.360048
What is a DOI?

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

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Allen, F.E. A basis for program optimization. Proc. IFIP Cong. 71, Vol. 1, North-Holland Pub. Co., Amsterdam, 1971, pp. 385-390.
 
2
Cooper, D.C. Programs for mechanical program verification. Machine Intelligence 6, American Elsevier, New York, 1971, pp. 43-59.
3
 
4
 
5
Deutsch, L.P. An interactive program verifier. Ph.D. Th., Dept. of Computer Sci., U. of California, Berkeley, June 1973.
 
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.
 
7
Elspas, B. The semiautomatic generation of inductive assertions for proving program correctness. Research Rep., SRI, Menlo Park, Calif., July 1974.
 
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.
 
9
Floyd, R.W. Towards interactive design of correct programs. Proc. IFIP Cong., Vol. 1, North-Holland Pub. Co., Amsterdam, 1971, pp. 7-10.
 
10
German, S. M. A program verifier that generates inductwe assertions. B.A. Th., Harvard U., May 1974.
 
11
12
13
 
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.
15
 
16
Katz, S.M., and Manna, Z. A closer look at termination. Acta InJormatica, to appear.
 
17
 
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.
 
19
 
20
Manna, Z. The correctness of programs. J. Computer and System Sci., 3, 2 (May 1969), 119-127.
 
21
 
22
Maurer, W.D. The theory and practice of algorithm verification. ERL-M315, U. of California, Berkeley, Aug. 1973.
 
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.
 
24
Moriconi, M.S. Towards the interactive synthesis of assertions. Research Rep., U. of Texas at Austin, Oct. 1974.
 
25
Sussman, G.J. A computational model of skill acquisition. Ph.D. Th., MIT, Cambridge, Mass., Aug. 1973.
 
26
 
27
Waldinger, R. and Levitt, K.N. Reasoning about programs. Artificial Intelligence 5 (1974), 235-316.
28
 
29
Wensley, J.H. A class of non-analytical interactive processes. Computer J., 1 (1958), 163-167.

CITED BY  30

Collaborative Colleagues:
Shmuel Katz: colleagues
Zohar Manna: colleagues