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.

  • Apple
  • Android
  • Windows Phone
  • Android

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

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

4 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.
Sell yours for a Gift Card
We'll buy it for $9.38
Learn More
Trade in now
Have one to sell? Sell on Amazon
Buy used On clicking this link, a new layer will be open
$19.40 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$41.64 On clicking this link, a new layer will be open
More Buying Choices
15 New from $41.64 20 Used from $19.40
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


Save Up to 90% on Textbooks Textbooks
$41.64 FREE Shipping. Only 19 left in stock (more on the way). Ships from and sold by Amazon.com. Gift-wrap available.

Frequently Bought Together

  • C Interfaces and Implementations: Techniques for Creating Reusable Software
  • +
  • The C Programming Language
  • +
  • Computer Systems: A Programmer's Perspective (3rd Edition)
Total price: $225.31
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



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.3 x 1.1 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: #295,052 in Books (See Top 100 in Books)

More About the Author

David R. Hanson is a Software Engineer at Google. Before joining Google in December, 2004, he was a Senior Researcher at Microsoft Research from 1997-2004 and Professor of Computer Science at Princeton University from 1986-97. He has been 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

Top Customer Reviews

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 of 66 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 of 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 of 27 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 of 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
A very good book also for the embedded field; you can't use much of the code in small 8bit microcontroller environments, but if you work with bigger 16/32bit microcontrollers many of the abstract data types (ADTs) described here can be useful. Maybe the "threads" interface can even be used as a base to develop a tiny cooperative embedded OS, too.

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.
Comment 6 of 6 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

Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
C Interfaces and Implementations: Techniques for Creating Reusable Software
This item: C Interfaces and Implementations: Techniques for Creating Reusable Software
Price: $41.64
Ships from and sold by Amazon.com