Programming from SpecificationsProviding a thorough treatment of most elementary programme development techniques, this revised edition covers topics such as procedures, parameters, recursion and data refinement, with the integration of specification, development and coding, based on ordinary (classical) logic. This second edition features: substantial restructuring of earlier material, streamlining the introduction of programming language features; simplified presentation of procedures, parameters and recursion; an expanded chapter on data refinement, giving the much simpler laws that specialize to functional abstractions; a new chapter on recursive types (trees etc) and appropriate control structures; and, following the original concluding case study, two completely new ones: "the recursive treatment of the largest rectangle under a histogram", and a specification and extended developnent of an electronic mail system (including limited concurrency). |
Other editions - View all
Common terms and phrases
Abbreviation abort abstract program alternation Answer apply assignment 1.3 assumption binary block bound variables branch Chapter client coercion conjunctive normal form coupling invariant data refinement declarations defined Definition diminish specification disjunction distributed element example executable Exercises Exercise Existential quantification expression false false false false true feasible Figure final formal parameter functions Gray code guarded commands Heap Sort Hint idempotent infeasible initial value initialisation Insertion Sort integers introduce iteration logical constant Modula-2 mw ws↓i natural number occur operators output paragraph predicate calculus Predicate law procedure P1 prog prog2 progl program development programming languages propositional formulae quantifiers real numbers Recall recursion refinement law refinement steps removed replaced result f\a Section sequential composition 4.2 skip square root strengthen postcondition 6.5 substitution laws true true true value-result specification variant weaken precondition wp(prog ws↓j Δ Δ