Describes a systematic program design method, starting with specifications of computations and deriving implementations by step-wise program analysis and transformations.