Programming Books C Java PHP Python Learn more Browse Programming Books
Qty:1
  • List Price: $54.99
  • Save: $10.79 (20%)
Only 6 left in stock (more on the way).
Ships from and sold by Amazon.com.
Gift-wrap available.
Add to Cart
FREE Shipping on orders over $35.
Condition: Used: Good
Comment: This is a used text in good condition. It may have some writing and highlighting. Ships directly from Amazon. Eligible for free super saver shipping.
Access codes and supplements are not guaranteed with used items.
Add to Cart
Trade in your item
Get a $10.02
Gift Card.
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

C Interfaces and Implementations: Techniques for Creating Reusable Software Paperback – August 30, 1996

ISBN-13: 078-5342498417 ISBN-10: 0201498413 Edition: 1st

Buy New
Price: $44.20
31 New from $40.20 31 Used from $20.00
Amazon Price New from Used from
Paperback
"Please retry"
$44.20
$40.20 $20.00

Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student



Frequently Bought Together

C Interfaces and Implementations: Techniques for Creating Reusable Software + The C Programming Language, 2nd Edition + Computer Systems: A Programmer's Perspective (2nd Edition)
Price for all three: $221.58

Buy the selected items together

NO_CONTENT_IN_FEATURE

Shop the New Digital Design Bookstore
Check out the Digital Design Bookstore, a new hub for photographers, art directors, illustrators, web developers, and other creative individuals to find highly rated and highly relevant career resources. Shop books on web development and graphic design, or check out blog posts by authors and thought-leaders in the design industry. Shop now

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: 9.3 x 7.4 x 1.1 inches
  • Shipping Weight: 2.2 pounds (View shipping rates and policies)
  • Average Customer Review: 4.1 out of 5 stars  See all reviews (19 customer reviews)
  • Amazon Best Sellers Rank: #392,197 in Books (See Top 100 in Books)

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


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

The source code presenting style in this book is relative strange and difficult to catch.
Mike Meng
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.
Thomas Ptacek
This book has implementations for lots of C interfaces, and uses the literate programming style.
J. D. Mayo

Most Helpful Customer Reviews

62 of 63 people found the following review helpful 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 Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
28 of 28 people found the following review helpful 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 Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
26 of 27 people found the following review helpful By Mike Meng on May 13, 2002
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 Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
12 of 12 people found the following review helpful By ThomasH on May 7, 2009
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 Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
5 of 5 people found the following review helpful By Amazon Customer on December 13, 2009
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 Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Most Recent Customer Reviews

Search

What Other Items Do Customers Buy After Viewing This Item?