A Theory and Practice of Program Development provides a
comprehensive introduction to a software development method based on
VDM-SL. Each development step is rigorously justified, and the
strategies and transformations used are justified and explained ma
thematically. The approach provides the formal semantics of a simple,
but powerful, wide-spectrum programming language and gives a formal
definition of both algorithmic and data refinement. Unlike other texts,
it covers both the theory and practice of program development. Although
based on VDM-SL, no knowledge of this language is assumed, thus making
it widely accessible. A Theory and Practice of Program Development
is intended for 3rd/4th year undergraduate and postgraduate students
taking formal methods and software engineering; software developers
involved in the production of provably correct computer systems and
reusa ble design and the problems of reusable code.