Programs, Recursion and Unbounded Choice
This book is a complete account of the predicate transformation calculus semantics of sequential programs, including repetitions, recursive procedures, computational induction and unbounded nondeterminacy. Predicate transformation semantics are the best specification method for the development of correct and well-structured computer programs. The author develops this theory to a greater depth than has been achieved before, and describes it in a way that makes it readily compatible with programming rules for partial and total correctness of repetitions and recursive procedures, supplies new rules for proving incorrectness, and a stronger rule for proving that two programs satisfy the same specifications. Finally, the semantics are extended so that non-terminating programs can be specified as well. This will be essential reading for all computer scientists working in specification and verification of programs.
Reviews & endorsements
"...an excellent book to get acquainted with the ideas and methods of the program methodology community....It is clear, elegant and well-written. Every serious student of programming methodology should read this carefully, and serious researchers in the denotational semantics of unbounded indeterminacy would be well-rewarded by a study of this book." Prakesh Panangaden, SIGACT News
"...would make a good text for an advanced graduate course on semantics or program specification and verification. There are sufficient exercises for self-study or for use in a course. It is clear, thorough, well written, and carefully conceived." Gary T. Leavens, SIAM Review
"...of interest for theoretical computer scientists and mathematicians..." Mathematical Reviews
Product details
August 2005Paperback
9780521018296
240 pages
245 × 170 × 12 mm
0.385kg
Available
Table of Contents
- List of symbols
- Introduction
- 1. Weakest preconditions
- 2. Annotation, recursion and repetition
- 3. Healthiness laws
- 4. Semantics of recursion
- 5. Ramifications
- 6. Relational semantics
- 7. Determinacy and disjunctivity
- 8. Syntactic criteria
- 9. Operational semantics of recursion
- 10. Procedure substitutions
- 11. Induction and semantic equality
- 12. Induction and refinement
- 13. The strong preorder
- 14. Temporal operators
- 15. Predicative fairness
- 16. Solutions of exercises
- References
- Index of concepts and identifiers.