Enter your mobile number 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.
Getting the download link through email is temporarily not available. Please check back later.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your mobile phone number.

C Interfaces and Implementations: Techniques for Creating Reusable Software 1st Edition

4.0 out of 5 stars 24 customer reviews
ISBN-13: 978-0201498417
ISBN-10: 0201498413
Why is ISBN important?
ISBN
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Trade in your item
Get a $7.58
Gift Card.
Have one to sell? Sell on Amazon
Rent On clicking this link, a new layer will be open
$22.49 On clicking this link, a new layer will be open
Buy used On clicking this link, a new layer will be open
$31.84 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$39.99 On clicking this link, a new layer will be open
More Buying Choices
21 New from $39.18 30 Used from $22.30
Free Two-Day Shipping for College Students with Prime Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


SaneBox: Clean up your Inbox in minutes
Learns what email is important to you and filters out what isn't -- saving you hours. Try it FREE
$39.99 FREE Shipping. Only 12 left in stock (more on the way). Ships from and sold by Amazon.com. Gift-wrap available.
click to open popover

Frequently Bought Together

  • C Interfaces and Implementations: Techniques for Creating Reusable Software
  • +
  • The C Programming Language
  • +
  • The Standard C Library
Total price: $156.57
Buy the selected items together

Editorial Reviews

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

NO_CONTENT_IN_FEATURE

New York Times best sellers
Browse the New York Times best sellers in popular categories like Fiction, Nonfiction, Picture Books and more. See more

Product Details

  • Paperback: 544 pages
  • Publisher: Addison-Wesley Professional; 1 edition (August 30, 1996)
  • Language: English
  • ISBN-10: 0201498413
  • ISBN-13: 978-0201498417
  • Product Dimensions: 7.2 x 1.2 x 9 inches
  • Shipping Weight: 2.2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (24 customer reviews)
  • Amazon Best Sellers Rank: #26,947 in Books (See Top 100 in Books)

Customer Reviews

Top Customer Reviews

By Thomas Ptacek on August 4, 1999
Format: Paperback
Clearly written and well organized, this book presents more than 20 _highly_ useful library interfaces for containers, string management, mathematics, and memory management. There isn't a line of code in the whole book that you couldn't take and use, verbatim, in a project today --- after reading this book, you'll probably never have a compelling reason to write a string library or a hash table interface again.
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.
Comment 64 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
By A Customer on October 5, 2001
Format: Paperback
If you want to become a professional programmer overnight.read and thoroughly understand this book. If one could master the techniques described in this book..he may never have to worry about failing software developer's job interviews. This last statement is based on my personal experience.
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
Comment 28 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
I have been a C and C++ programmer for 5 years, and is regarded as an professional C and C++ programmer. After scanning this book, I think I should re-estimate my C skill.
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.
1 Comment 26 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback
I second the many positive reviews about this book. If you architect and/or make software for a living, this book will give you a life long of useful ideas and provide with real running and working generic solutions. Foremost I was personally stunned by the implementation of the exception handler emulator, which I adopted ever since. Now I can look back at it's respectable 12 years of service with exemplary low "bug rate" and hundreds of millions in revenue gathered from products using this style of coding.

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.
Comment 12 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Paperback Verified Purchase
It is almost impossible to make everbody happy when presenting a book for the public. This one is a good example for making things more diffilcult than it is normally. Separating interface from implementation is not an ardous problem in C; there are a few techniques for doing this, like opaque pointers or the piml idiom. What is actually exhibited in this work is more or less the piml idiom implemented in the C language.
The author seems to have prefered a more academic and consequently a scientific style of writing and explanation of things around interfaces and its implementations. Really, the coding style is not easily accessible, hence at times troublesome to follow and crasp. The using of the letter T for the uncomplete types or abstract data types might make the reader somewhat uncomfortable in absorbing the examples given.
But as a whole, this book clearly and systematically demonstrates the plan how to implement abstract data types in C, which requires some patience and discipline to work them out.
Comment 3 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews

Set up an Amazon Giveaway

C Interfaces and Implementations: Techniques for Creating Reusable Software
Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more about Amazon Giveaway
This item: C Interfaces and Implementations: Techniques for Creating Reusable Software