- Paperback: 544 pages
- Publisher: Addison-Wesley Professional; 1 edition (August 30, 1996)
- Language: English
- ISBN-10: 0201498413
- ISBN-13: 978-0201498417
- Product Dimensions: 7.3 x 1.2 x 8.9 inches
- Shipping Weight: 2.2 pounds (View shipping rates and policies)
- Average Customer Review: 3.8 out of 5 stars See all reviews (24 customer reviews)
Amazon Best Sellers Rank:
#663,302 in Books (See Top 100 in Books)
- #7 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Reuse
- #246 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C
- #456 in Books > Computers & Technology > Programming > Microsoft Programming > C & C++ Windows Programming
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
C Interfaces and Implementations: Techniques for Creating Reusable Software 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently Bought Together
Customers Who Bought This Item Also Bought
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/
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.
Top Customer Reviews
More importantly, though, each example library illustrates ways to effectively design consistant and useable library interfaces, from generic ADTs to system service wrappers. After reading this book, you'll not only have an arsenal of useful code to leverage, but also a good understanding of how to design clean, modular, reuseable components for your application.
Hanson's C code is extremely clear and concise. Even if you've been programming professionally for a long time, you are likely to pick up a useful technique or two just by reading the source code in the book. If you're not very experienced, you will learn about C programming idioms that will be valuable to you in future work.
I really like how this book, and Hanson's other book ("A Retargetable C Compiler: Design and Implementation") are put together. Hanson employs Literate Programming techniques to weave the code he's discussing together with his discussion. This makes it very simple to track what portions of the code are being talked about at any point
in the book.
The chapters provide source code which is clear, efficient, and outrightly professional, the description is concise, to the point and clear enough.Most of the code in the book can be used without any modification. I don't know of a book in the market that could teach how to design and implement a user-level threads library from the scratch WITHOUT any help from the Operating System. Simply wonderful
In one word, this book is the most advanced C book I've read, it presents lots of wonderful techniques and ideas, and more, all the things are very useful. For examples:
* Use standard C's setjmp/longjmp to implement WIn32 SEH-like exception handling machanism.
* Very detailed and smart memory management solution.
* All the data structures and utilities in well-defined, reusable format: atoms, tables, sets, vectors(dynamic arrays), rings, strings, arithmetric with any precisions, thread library... everything you need to build a whole new system.
I'd say that once you master each of those things (this means read and re-read until understanding occur, as Fransis Glassborow said ), you will be an outstanding programmer in any circumstance, and can be full of confidence to accept any programming challenge.
The only thing I complain is about the source code. The source code presenting style in this book is relative strange and difficult to catch. I tried to type the code into my PC, and found it's a unpleasent work. Fortunately, the all source can be download from the book's web page, so, I still gave 5 stars.
One issue was not mentioned by the most of other reviewers: This book is one of the now rare examples of "Literate Programming," a term coined by Donald Knuth, who implemented the "web system" with two programs Tangle and Weave. From the same source the one program generates code for a compiler, the other generates a book text for a text processing system. This way code and the literature about it are in perfect sync. Most importantly, the code showed in the book is a real tested and running implementation, not a mere pseudo code used by others so often, which may or may not be correct. See section 1.1 for a description of the system and typographical convention used by Prof. Hanson in his book.
For me this book is a classic. Timeless, even now 12 years since its date of release it is highly recommended for every practitioner at any level.
The title of the book is not exactly true: this is not a generic text on "C interfaces an implementation", it's a complete and detailed documentation of a well-projected C user level generic library, implementing a lot of ADTs that are not available in the C standard library but are available in many other high(er?) level languages.
You may like or not the semantic details and coding style, probably depending on your background: unix/linux programmers may not like it, as they may not like the ADTs prefix-verbosity...
It's a way to add modularity to a not-object-oriented language as C is; the same for the "typedef struct T *T" (opaque pointers) in headers: modularity and encapsulation.
Pseudocode notation (literate programming) is clear, as long as you read chapter 1.