A Discipline of ProgrammingExecutional abstraction; The role of programming languages; States and their characterization; The characterization of semantics; The semantic characterization of a programming language; Two theorems; On the design of properly terminating; Euclid's algorithm revisited; The formal treatment of some small examples; The linear search theorem; The problem of the next permutation. 
What people are saying  Write a review
User ratings
5 stars 
 
4 stars 
 
3 stars 
 
2 stars 
 
1 star 

LibraryThing Review
User Review  mykls  LibraryThinghelped make me a good programmer It 's about simplicity and clarity and about designing first, then writing not an easy read, but well worth it Read full review
Review: A Discipline of Programming
User Review  Mason Stewart  GoodreadsDijkstra whipped my ass. Awesome book, very difficult. Putting this on my "ReRead in Five Years" shelf :D Read full review
Contents
PROGRAMMING LANGUAGE  24 
CONSTRUCTS  41 
Q THE FORMAL TREATMENT OF SOME SMALL  51 
Copyright  
9 other sections not shown
Common terms and phrases
active scope ALGOL 60 algorithm allsix alternative construct aq.high argument array variable assignment statement ax.dom ax.hib ax.lob begin glocon boolean bucket C.A.R. Hoare Cartesian product chapter ckey clockwise boundary colour computation context convex hull current hull decrease defined definition denote divisor domain Dutch national flag element empty End of note End of remark established Euclid's algorithm execution finite formal function GCD(x given greatest common divisor guaranteed implies initializing statement inner block inspected integer introduce invariant relation kfac Linear Search machine maximal strong component mechanism newfile nondeterminacy oldfile operation pebble possible postcondition predicate transformer privar problem programming language repetitive construct semantics separation of concerns sequence set(i shortest solution statement list subset termination theorem tion true ultraviolet branches vertex vertices violet branch vir int array virvar weakest precondition wp(DO wp(IF wp(S x.key x.norm xnext y.key
References to this book
Logic in Computer Science: Modelling and Reasoning about Systems Michael Huth,Mark Ryan Limited preview  2004 
Model Driven Architecture: Applying MDA to Enterprise Computing David Frankel No preview available  2003 