星期二, 一月 20, 2009

Suggestions for C++, OO, and C Literature

Comeau's Suggestions for C++,
OO, and C Literature

(c) © 1990-2006 Comeau Computing. All Rights Reserved. 

Most of the suggestions below are generally what we at Comeau label industrial strength books on C++, C or OO. If you have additional ideas, or you feel that something significant has been left out, please contact us. You may want bookmark this page for future reference. You may also want to check outhttp://www.comeaucomputing.com/techtalk/#book for some thoughts on how to use this booklist.

  1. A minimal C++ starting point
  2. Magazines:
    "Softer" Introductions
    • Eckel, Bruce. Thinking in C++, Vol 1/2nd ed. Prentice Hall, March 2000. ISBN 0-13-979809-9.
      Also available electronically through http://www.bruceeckel.com/ThinkingInCPP2e.html.
    • Prata, Stephen. C++ Primer Plus 5th ed. SAMS, 2004. ISBN 0-672326-97-3.
    • Stevens, Al. Teach Yourself... C++. Seventh Edition. Wiley, 2003. ISBN 0-7645-2644-8.
    • Terribile, Mark. Practical C++. McGraw-Hill, 1994. ISBN 0-07-063738-5.
      (This is an older book, but Mark has a good handle on OO topics, etc.)
    • Hostmann, Cay. Computing Concepts with C++ Essentials, 2nd ed. Wiley, 1998. ISBN 0-471-31847-7.
    • Heller, Steve. Who's Afraid of C++?. AP Professional/Academic Press, 1996. ISBN 0-12-339097-4.
      Heller, Steve. Who's Afraid of MORE C++?. AP Professional/Academic Press, 1998. ISBN 0-12-339104-0.
    • Heller, Steve. Learning to Program in C++. Prentice Hall, 2000. ISBN 0-13-032410-8.
      This is a one volume edition of the above two previous books.

    "Terser" Introductions
    • Koenig, Andrew and Barbara Moo. Accelerated C++: Practical Programming by Example. Addison Wesley 2000. ISBN 0-201-70353-X. (Send us your feedback on this NEW BOOK!)
    • Stroustrup, Bjarne. The C++ Programming Language. Third Edition. Addison-Wesley Publishing Company, 1997. ISBN 0-201-88954-4.
    • Stroustrup, Bjarne. The C++ Programming Language. Special Edition. Addison-Wesley Publishing Company, 2000. ISBN 0-201-70073-5.
      (Expect this version in stores around Mid-Feb. This edition is "special" because it is a hard cover version and also because it contains the following new material: an appendix on locales, and an appendix on exception handling safety concerns within the C++ Standard library. An extensive errata since the 3rd edition's original publication has also been applied. As well, it contains two two permanent ribbon-style bookmarkers. Nothing's major per se here, so a 4th ed was not particularly justified, and although probably appropriate, calling it "PI Edition" just wouldn't fly.)
    • Lippman, Stanley B., and Josee Lajoie. C++ Primer. Third Edition. Addison-Wesley Publishing Company, 1998. ISBN 0-201-82740-1.
    • Lippman, Stanley B. Essential C++. Addison-Wesley, 2000. ISBN 0-201-48518-4.
      (Send us your feedback on this new book!)
    • Dewhurst, Stephen C., and Kathy T. Stark. Programming in C++, 2nd ed. Prentice Hall, 1995. ISBN 0-13-182718-9.
    • Stroustrup, Bjarne. The C++ Programming Language. Second Edition. Addison-Wesley Publishing Company, 1991. ISBN 0-201-53992-6.
      (This edition is older, but Bjarne has some gems in here not in the new 3rd ed. noted above)

    More advanced / Style based / Specific / Etc
    • Wilson, Matthew Imperfect C++ : Practical Solutions for Real-Life Programming. Addison-Wesley, 2004 ISBN 0-321-22877-4.
      (Send us your feedback on this new book!)
    • Abrahams, David, and Aleksey Gurtovoy. C++ Template Metaprogramming : Concepts, Tools, and Techniques from Boost and Beyond. Addison-Wesley, 2004. ISBN 0-321-22725-5.
      (Send us your feedback on this new book!)
    • Dewhurst, Stephen C. C++ Gotchas: Avoiding Common Problems in Coding and Design. Addison-Wesley, 2003 ISBN 0-321-12518-5.
    • Vandevoorde, David (Daveed), and Nicolai M. Josuttis C++ Templates - The Complete Guide. Addison-Wesley, 2002 ISBN 0-201-73484-2.
    • Alexandrescu, Andrei. Modern C++Design. Addison-Wesley, 2001. ISBN 0-201-70431-5.
      (This book deals with the code for the Loki library that you may have heard about on usenet.)
    • Sutter, Herb. Exceptional C++. Addison-Wesley, 2000. ISBN 0-201-61562-2.
    • Sutter, Herb. More Exceptional C++. Addison-Wesley, 2001. ISBN 0-201-70434-X.
    • Sutter, Herb, and Andrei Alexandrescu. C++ Coding Standards: 101 Rules, Guidelines, and Best Practices. Addison-Wesley, 2004. ISBN 0-321-11358-6.
      (Send us your feedback on this new book!)
    • Vandevoorde, Daveed. C++ Solutions: Companion to The C++ Programming Language Third Edition. Addison-Wesley, 1998. ISBN 0-201-30965-3.
      (This contains the answers to Stroustrup's 3rd edition.)
    • Tondo, Clovis L, and Bruce P, Leung. C++ Primer Answer Book. Addison-Wesley, 1999. ISBN 0-201-30993-9 (This contains the answers to Lippman's 3rd edition.)
    • Murray, Robert B. C++ Strategies and Tactics. Addison-Wesley, 1993. ISBN 0-201-56382-7.
    • Cargill, Tom. C++ Programming Styles. Addison-Wesley, 1992. ISBN 0-201-56365-7.
    • Coplien, James. Multi-Paradigm DESIGN for C++. Addison-Wesley, 1999. ISBN 0-201-82467-1.
    • Coplien, James. Advanced C++ Programming Styles and Idioms. Addison-Wesley, 1991. ISBN 0-201-54855-0.
      (This book is older, but still gem-ful.)
    • Hansen, Tony. The C++ Answer Book. Addison-Wesley, 1990. ISBN 0-201-11497-6.
      (This contains the answers to Stroustrup's 2nd edition.)
    • Meyers, Scott Effective C++ 2nd ed. Addison-Wesley Publishing Company, 1998. ISBN 0-201-92488-9.
    • Meyers, Scott More Effective C++. Addison-Wesley Publishing Company, 1996. ISBN 0-201-63371-X.
    • Meyers, Scott Effective C++ CD. Addison-Wesley Publishing Company, 1999. ISBN 0-201-31015-5.
      (This is a CD containing the above two books, and then some.)
    • Meyers, Scott Effective STL. Addison-Wesley Publishing Company, 2001. ISBN 0-201-74962-9.
    • Plum, Thomas, and Dan Saks. C++ Programming Guidelines. Plum Hall Inc, 1992. ISBN 0-911537-10-4.
    • Holub, Allen I. Enough Rope To Shoot Yourself In the Foot. McGraw-Hill, 1995. ISBN 0-07-029689-8.
    • Cline, Marshall P and Greg A. Lomow. C++ FAQS, 2nd ed. Addison-Wesley, 1999. ISBN 0-201-30983-1.
    • (Summit, Steve. C Programming FAQS. Addison-Wesley, 1995. ISBN 0-201-84519-9.)
    • Lakos, John. Large-Scale C++ Software Design. Addison-Wesley, 1996. ISBN 0-201-63362-0.
    • Barton, John J and Lee R. Nackman. Scientific and Engineering C++. Addison-Wesley, 1994. ISBN 0-201-53393-6.
    • Carroll, Martin D and Margaret A. Ellis. Designing and Coding Reusable C++. Addison-Wesley, 1995. ISBN 0-201-51284-X.
    • Martin, Robert C. Designing Object-Oriented C++ Applications Using The Booch Method. Prentice-Hall, 1995. ISBN 0-13-203837-4.

    The Standard C++ Library (current books)
    • Langer, Angelika and Klaus Kreft Standard C++ IOStreams and Locales. Addison-Wesley, 2000. ISBN 0-201-18395-1.
      (Send us your feedback on this new book!)
    • Austern, Mathew A. Generic Programming and the STL. Addison-Wesley, 1999. ISBN 0-201-30956-4.
    • Josuttis, Nicolai M. The C++ Standard Library. Addison-Wesley, 1999. ISBN 0-201-37926-0.

    The draft C++ library (earlier books)
    • Nelson, Mark. C++ Programmer's Guide to the Standard Template Library. IDG Books, 1995. ISBN 1-56884-314-3.
    • Musser, David R and Atul Saini. STL Tutorial and Reference Guide. Addison-Wesley, 1996. ISBN 0-201-63398-1.
    • Glass, Graham and Brett Schuchert. The STL . Prentice-Hall, 1996. ISBN 0-13-454976-7.
    • Teale, Steve C++ IOStreams Handbook. Addison-Wesley, 1993. ISBN 0-201-59641-5.
    • Plauger, P.J. The Draft Standard C++ Library. Prentice-Hall, 1995. ISBN 0-13-117003-1.

    Bible'ish:
    • NEW British Standards Institute. The C++ Standard. Wiley Publishing. ISBN 0-470-84674-7. This is a hardcover version of "C++03", the latest revision of Standard C++, with highlights to indicate where changes have taken place. Expected to be available by the end of September 2003.
    • Stroustrup, Bjarne and Margaret A. Ellis. The Annotated C++ Reference Manual aka ARM. Addison-Wesley Publishing Company, 1990. ISBN 0-201-51459-1. (Actually, this book is no longer a description of Standard C++ -- however, it contains a slew of gems worthy of remaining on this list.)
    • X3J16. American National Standard for Information Systems -- Programming Language C++. The C++ Standard document is now available to the public from the "ANSI Electronic Store"! Follow one of the links below and don't forget to register at the ANSI site:
      • C++ Standard available electronically in PDF form for $18!!!
      • C++ Standard available physically in paper form for $175

    "Collections"
    • Lippman, Stanley B. C++ Gems. SIGS, 1996. ISBN 1-884842-37-2.
    • Koenig, Andrew and Barbara Moo. Ruminations on C++. Addison-Wesley, 1997. ISBN 0-201-42339-1.

    "Inside Information":
    • Stroustrup, Bjarne. The Design and Evolution of C++. Addison-Wesley Publishing Company, 1994. ISBN 0-201-54330-3.
    • Lippman, Stanley B. Inside The C++ Object Model. Addison-Wesley, 1996. ISBN 0-201-83454-5.

    Efficiency (we offer this cautiously):
    • Bulka, Dov and David Mayhew, Efficient C++: Performance Programming Techniques. Addison-Wesley, 2000. ISBN 9-780201-379501 (Send us your feedback on this book!)
    • Lakos, John. Large-Scale C++ Software Design. Addison-Wesley, 1996. ISBN 0-201-63362-0.

  3. A minimal OO starting point
    • Booch, Grady. Object Oriented Analysis and Design With Applications. 2nd Edition. Benjamin/Cummings Publishing Company, 1994. ISBN 0-8053-5340-2.
    • Cox, Brad J. Object Oriented Programming: An Evolutionary Approach, 2nd ed. Addison-Wesley Publishing Company, 1991. ISBN 0-201-54834-8
    • Meyer, Bertrand. Object-oriented Software Construction, 2nd ed. Prentice Hall, 1997. ISBN 0-13-629155-4.
      (Also contain a CD with some "object tools".)
    • Wirfs-Brock, Rebecca, Brian Wilkersion and Lauren Wiener. Designing Object-Oriented Software. Prentice-Hall, 1990. ISBN 0-13-629825-7
    • Martin, Robert C. Designing Object-Oriented C++ Applications Using The Booch Method. Prentice-Hall, 1995. ISBN 0-13-203837-4.
    • Gamma, Erich et al. Design Patterns. Addison-Wesley, 1995. ISBN 0-201-63361-2.

  4. A minimal C starting point
  5. Magazines:
    • See C++ suggestions above.

    "Softer" Introductions
    • Prata, Stephen. C Primer Plus, 5th ed.. SAMS, 2004. ISBN 0-672-32696-5. 
      Includes discussion of C99.
    • Plum, Thomas. Learning to Program in C -- Second Edition for ANSI C. Plum Hall Inc, 1989. ISBN 0-911537-08-2.
    • Kochan, Stephen. Programming in ANSI C. Hayden Books/Sams, 1988. ISBN 0-672-48408-0.
    • King, K.N. C: A Modern Approach. W.W. Norton&Co, 1996. ISBN 0-39-396945-2.

    "Terser" Introductions
    • Harbison, Samuel P and Guy L. Steele Jr. C, A Reference Manual, 5th ed, aka C: ARM5. Prentice Hall, 2002. ISBN 0-13-089592-X. 
      Send us your feedback on this new book which includes discussion of C99.
    • Harbison, Samuel P and Guy L. Steele Jr. C, A Reference Manual, 4th ed. Prentice Hall, 1995. ISBN 0-13-326224-3.
    • Kernighan, Brian W. and D. M. Ritchie. The C Programming Language. Prentice Hall, 2nd edition, 1989. ISBN 0-13-110362-8.

    More advanced/style based/specific/etc
    • Anderson and Anderson. Advanced C Tips and Techniques. Hayden Books/Sams, 1988. ISBN 0-672-48417-X.
      (This book is now out of print, but if you can get it, do so!)
    • Koenig, Andrew. C Traps and Pitfalls. Addison-Wesley, 1989. ISBN 0-201-17928-8.
    • Plum, Thomas. Reliable Data Structures in C. Plum Hall Inc, 1985. ISBN 0-911537-04-X.
    • Jaeschke, Rex. Portability and The C Language. Hayden Books/Sams, 1988. ISBN 0-672-48428-5.
      (This book is now out of print, but if you can get it, do so!)
    • Summit, Steve. C Programming FAQS. Addison-Wesley, 1995. ISBN 0-201-84519-9.

    Bible'ish
    • NEW British Standards Institute. The C Standard: Incorporating Technical Corrigendum 1. Wiley Publishing. ISBN 0-470-84573-2. This is a hardcover version of "C99" Standard C, the latest revision of Standard C. Includes the C rationale.
    • NEW Jones, Derek. New C Standard, The: A Cultural and Economic Commentary. This is a multi-thousand page book providing a detailed analysis of, and many human and other factors relating to, the "C99" revision of Standard C. This book is available in pdf and can be downloaded fromhere
      Send us your feedback on this new book discussing C99.
    • Plauger, P.J. and Jim Brodie. ANSI and ISO Standard C. Microsoft Press, 1992. ISBN 1-55615-359-7.
      (This book is now out of print, but if you can get it, do so! Note also that it was updated in 1996 through Prentice-Hall, if that helps you locate a copy. Furthermore, Plauger, via Dinkumware, has adapted the library portion of the book into HTML, upon which it became a basis for the on-line documentation for the Dinkum C Library. Since then, he's added documentation on the library changes required by the Standard C Amendment 1, the C++ Standard, and C99. It is not the official standard, but Dinkumware claims a comprehensive on-line library reference for C89 through C99. Additions due to Amendment 1 and C99 are identified, so you can tell the age of each library feature. See: http://www.dinkumware.com/refxc.html and please honor the copying restrictions. A legitimate personal copy is now only $18.)
    • X3J11. American National Standard for Information Systems -- Programming Language C. Also, Rationale for American National Standard for Information Systems -- Programming Language C. A document, date February 14, 1990, and numbered X3J11/90-013 is now available for $50, plus $6 shipping and handling through: ANSI, Sales Dept, 11 West 42nd Street, New York NY 10036, 212-642-4900, FAX 212-302-1286. Check or money order only. No credit cards. Allow 10 days to fill the order. Actually, we don't know if the above is still possible for purchase though ANSI, since in October 1999, the ANSI/ISO C committee issued a revision to C, aka C99, hence establishing a new version of Standard C. Anyway, http://www.comeaucomputing.com/iso contains a possible way to obtain a copy of the old standard, and a link to the ANSI store in which to purchase C99 electronically.
http://www.comeaucomputing.com

没有评论: