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:
Concise interface descriptions that comprise a reference manual for programmers interested in using the interfaces.
A guided tour of the code that implements each chapter's interface tp help those modifying or extending an interface or designing related interfaces.
In-depth focus on "algorithm engineering:" how to package data structures and related algorithms into reusable modules.
Source code for 24 APIs and 8 sample applications is examined, with each presented as a "literate program" in which a thorough explanation is interleaved with the source code.
Rarely documented C programming tricks-of-the-trade.
Convenient access to all source code in the book via the World Wide Web at http://www.cs.princeton.edu/software/cii/
Table of Contents
- Addison-Wesley Professional Computing Series
- 1. Introduction
- 2. Interfaces and Implementations
- 3. Atoms
- 4. Exceptions and Assertions
- 5. Memory Management
- 6. More Memory Management
- 7. Lists
- 8. Tables
- 9. Sets
- 10. Dynamic Arrays
- 11. Sequences
- 12. Rings
- 13. Bit Vectors
- 14. Formatting
- 15. Low-Level Strings
- 16. High-Level Strings
- 17. Extended-Precision Arithmetic
18. Arbitrary-Precision Arithmetic
- 18.1. Interface
- 18.2. Example: A Calculator
- 18.3. Implementation
- Further Reading
- 19. Multiple-Precision Arithmetic
- 20.1. Interfaces
- 20.2. Examples
- 20.3. Implementations
- Further Reading
- Interface Summary
- Title: C Interfaces and Implementations: Techniques for Creating Reusable Software
- Release date: August 1996
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780321562807