Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Partial correctness: the term-wise approach
Sokolowski S. Science of Computer Programming4 (2):141-157,1984.Type:Article
Date Reviewed: Mar 1 1985

This paper presents a method by which functions can be incorporated into a programming logic. The logic is inspired by Hoare’s axiom system [1], but uses terms rather than predicates. Complex terms may involve logical operators and hence look like predicates; however, the important difference is the use of equality between term values rather than the traditional implication between predicates.

The method can be used to deal with the partial correctness of many, but not all, semantic features of programming languages by means of a relatively small set of inference rules. (In view of the limitations noted by the author, it is perhaps worth suggesting that other attempts to extend Hoare’s basic system [2,3] might be rationalized with the paper under review to extract greater benefit from the concepts introduced therein.

The paper includes a small, realistic language which is formally defined by means of its inference system and then used in the correctness proof of a tree traversal program. Two theorems concerning the completeness of the system and its relationship with partial correctness (specified with respect to predicates) are stated at the end of the paper.

The central thesis of the paper is valid and worthy of further study; however, the paper could have been made more approachable. Part of the presentation claims to follow the style of Gordon [4]; :9I are not used in the same way. Also, semantic evaluation functions are anonymous, [t] being used instead of :9I for example, which would be easier to read. There is also evidence of inconsistency in revision of the text; for instance: (1) while the right-hand side of an assignment is defined to be a program term there is a simpler form of inference rule given for use in cases when the right-hand side is a non-program term and (2) the example program uses painters despite the statement that the system cannot treat pointers. Despite my quibbles regarding presentation, this paper is to be recommended to the program logician.

Reviewer:  D. J. Cooke Review #: CR108844
1) Hoare , C. A. R.An axiomatic basis for computer programming, Commun. ACM 12 (1969), 576–583. See <CR> 11 1 (Jan. 1970), Rev. 18,328.
2) Apt, K. R.Ten years of Hoare’s logic: a survey -- Part 1, ACM Trans. Program. Lang. Syst. 3 (1981), 431–483. See <CR> 22, 11 (Nov. 1981), Rev. 38,742.
3) manna, Z. and Waldinger, R.Problematic features of programming languages: a situational-calculus approach, Acta Inf. 6 (1981), 371–426. See <CR> 24 (Jan. 1983), Rev. 39,998.
4) Gordon, M. J. C.The denotational description of programming languages, Springer-Verlag New York, New York, 1979.
Bookmark and Share
 
Logics Of Programs (F.3.1 ... )
 
 
Formal Languages (F.4.3 )
 
 
Software/ Program Verification (D.2.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Logics Of Programs": Date
Weak logic theory
Holden M. Theoretical Computer Science 79(2): 295-321, 1991. Type: Article
Mar 1 1992
Completing the temporal picture
Manna Z., Pnueli A. (ed) Theoretical Computer Science 83(1): 97-130, 1991. Type: Article
Apr 1 1992
Local model checking in the modal mu-calculus
Stirling C. (ed), Walker D. (ed) Theoretical Computer Science 89(1): 161-177, 1991. Type: Article
Jul 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy