From: folsom@bigmax.UUCP (Al Folsom)
Newsgroups: comp.lang.c
Subject: C Book Bibliography
Keywords: Books
Date: 11 Jan 93 13:48:02 GMT
Organization: Fischer & Porter Co., Warminster, PA.

I recently received email from Kevin Cole at Galluadet regarding
recommendations for C books, and all my email to him has bounced
back.  Since several other people have also asked recently about 
C Books, I guess I'll repost the following bibliography I put to
gether for a C course I've been teaching.

It's due for revision.  Particularly, I understand the Standard
no longer includes the Rationale.  A pity.  Also, I'm looking at
a new textbook, "The Joy of C" published by John Wiley, which 
looks like it has lots of good examples which come on a disk with
the book, although the organization is a bit disjointed.  
Unfortunately, my copy is at home, I don't have the authors' names 
handy.

Kevin, I hope this finds you, and is of some use to others on the net.

Al F.
+-------------------------------------------------------------------+
| Al Folsom                 | Object Oriented Programming?  We've   |
| Fischer & Porter Co.      | been doing that for years...          |
| ...uunet!bigmax!folsom    |                                       |
| also folsom@decus.org     | When the customer objects to the way  |
| KY3T@WA3TSW (Ham)         | it works, we go program some more!    |
+-------------------------------------------------------------------+


*********************************************************************


The  following  is  an  annotated  bibliography  of  books  relating  to  C
programming.   The  criteria for inclusion here are twofold.  First, I have
looked for texts which relate to C  programming  in  general,  rather  than
being  specific  to graphics programming, Unix system programming, or what-
have-you.  Many texts are available about C and some special topic,  you're
on  your  own  for  those.  Second, I believe that all these books are well
written, accurate, and useful.  Most of them I have reviewed myself, a  few
are  included  because  of  strong  recommendations  received from multiple
sources.  I have not included works regarding C++,  which  is  an  entirely
different list.  Comments, modifications, or questions are always welcome.

Al Folsom
18 August 1992
          _______________________________________________________



                              C BIBLIOGRAPHY


                            INSTRUCTIONAL BOOKS
                                    ---


The following three texts are written for experienced  programmers,  or  at
least for people who already "think" like programmers.
                                    ---


[ ] "The C Programming Language" (1st ed.)
    Brian W. Kernighan & Dennis Ritchie
    1978, Prentice Hall ISBN: 0-13-110163-3

    This was the first, and for many years the only, text on C.  Written by
    the  authors  of  the  language,  it  was  the  cornerstone  of early C
    development and is still humorously referred to as "The Old Testament."
    Although  it is available in many bookstores, it is now drastically out
    of date.  The  only  reasons  for  purchasing  it  at  this  point  are
    historical  interest, or a job which requires maintaining some very old
    software.


[ ] "The C Programming Language" (2nd ed.)
    Brian W. Kernighan & Dennis Ritchie
    1988, Prentice Hall ISBN: 0-13-110362-8

    This ("The New Testament") is the updated version of the  original  K&R
    (Kernighan  &  Ritchie)  text,  and  can  be distinguished by the words
    "Second Edition" and "ANSI C" on the cover in  red.   It  includes  the
    modifications  incorporated  by  the ANSI standard, while retaining the
    nature of the 1st edition.  If you are building a library of  C  books,
    this is the first one you should get.


[ ] "C A Reference Manual" (3rd ed.)
    Samual P. Harbison & Guy L. Steele Jr.
    1991, Prentice Hall.  ISBN: 0-13-110933-2

    This text is widely used in industry as both a  text  and  a  reference
    manual  for  C  programmers.   It is somewhat more verbose than the K&R
    book, and also makes an effort to cover both ANSI and "traditional"  C.
    A  particularly  good  point  of  this book, in my opinion, is that the
    authors point out concerns relating to C implementations for  different
    computers  or  operating  systems.   It  also has a section on the ANSI
    standard library functions.  If you are new to programming,  this  text
    might be a bit overwhelming.

The remainder of the books  in  this  section  are  oriented  more  towards
instruction, and less experienced programmers, than the above three titles.
                                    ---


[ ] "C A Software Engineering Approach" (2nd ed.)
    Peter A. Darnel & Phillip E. Margolis
    1991, Springer Verlag  ISBN: 0-387-97389-3

    Despite a few misprints, this is an excellent textbook  for  C.   Major
    differences  between ANSI and Pre-ANSI C are highlighted in large, hard
    to miss boxes.  Also highlighted in boxes are common bugs which afflict
    both  experienced  and  inexperienced  C programmers.  These boxes then
    have  their  own  index.    Particularly  nice   features   include   a
    diagrammatic  syntax  for  the  C language, a section on implementation
    limits, a listing of ANSI/K&R differences, a good, easy to read section
    on  the  standard  library,  and  finally  a  section  on good software
    engineering (which many C students could use).  The last is accompanied
    by the source for a C interpreter, which is great example software.


[ ] "A Book On C" (2nd ed.)
    Al Kelly & Ira Pohl
    1990, Benjamin Cummings  ISBN:0-8053-0060-0

    A more chatty book than many others, this book includes  more  examples
    and more detailed explanations than the texts above.  The basics of the
    language are covered, as well as techniques such as  linked  lists  and
    trees.  Some specifics for MSDOS and UNIX are covered.



