The Science of Programming
This 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
A beautiful book that explains how to write a program, that not only convinces its correctness to the programmer himself, but also to all others who come across that program. The science behind this kind of program development is based on the concept of weakest pre-condition and calculational approach to derive a program. With the traditional approaches for developing a program such as ad-hoc methods, trial-and-error and guess works, it is very hard to show whether the developed program is correct and satisfies its specifications. The science developed in this book not only explains how to show the correctness of a program (with respect to its specification) being developed, but also explains how to construct the program in stepwise manner with the final goal -the specification- in mind. In summary, this book answers two simple but most important questions in computing field. 1. How to develop a program? 2. How to know/show the program is correct? Read this book, and write to me, if you didn't get answers to these questions! Happy reading.
Review: The Science of ProgrammingUser Review - Goodreads
Book felt outdated to me; echo's of this type of 'scientific' programming can still be seen in modern static analysis tools (Coverity, etc.). Read full review