PTG home
Catalog Search:
Search
Related Topics:
COMPUTING
Programming Languages
C




 
C Interfaces and Implementations: Techniques for Creating Reusable Software 1/e

David R. Hanson

Published August 1996 by Addison Wesley Professional
Copyright 1997, 544 pp., Paper
ISBN: 0-201-49841-3
List Price:
$49.99

Inventory Status:
In-Stock
   
Preface


More Info


Summary

Every programmer and software project manager must master the art of creating reusable software modules; they are the building blocks of large, reliable applications. Unlike some modern object-oriented languages, C provides little linguistic support or motivation for creating reusable application programming interfaces (APIs). While most C programmers use APIs and the libraries that implement them in almost every application they write, relatively few programmers create and disseminate new, widely applicable APIs. C Interfaces and Implementations shows how to create reusable APIs using interface-based design, a language-independent methodology that separates interfaces from their implementations. This methodology is explained by example. The author describes in detail 24 interfaces and their implementations, providing the reader with a thorough understanding of this design approach.

Features of C Interfaces and Implementations:



0201498413B04062001



Author Bio

David R. Hanson is a Professor of Computer Science at Princeton University with more than 20 years of research experience in programming languages. He has conducted research in conjunction with Bell Laboratories and is the co-author of lcc, a production quality, research compiler for the C language that is popular with the Unix community. lcc is presented and analyzed in the book A Retargetable C Compiler: Design and Implementation, by Christopher Fraser and David Hanson (c) 1995, Addison-Wesley.



0201498413AB04062001



Table of Contents

(Each chapter, except Chapter 1, begins with an Interface, and all chapters conclude with Further Reading and Exercises.)

Preface.


Organization.


Instructional Use.


How to Get the Software.


Acknowledgments.


1. Introduction.

Literate Programs.

Programming Style.

Efficiency.



2. Interfaces and Implementations.

Implementations.

Abstract Data Types.

Client Responsibilities.

Efficiency.



3. Atoms.

Implementation.



4. Exceptions and Assertions.

Implementation.

Assertions.



5. Memory Management.

Production Implementation.

Checking Implementation.



6. More Memory Management.

Implementation.



7. Lists.

Implementation.



8. Tables.

Example: Word Frequencies.

Implementation.



9. Sets.

Example: Cross-Reference Listings.

Implementation.



10. Dynamic Arrays.

Implementation.



11. Sequences.

Implementation.



12. Rings.

Implementation.



13. Bit Vectors.

Implementation.



14. Formatting.

Implementation.



15. Low-Level Strings.

Example: Printing Identifiers.

Implementation.



16. High-Level Strings.

Implementation.



17. Extended-Precision Arithmetic.

Implementation.



18. Arbitrary-Precision Arithmetic.

Example: A Calculator.

Implementation.



19. Multiple-Precision Arithmetic.

Example: Another Calculator.

Implementation.



20. Threads.

Examples.

Implementations.



Interface Summary.


Bibliography.


Index. 0201498413T04062001



back to top