Abstraction and Specification in Program Development
"Abstraction and Specification in Program Development" offers professionals in program design and software engineering a methodology that will enable them to construct programs that are reliable and reasonably easy to understand, modify, and maintain. Good programming involves the systematic mastery of complexity, and this book provides the first unified treatment of the techniques of abstraction and specification, which, the authors argue, are the linchpin of any effective approach to programming. They place particular emphasis on the use of data abstraction to produce highly modular programs.The authors focus on the process of decomposing large program projects into independent modules that can be assigned to independent working groups. They discuss methods of decomposition, the kinds of modules that are most useful in this process, and techniques to increase the likelihood that modules produced can in fact be recombined to solve the original programming problem. There are many examples of abstractions throughout the text, and each chapter ends with pertinent references and exercises.Most of the sample implementations in the book are written in CLU, one of a growing number of languages able to support data abstraction. Sufficient material is included, however, to allow the reader to work in Pascal as well.The material in this book was developed by the authors during a decade of teaching undergraduate, graduate, and professional-level courses. Barbara Liskov, the developer of CLU, is Professor and John Guttag an Associate Professor of Computer Science at MIT. "Abstraction and Specification in Program Development" is included in the MIT Electrical Engineering and Computer Science series.
What people are saying - Write a review
We haven't found any reviews in the usual places.
An Overview of CLU
17 other sections not shown
Other editions - View all
abstract object abstract type abstraction function arguments array array[int array[t axioms body chapter characters cluster command constructors containing create current slot cursor data abstraction data type defined delete dependency diagram digraph directed graph discussed effects Returns true elem element of storage empty end end equal error example exception expression figure formal handler header high bound implementation input int_array integer intoueue intset invocation iterator loop loop invariant low bound merge sort modifies s effects module mutable node olist operations otherwise returns output palindrome parameterized parameters Pascal poly possible(string predicate problem procedure proctype programming language putc qelems queue rep invariant requirements analysis requires clause result return statement returns bool returns false returns int screen scrin sequence signals bounds sort space specification statement stream STRING TABLE terminates trait TriviCalc type spec variables yields