Algebraic specification and functionals for transformational program and meta program development [chapter]

Bernd Krieg-Brückner
1989 Lecture Notes in Computer Science  
A methodology for PROgram development by SPECification and TRAnsformation is described. Formal requirement specifications are the basis for constructing correct and efficient programs by gradual transformation. A uniform treatment of algebraic specification is presented to formalise data, programs, transformation rules, in fact the program development process itself. It is shown by example that the development of meta programs, for example an efficient transformation algorithm incorporating the
more » ... effect of a set of transformation rules, is analogous to program development: the transformation rules act as specifications for the transformation algorithms, and the negation of their applicability conditions as development goals. The paper focusses on the combination of functional programming and algebraic specification and reasoning, leading to a considerably higher degree of abstraction, avoiding much repetitive development effort, the use of homomorphic extension functionals, homomorphic properties for reasoning about correctness and optimisation, and the recursion schema of homomorphic extension as a program development strategy and as an induction schema for proofs.
doi:10.1007/3-540-50940-2_26 fatcat:4udql5ygazcvhn5ag2f6nxfmkm