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/ 0201498413B04062001
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
Tip the Site
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat Pay
Alipay
Open WeChat or Alipay and scan. No login required.
AI guide
【One-Line Pitch】
A practical guide to designing reusable C APIs through interface-based design, showing how to separate what a module promises from how it works. Best for intermediate C programmers and project leads who want to build libraries others can actually use, not just consume them.
【Book Arc】
- **Opening (~0%–10%)**: Frames the core problem—C offers little linguistic support for reusable APIs—and introduces interface-based design as a language-independent methodology, plus foundational modules like Atoms and Exceptions/Assertions.
- **Early (~10%–35%)**: Builds the data-structure toolkit: Lists, Tables, Sets, Rings, Bit Vectors, and Formatting, each presented as an interface plus implementation with worked examples such as word frequencies and cross-reference listings.
- **Middle (~35%–50%)**: Moves into numeric and algorithmic engineering territory with Extended-Precision, Arbitrary-Precision, and Multiple-Precision Arithmetic, including calculator examples, and consolidates everything in an Interface Summary.
- **Late (~50%–100%)**: Excerpts do not cover this range in detail; the table of contents suggests continued module coverage and sample applications, but specifics are not available here.
【Key Takeaways】
- **Interface-based design is the book's spine** (Opening): Separate the interface (what clients see) from the implementation (how it works) to create modules that are reusable and replaceable.
- **C makes reusable APIs hard by default** (Opening): Unlike object-oriented languages, C provides little linguistic support, so discipline and methodology must substitute for language features.
- **Abstract data types and client responsibilities matter** (Opening): Good interfaces define clear contracts; clients must respect them for modules to remain reliable.
- **Algorithm engineering is a first-class skill** (Early–Middle): Packaging data structures and algorithms into reusable modules is treated as a design discipline, not just coding.
- **Literate programming aids understanding** (Opening): Source is interleaved with explanation, making both usage and modification easier to follow.
- **Concrete modules teach the methodology** (Early–Middle): Atoms, Lists, Tables, Sets, Rings, Bit Vectors, Formatting, and multiple-precision arithmetic serve as worked examples of the approach.
- **Efficiency is an explicit design concern** (Opening): The book addresses performance trade-offs alongside interface cleanliness.
- **Rarely documented C techniques appear throughout** (Opening): Practical tricks-of-the-trade supplement the higher-level design lessons.
【Reading Tips】
- Read the opening methodology chapters carefully; they define the vocabulary used throughout.
- Treat each module chapter as a template: study the interface first, then the implementation, then the example.
- Skim modules you already know well; deep-read ones relevant to your current project.
- Attempt the exercises—they reinforce interface design decisions.
- Keep the Interface Summary handy as a quick reference while reading later chapters.
【Coverage Limits】
Excerpts are heavily table-of-contents oriented; detailed content for the late portion of the book and most implementation specifics are not covered here.
Page 2
............................................................ 1 Addison-Wesley Professional Computing Series.....................................................
............................................................ 235 Further Reading................................................................................
and they pay for it with greatly increased development time. When, in hindsight, they understand their mistakes, they come to appreciate that designing good...
ad carefully between generality, simplicity, and efficiency. If the routines and data structures in a library are too general, they may be too hard to A C In...
Support this siteYour recognition and a small knowledge-service contribution help keep this technical work open source.
Scan the WeChat Pay or Alipay code below. Logged-in and guest visitors can both tip.
WeChat PayAlipay
Open WeChat or Alipay and scan. No login required.
Add Tag
Enter tag name (max 50 characters)
Share E-Book
C Interfaces and Implementations Techniques for Creating Reusable Software (David R. Hanson) (Z-Library)
Scan QR code with your phone to access
Copy the link or scan the QR code to access this e-book on your phone
Share E-Book via Email
Please enter email address
Donation Statistics
¥.00
Total Donations
0
Donation Count
C Interfaces and Implementations Techniques for Creating Reusable Software (David R. Hanson) (Z-Library)
Find Your Favorite Books
Only registered users can comment after logging in. Comments need to be reviewed by administrators before being displayed
Loading comments...
Reply to Comment
Edit Comment