The papers included in this volume were presented at the Conference on Mathematics of Program Construction held from June 26 to 30, 1989. The conference was organized by the Department of Computing Science, Groningen University, The Netherlands, at the occasion of the University's 375th anniversary. The creative inspiration of the modern computer has led to the development of new mathematics, the mathematics of program construction. Initially concerned with the posterior verification of computer programs, the mathematics have now matured to the point where they are actively being used for the discovery of elegant solutions to new programming problems. Initially concerned specifically with imperative programming, the application of mathematical methodologies is now established as an essential part of all programming paradigms - functional, logic and object-oriented programming, modularity and type structure etc. Initially concerned with software only, the mathematics are also finding fruit in hardware design so that the traditional boundaries between the two disciplines have become blurred. The varieties of mathematics of program construction are wide-ranging. They include calculi for the specification of sequential and concurrent programs, program transformation and analysis methodologies, and formal inference systems for the construction and analysis of programs. The mathematics of specification, implementation and analysis have become indispensable tools for practical programming.
A formal approach to large SOFTWARE CONSTRUCTION.- Mathematics of program construction applied to analog neural networks.- Termination is timing.- Towards totally verified systems.- Constructing a calculus of programs.- Specifications of concurrently accessed data.- Stepwise refinement of action systems.- A lattice-theoretical basis for a specification language.- Transformational programming and forests.- Networks of communicating processes and their (De-)composition.- Towards a calculus of data refinement.- Stepwise refinement and concurrency: A small exercise.- Deriving mixed evaluation from standard evaluation for a simple functional language.- Realizability models for program construction.- Initialisation with a final value, an exercise in program transformation.- A derivation of a systolic rank order filter with constant response time.- Searching by elimination.- The projection of systolic programs.- The formal construction of a parallel triangular system solver.- Homomorphisms and promotability.- Applicative assertions.- Types and invariants in the refinement calculus.- Algorithm theories and design tactics.- A categorical approach to the theory of lists.- Rabbitcounrt :=Rabbitcount - 1.