## The Science of ProgrammingThis is the very first book to discuss the theory and principles of computer programming on the basis of the idea that a proof of correctness and a program should be developed hand in hand. It is built around the method first proposed by Dijkstra in his monograph The Discipline of Programming (1976), involving a "calculus for the derivation of programs." Directing his materials to the computer programmer with at least one year of experience, Gries presents explicit principles behind program development, and then leads the reader through example programs using those principles. Propositions and predicate calculus are presented as a took for the programmer, rather than simply an object of study. The reader should come away with a fresh outlook on programming theory and practice, and the assurance to develop correct programs effectively. |

### What people are saying - Write a review

We haven't found any reviews in the usual places.

### Contents

Why Use Logic? Why Prove Programs Correct? | 1 |

Reasoning using Equivalence Transformations | 19 |

Predicates | 66 |

Copyright | |

10 other sections not shown

### Other editions - View all

### Common terms and phrases

Algol Algol 60 algorithm alternative command Answers for Section array b[0:n binary blanks Boolean bound function calculate call by reference cand chapter checklist 11.9 Commutative laws conjunct Consider constant contains correct defined definition deleting denote derived digit disjunction empty equivalent evaluation example execution Exercises for Section expr expression F F F F T F final values fixed integer formal FORTRAN gram guarded command Hence identifier indentation inference rules initial value inserted integer inverse iteration laws Linear Search loop invariant multiple assignment natural deduction nodes operations pair parameters permutation postcondition predicate predicate calculus Premise problem proof proposition prove q infer Quicksort recursively replacing result assertion rule of Substitution satisfy sequence simple variable skip subtree swap tautology termination textual substitution theorem tion tree true truth table upsequence weakest precondition wp(S Write a program yields