Systematic program design : from clarity to efficiency A systematic program design method can help developers ensure the correctness and performance of programs while minimizing the development cost. This book describes a method that starts with a clear specification of a computation and derives an efficient implementation by step wise program analysis and transformations. The method applies to problems specified in imperative database functional logic and object oriented programming languages with different data control and module abstractions. Designed for courses or self study this book includes numerous exercises and examples that require minimal computer science background making it accessible to novices. Experienced practitioners and researchers will appreciate the detailed examples in a wide range of application areas including hardware design image processing access control query optimization and program analysis. The last section of the book points out directions for future studies