Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Programming: the derivation of algorithms
Kaldewaij A., Prentice-Hall, Inc., Upper Saddle River, NJ, 1990. Type: Book (9780132041089)
Date Reviewed: Aug 1 1991

In the “calculational style” of programming that is currently being promoted by Feijen, Dijkstra, Gries, and others, algorithms are derived from formal specifications, leading to programs that are correct by construction. Verification is a byproduct of this process. Kaldewaij presents program derivation as a creative process in which design decisions are based on considerations such as “efficiency, simplicity and symmetry.”

The author has used this deceptively compact book in a third-year course and in a one-year introductory course at Eindhoven University; the only prerequisite was an introductory course in Pascal. Her approach to using this book in the introductory course appears to be essential: a leisurely pace for lectures is combined with exercises that must be worked out “with great precision” in small groups. An instructor’s manual contains solutions to the exercises.

Technically, this book appears to be both conventional in its notation and topic selection and pleasingly motivational in its emphasis on applying theory to solving problems. Five introductory chapters on notation and computation are followed by seven chapters of applications and problem solving. Naturally, since I did not spend the recommended academic year to get used to the notation and accompanying rigor, I spent time checking that my understanding of the notation agreed with the author’s and working through examples. An appendix that defined the notations would help. Overall, I liked the book, especially because of the applications and problems.

My critical concern is not how well I like a book, but how well students will learn from it. In reading the sample derivations of programs, I encountered an alarming statement: “Needless to say that this program cannot be easily understood without its derivation” (p. 91). I consider this to be a serious flaw in the methodology. Solutions are often so creatively derived or so formally stated that the resulting programs require a thorough understanding of both their derivation and the formalisms used in their derivation before they can be comprehended or modified. Thus we arrive at a science of computing that requires very bright scientists with exceptional mathematical skill. Exams may also emphasize memorizing solutions in a manner reminiscent of my experience as a graduate student in mathematics.

The formal methods in this book may enhance reliability, efficiency, brevity, and scalability, but learnability and clarity suffer. If you are in the market for a book in this area, consider this one. The material is far more attractive as a third-year course than as a one-year entry-level course.

Reviewer:  J. A. Cross Review #: CR115083
Bookmark and Share
 
Specifying And Verifying And Reasoning About Programs (F.3.1 )
 
 
Nonnumerical Algorithms And Problems (F.2.2 )
 
 
Requirements/ Specifications (D.2.1 )
 
 
Software/ Program Verification (D.2.4 )
 
Would you recommend this review?
yes
no
Other reviews under "Specifying And Verifying And Reasoning About Programs": Date
An introduction to programming with specifications
Kubiak R., Rudziński R., Sokolowski S., Academic Press Prof., Inc., San Diego, CA, 1991. Type: Book (9780124276208)
Jun 1 1992
Observational implementation of algebraic specifications
Hennicker R. Acta Informatica 28(3): 187-230, 1991. Type: Article
Jul 1 1992
A Hoare-like verification system for a language with an exception handling mechanism
Szczepanska D. Theoretical Computer Science 80(2): 319-335, 1991. Type: Article
Nov 1 1991
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