Freshly Printed - allow 8 days lead
Systematic Program Design
From Clarity to Efficiency
Describes a systematic program design method, starting with specifications of computations and deriving implementations by step-wise program analysis and transformations.
Yanhong Annie Liu (Author)
9781107036604, Cambridge University Press
Hardback, published 20 May 2013
252 pages, 14 b/w illus. 90 exercises
24 x 15.8 x 2 cm, 0.55 kg
'It will prove very useful for graduate students who wish to start their literature review with a comprehensive example of the state of the art in formal methods, and it is an excellent platform for self-directed learning. This well-structured, comprehensive book reflects the author's experience and strong background in the field. Highly recommended.' L. Benedicenti, Choice
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.
1. Introduction
2. Loops: incrementalize
3. Sets: incrementalize and implement
4. Recursion: iterate and incrementalize
5. Rules: iterate, incrementalize, and implement
6. Objects: incrementalize across module abstraction
7. Conclusion.
Subject Areas: Computer science [UY], Software Engineering [UMZ], Programming & scripting languages: general [UMX]