[ ] "The Waite Group's New C Primer Plus"
    Mitchell Waite and Steven Prata
    Howard W. Sams & Co.  ISBN: 0-672-22687-1

    This has been highly recommended  as  a  readable  introduction  to  C,
    especially  for  those  without  a  programming  background.   It steps
    through the basics with clear discussions and many examples.


[ ] "Programming in ANSI C"
    Kochan
    Hayden Books  ISBN: 0-672-48408-0

    Another book  with  multiple  recommendations  as  being  an  excellent
    introductory text with frequent examples and good text.



                                REFERENCE BOOKS
                                      ---


[ ] "American National Standard for Information Systems -
    Programming Language - C"
    ANSI X3.159-1989
    1990, American National Standards Institute

    This is the official standard for the C language, completed by ANSI  in
    1989.   For  language  lawyers,  this  is  THE  source.   Of particular
    interest  is  the  rationale,  published  with  the  standard  but  not
    officially  part  of  it.   The rationale explains the reasoning behind
    many of the decisions taken by the committee, giving  an  insight  into
    the standards making process.


[ ] "Standard C"
    P.J. Plauger & Jim Brodie
    1989, Microsoft Press  ISBN: 1-55615-158-6

    This is a complete and inexpensive pocket reference  to  the  language.
    It  includes  all standard features, the standard libraries, and a good
    section on portability.  It could use a better index, but at $7.95 is a
    bargain as a reference.


[ ] Your compiler's documentation.  You do have this, don't you?   It  came
    in the same box as the disks.  This should be your primary resource for
    questions which are specific to your compiler.  Remember,  topics  such
    as  how  you  run the debugger, how you draw circles on the screen, how
    you create libraries, and how the editor works have little  or  nothing
    to  do  with  the  C language per se.  Check your own documentation for
    this stuff!


[ ] Turbo C/C++ the Complete Reference
    Herbert Schildt
    1990, McGraw Hill  ISBN: 0-07-881535-5

    If you MUST buy a manual specific to  a  particular  C  implementation,
    they are available.  This book, for example, covers in great detail the
    implementation and extensions to standard C included in Borland's Turbo
    C  package.   Also included are explanations of the Turbo C development
    environment.  Beware:  This is neither a good  textbook  (there  is  no
    discussion  of  strings, for instance), nor is it a good description of
    standard C.  Borland specific functions are intermingled with  standard
    library functions, and you must really dig to determine the difference.
    Given these caveats, it is a reasonable reference to have on your desk.
    Similar books exist, I'm sure, for most C environments.



                              MISCELLANEOUS BOOKS
                                      ---


[ ] "The Standard C Library"
    PJ Plauger
    1992 Prentice Hall  ISBN: 0-13-131509-9

    Presents, justifies, and explains a complete implementation of the ANSI
    libraries.   If  you understand the language, but want more information
    on the standard libraries, this is the place to look.


[ ] "C Traps & Pitfalls"
    Andrew Koenig
    Addison-Wesley  ISBN: 0-201-17928-8

    An excellent book, describing many of the programming errors common  in
    the C community.  If you want your programs to work because the code is
    correct, rather than just through luck or trial and error, this is  the
    book to read.


[ ] C Programming Guidelines (2nd ed.)
    Thomas Plum
    1989, Plum Hall Inc.  ISBN: 0-911537-07-4

    This is a description of programming standards for C.  It is formulated
    as a series of manual pages, each dealing with a separate issue.  While
    it makes for rather dry reading, it is a good starting point for either
    someone  new  to  C style, or someone developing a C standard for a new
    project.  For corporate accounts, the manual  pages  are  available  in
    electronic  form from the publisher, should you wish to include them in
    your own company standard.


[ ] "The C Puzzle Book" (2nd ed.)
    Alan R. Feuer
    1989, Prentice Hall  ISBN: 0-13-115502-4

    Discusses C from  the  viewpoint  of  "what  does  the  following  code
    produce?"   Lots  of  interesting and testing puzzles, with answers.  I
    have not yet read the second edition, but assume it is similar  to  the
    first, updated for ANSI C.


[ ] "Numerical Recipes in C"
    Press, Flannery, Teukolsky, & Vetterling
    1988, Cambridge University Press  ISBN: 0-521-35465-X

    This is a real tome!  Most  C  projects  do  not  center  around  heavy
    numerical  calculations,  but if you need to do that type of work, this
    book can be invaluable.  Be warned, though, this is not light  reading!
    A  companion volume of the example code is available, as are disks with
    the software.


[ ] "Indian Hill C Style and Coding Standards"
    Cannon, Elliott, Kirchoff, Miller, Milner, Mitze, Schan, Whittington
    1990, Bell Labs

    This is not a book, but a paper by the  above  authors.   Modifications
    have  been  made  by  Henry Spencer, David Keppel, and Mark Brader.  It
    recommends a specific coding style for C programs, and has been  widely
    accepted  in  the  C community.  If you program to conform to the style
    recommended here,  you  will  not  only  be  in  step  to  the  largest
    percentage of the C world, but will be using a style designed to reduce
    errors and encourage portability.  Not published in a formal sense,  it
    is  freely  distributed,  and is available from a variety of sources in
    electronic form.


Newsgroups: comp.lang.c