Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
Buy new:
$43.99$43.99
FREE delivery:
Tuesday, Feb 13
Ships from: Amazon.com Sold by: Amazon.com
Buy used: $39.00
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
C Interfaces and Implementations: Techniques for Creating Reusable Software 1st Edition
Purchase options and add-ons
From the Back Cover
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
About the Author
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
- ISBN-100201498413
- ISBN-13978-0201498417
- Edition1st
- PublisherAddison-Wesley Professional
- Publication dateAugust 20, 1996
- LanguageEnglish
- Dimensions9.26 x 7.41 x 1.11 inches
- Print length544 pages
Frequently bought together

Similar items that may deliver to you quickly
Product details
- Publisher : Addison-Wesley Professional; 1st edition (August 20, 1996)
- Language : English
- Paperback : 544 pages
- ISBN-10 : 0201498413
- ISBN-13 : 978-0201498417
- Item Weight : 2.23 pounds
- Dimensions : 9.26 x 7.41 x 1.11 inches
- Best Sellers Rank: #1,003,520 in Books (See Top 100 in Books)
- #6 in Software Reuse
- #202 in C Programming Language
- #3,357 in Computer Software (Books)
- Customer Reviews:
Important information
To report an issue with this product or seller, click here.
About the author

David R. Hanson is a retired computer scientist. Most recently, he was a Software Engineer at Google. Before joining Google in 2004, he was a Senior Researcher at Microsoft Research from 1997-2004 and Professor of Computer Science at Princeton University from 1986-97. He was on the faculty at Yale and the University of Arizona, and he was Dept. Head at Arizona from 1981-86. His visiting appointments include the University of Utah, the Institute for Defense Analyses, Adobe Systems, and Digital's System Research Center. He was co-editor of Software--Practice and Experience from 1980-88 and continues to serve on its editorial board, and he is co-editor of the Princeton University Press Series in Computer Science. He has published many journal and conference papers and two books: A Retargetable C Compiler: Design and Implementation (with Chris Fraser), which describes lcc, a widely used compiler for Standard C, and C Interfaces and Implementations: Techniques for Creating Reusable Software. He earned a PhD in Computer Science in 1976 from the University of Arizona.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonReviews with images
-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
I cannot believe the fact that this book is an almost complete, beautifully architected collection of what amounts to a general-purpose C framework and set of standard containers and algorithms, similar to C++'s STL. If you were to release the examples in the book as a framework, you'd have something similar to GNOME's GLib, which powers all of GTk and the GNOME stack.
Is this book still relevant today? 100% absolutely. It's timeless. It should be a must-have for any C programmer--especially with the breadth of subjects it covers. There is pretty much something in here for every type of developer at every skill level. Even for a C++ developer, you can still learn a lot and "C++-itize" a lot of these data structures and concepts. His programming style is concise, easy to read, and unlike most C texts, is not an bunch of small, abstract, academic snippets. These are production-ready and useful in the real world. Also unlike a lot of the esteemed C classic texts, even though the book was written in '97, this feels like how modern C is written today.
I only wish I had found this book sooner. I cannot recommend it enough.
The book also excels at showing how more advanced and/or less used parts of the language and standard library can augment the capabilities of your programs. The chapter on Exceptions using setjmp() and longjmp() is worth the price of entry alone. While especially dry, the multiple and extended precision arithmetic chapters also present a topic that is not found in many other places.
If I had to point out one thing that drove me crazy during my reading, it would have to be the overuse of one- and two-letter variable names. While space is at a premium on the page, using names such as "dest" instead of "z" or "sign_of_x" instead of "sx" would have been more elucidating. I found myself losing track of which variable was which in functions that had as many as six one-letter variable names (I'm looking at you XP_div()!).
If you're not interested in the implementation in the book, that's fine. I think the APIs presented can inspire people to design better software interfaces. And the concise style is something that we should all work harder to imitate. Most functions are only a half page of text in the book. And the literate programming means those functions are cross referenced and easy for the reader to find.
Really just a joy to read.
Reviewed in the United States on August 31, 2023
Starting from Chapter 3, until the end of the book, Hanson reinforces the essential ideas from Chapter 2. He teaches the following concepts:
- how to leverage opaque pointers, providing encapsulation
- how to use assert(), explicitly stating and ensuring an interface's invariants
Unfortunately, Hanson codes using Knuth's literate programming, which adds unnecessary friction for the reader.
Overall, the essence of this book is timeless. (I consider it the C version of Bjarne's lectures on designing good programs. Bjarne always implements the Vector container, maintaining its interface and invariants.)











