[comp.lang.c] The "classics"

pl@unh.UUCP (Paul E. Leclerc) (12/09/88)

        I am cross-posting this because this list is of interest to many.


   I have been collecting a list of "classic" books that I use in my job.
Many are C/Unix oriented but many are not.  I would like to solicit other
people's opinions (Esp.  people like Torek,Spencer and Gwyn !!!!).  Hopefully
this list will help to prevent questions like: "What is the best book
on bladyblah?" I would like complete information, ie Authors' full
names, Publisher, Publisher's Address, and ISBN and Subject.
With all of this information, it makes it MUCH easier to order the book.
   Rather than start a flame war/good/bad/ugly contest, I am presenting
this list as a SUGGESTION to what is out there.  If you don't like one of
the books listed, remove it.
   I would especially like suggestions for more numerical methods and graphics
books as my exposure is limited but my interest high.  I have left out
certain books because I did not have complete information.  I will be
creating a similar list for PC's and Mac's so I'll take them too.
   This list is formatted for use in the "bibtool" family.  Cut out
all the garbage before and after the list and run indxbib on it.  With
the database it creates, you can search for books based on certain
keywords.

                                     Enjoy  (Merry Christmas)
                                       Paul Leclerc

-----------------------------------------------------------------------------
Publishers Addresses
-----------------------------------------------------------------------------
If you have more complete addresses and phone numbers, please pass them on.


Addison-Wesley Publishing Co.
Reading, MA

John Wiley & Sons
New York, NY

McGraw-Hill Co.
1221 Avenue of the Americas
New York, NY 10020

Prentice-Hall, Inc.
Englewood Cliffs, NJ 07632

PWS-Kent Publishing Co.
20 Park Plaza
Boston, MA  02116

-----------------------------------------------------------------------------
Legend
%T   Title
%A   Author
%I   Publisher (Issuer)
%G   ISBN (Government order number)
%S   Subject
--------------------------------- BEGIN -------------------------------------
%T The C Programming Language
%A Brian W. Kernighan
%A Dennis M. Ritchie
%I Prentice-Hall
%G 0-13-110163-3
%S C

%T The C Programming Language   Second Edition
%A Brian W. Kernighan
%A Dennis M. Ritchie
%I Prentice-Hall
%G 0-13-110362-8
%S C

%T C : A Reference Manual   First Edition
%A Samuel P. Harbison
%A Guy L. Steele Jr.
%I Prentice-Hall
%G 0-13-11008-4  Paperback
%S C

%T C : A Reference Manual   Second Edition
%A Samuel P. Harbison
%A Guy L. Steele Jr.
%I Prentice-Hall
%G 0-13-109802-0
%S C

%T Proficient C
%A Augie Hansen
%I Microsoft Press
%G 1-55615-007-5
%S C

%T Crafting C Tools for the IBMPCs
%A Joe Campbell
%I Prentice-Hall
%G 0-13-188418-2
%S C

%T Portable C and Unix System Programming
%A J. E. Lapin
%I Prentice-Hall
%G 0-13-686494-5
%S C

%T Programs and Data Structures in C
%A Leendert Ammeraal
%I John Wiley and Sons
%G 0-471-91751-6
%S C
%S Algorithms

%T Data Structures, Algorithms, and Program Style Using C
%A James F. Korsh
%A Leonard J. Garrett
%I PWS-Kent Publishing Co.
%G 0-87150-099-X
%S C
%S Algorithms

%T The Unix C Shell Field Guide
%A Gail Anderson
%A Paul Anderson
%I Prentice-Hall
%G 0-13-937468-X
%S Unix

%T The Design of the Unix Operating System
%A Maurice J. Bach
%I Prentice-Hall
%G 0-13-201799-7
%S Unix

%T The Unix Programming Environment
%A Brian W. Kernighan
%A Rob Pike
%I Prentice-Hall
%G 0-13-937681-X
%S Unix

%T Unix in a Nutshell : Berkeley Edition
%A O'Reilly & Associates, Inc.
%I O'Reilly & Associates, Inc.
%G 0-9317175-20-X
%S Unix

%T Algoritms  Second Edition
%A Robert Sedgewick
%I Addison-Wesley
%G 0-201-06673-4
%S Algorithms

%T Software Tools in Pascal
%A Brian W. Kernighan
%A P. J. Plauger
%I Prentice-Hall
%G 0-201-10342-7
%S Algorithms
%S Tools

%T Data Structures Using Pascal
%A Aaron M. Tenenbaum
%A Moshe J. Augenstein
%I Prentice-Hall
%G 0-13-196501-8
%S Algorithms

%T Compilers  Principles, Techniques, and Tools
%A Alfred V. Aho
%A Ravi Sethi
%A Jeffery D. Ullman
%I Addison-Wesley
%G 0-201-10088-6
%S Compilers

%T Software Engineering Handbook
%A General Electric Co.
%I McGraw-Hill
%G 0-07-023165-6
%S Software Engineering

%T Software Engineering: Planning for Change
%A David Alex Lamb
%I Prentice-Hall
%G 0-13-822982-1
%S Software Engineering

%T The AWK Programming Language
%A Alfred V. Aho
%A Weinberger
%A Brian W. Kernighan
%I Addison-Wesley
%G 0-201-07981-X
%S Unix
%S Utilities

%T The Art of Computer Programming Volume 2 : Seminumerical Algorithms
%A Donald E. Knuth
%I Addison-Wesley
%G 0-201-03822-6
%S Numerical Methods

%T Geometric Modeling
%A Mechael E. Mortenson
%I John Wiley & Sons
%G 0-471-88279-8
%S Numerical Methods

%T Computer Applications of Numerical Methods
%A Shan S. Kuo
%I Addison-Wesley
%G 0-201-03956-7
%S Numerical Methods

%T Numerical Recipes in C : The Art of Scientific Computing
%A William H. Press
%A Brian P. Flannery
%A Saul A. Teukolsky
%A William T. Vetterling
%I Cambridge University Press
%G 0-521-35465-X
%S Numerical Methods

%T Fundamentals of Interactive Computer Graphics
%A J. D. Foley
%A A. Van Dam
%I Addison-Wesley
%G 0-201-14468-9
%S Graphics

%T Understanding PHIGS
%A Maxine D. Brown
%I Template Graphics
%G No ISBN
%S Graphics

%T The TeXbook
%A Donald E. Knuth
%I Addison-Wesley
%G 0-201-13448-9
%S Text Preparation

%T LaTeX  A Document Preparation System
%A Leslie Lamport
%I Addison-Wesley
%G 0-201-15790-X
%S Text Preparation

%T PostScript Language Tutorial and Cookbook
%A Adobe Systems Inc.
%I Addison-Wesley
%G 0-201-10179-3
%S Postscript

%T Postscript Language Reference Manual
%A Adobe Systems Inc.
%I Addison-Wesley
%G 0-201-10174-2
%S Postscript

%T MC68020 32-Bit Microprocessor User's Manual
%A Motorola Inc.
%I Prentice-Hall
%G 0-13-566860-3
%S Architecture
%S Assembly Language

%T VAX 11-780 Architecture Handbook
%A Digital Equipment Corp.
%I Digital Press
%G No ISBN
%S Architecture
%S VAX

%T VAX Architecture Reference Manual
%A Timothy E. Leonard - Editor
%I Digital Press
%G 0-932376-86-X
%S Architecture
%S VAX

%T VAX-11 Assembly Language Programming
%A Sara Baase
%I Prentice-Hall
%G 0-13-940957-2
%S Assembly Language
%S VAX
--------------------------------- END ---------------------------------------
-- 
===========================================================================
Paul Leclerc,  Computer Specialist III |Bitnet:    P_LECLERC@UNHH.BITNET
Univ. of NH                            |UUCP:      ...uunet!unh!pel
===========================================================================

pcg@aber-cs.UUCP (Piercarlo Grandi) (12/11/88)

In article <809@unh.UUCP> pl@unh.UUCP (Paul E. Leclerc) writes:
    
       I have been collecting a list of "classic" books that I use in my
       job.  Many are C/Unix oriented but many are not.  I would like to
    solicit other people's opinions (Esp.  people like Torek,Spencer and Gwyn
    !!!!).  Hopefully this list will help to prevent questions like: "What is
    the best book on bladyblah?"

I will add my own Never Humble Opinions.

    I would like complete information, ie Authors' full names, Publisher,
    Publisher's Address, and ISBN and Subject.  With all of this information,
    it makes it MUCH easier to order the book.

Well, because of a space crunch, waiting for my new machine, I had to unload
my bib database... On the other hand the publishers are almost always the same
precious few you mention, and I am confident (for good reason) that I
remember by heart the title and authors...

       Rather than start a flame war/good/bad/ugly contest, I am presenting
    this list as a SUGGESTION to what is out there.  If you don't like one of
    the books listed, remove it.

       I would especially like suggestions for more numerical methods and
       graphics books as my exposure is limited but my interest high.

Those are not my forte, but will try to help...

First, some comments on some of the books. You want a list of CLASSICS, not
merely useful books; some of them don't fall in the first cathegory.

I will not object to all those that I find objectionable, only to some in
random order.

    %T Proficient C
    %T Crafting C Tools for the IBMPCs
    %T Programs and Data Structures in C
    %T Portable C and Unix System Programming
    %T The Unix C Shell Field Guide
    %T The AWK Programming Language
    %T Unix in a Nutshell : Berkeley Edition

Not really classics, just handy references or ligthweigth introductions...


Let's now start with my list of classics:

%A Rochkind
%T Advanced Unix programming

%A AT&T
%T Unix System V Man & Doc
%I Prentice Hall

%A UCB
%T Unix 4.[23]BSD Man & Doc
%I Usenix

%A Knuth
%T Art of Computer programming Vol. 1
%I Addison Wesley
%X Indispensable. Who has not read this book many times cannot
be called "programmer" or "computer scientist".

%A Knuth
%T Art of Computer programming Vol. 3
%I Addison Wesley

%A Dijkstra
%A Dahl
%A Hoare
%T Structured programming
%A Academic
%X Indispensable. Who has not read this book many times cannot
be called "programmer" or "computer scientist". Pay great attention to the
almost forgotten papers by Hoare and Dahl, they are much more important than
their relative obscurity indicates (almost everybody references this book for
Dijkstra's paper only). Hoare's is the seminal, truly brilliant unparalled
exposition on type systems (where else you are introduced so well to the
extremely important concepts of cardinality and its denseness/sparseness),
such as can be found, in a very limited subset, in Pascal. Dahl's is written
in a not very exciting style, but it is one of the rare papers outside the
Lisp community on *control* abstraction (coroutines, generators, etc...).

%A Dijkstra
%T A discipline of programming
%A Academic

%A Wirth
%T Introduction to programming
%X Very simplified, but highly recommended.

%A Wirth
%T Data structures + algorithms = programs

%A Wirth
%T Pascal
%I Springer Verlag

%A Tanenbaum
%T Computer Networks
%I Prentice Hall

%A Shaw
%T The logical design of operating systems
%X There are other fine books on operating systems, but this is the neatest
in the shorted space.

%A Organick
%T The design of the Multics system
%X Extraordinarily important to understand a lot of operating system
history, e.g. the evolution of UNIX.

%A Organick
%T The design of the Burroughs 5500 system
%X The architecture of the Burroughs machines is a classic, and this is
a classic book on them.

%A Morris
%A Ibbett
%T The MU5 computer system
%X A real classic in mainframe and operating system design and implementation.
Almost unknown to most, it is also written in an extraordinaryly gifted
way.

%A IFIP
%T Revised report on the algorithmic language Algol68
%I Springer Verlag
%X Not very popular, but it has had immense influce on language design, from
Ada to C++.

%T Two level grammars
%I Elsevier
%X Two level grammars may not be popular, but this is the the only book I
know on the subject, and is extremely well done. A classic, in an unjustly
unpopular subject.

%T The denotational semantics of programming languages
%X I don't remember author or publisher, but it is a small thin book, very
well written.

%A Wiederhold
%T Database design
%I Wiley
%X Includes everything, most lucidly; as a single, universal, reference, much
better than the still excellent books by Date or by Ullman, etc...

%A Gries
%T Compiler construction
%X Old, even dated, but really a classic...

%A Wilkinson
%T The algebraic eigenvalue problem
%X A real numerical analysis classic. Indispensable to numerical analysts,
even if I did not go beyond the first few pages...

%T Numerical Analysis
%I SCHAUM
%X an extraordinary little gem in the SCHAUM series. I don't remember the
name of author, that must be praised for having written, under the pretense
of a book of exercises, the most concise, readable introduction to numerical
analsys I have seeen.

%A Birtwistle
%T SIMULA BEGIN

%A Dahl
%A Nyigaard
%A ?
%T The Simula67 language
%X Not very popular, but it has had immense influence on language design,
notably Smalltalk and C++.

%A Richards
%T The BCPL language
%X Not very popular, but it has had immense influce on language design,
notably C, and on Xerox research.

%T Smalltalk 80: the language and its implementation
%I Addison Wesley

%T Smalltalk 80: Bits of history, words of advice.
%I Addison Wesley
%X Invaluable collection of papers on object oriented implementation.

%A Stroustrup
%T C++
%I Prentice Hall

%A Cox
%T Objective C
%X Not very well written (in my never humble opinion), it is a classic
because it points to a possible, well thought out, already popular path
of C evolution.

%A Unix Papers
%X Collection of papers on Unix and C, from the docs, various
journals (notably BSTJ), etc..., makes them more easily accessible.

%A Allen
%T Anatomy of Lisp
%X A real classic, ought to be read also by non Lisp programmers.

%A Barron
%T Recursion
%X A little gem on recursive programming. Maybe a bit dated, but a classic.

%A Cole
%T Macros
%I Cambdrige
%X All you ever wanted to know on macro processing. Old, but not dated. And
where else you can learn of TRAC, ML/1, etc... ?

%T The IBM PC inside out
%X If you really want to understand PCs/ATs...

%A Morse
%A Isaacsoon
%A Stevens
%T The 80386
%X The most lucid, complete exposition of the 80386 architecture.
Note that it is not a programming manual! There is a previous book on the
80286. One may not like the 80x86 family, but it IS important, and some ideas
in operating system support are quite interesting.


This is of course a highly subjective list. It is also probably somewhat
inaccurate, as it has been brain dumped after midnight... Several entries are
be missing, and I will add these and correct inaccuracies as soon as I get
home (to look at the actual books), or my bib database (for the books I have
not here). Notably missing from this booklist are classic journal articles
(e.g. Baker's on realtime garbage collection, Dijkstra's on THE, Morris on
hashing, ...), and classic dissertations and technical reports (e.g. Reid's
on naming and synchronization on distributed systems, Rashid's on Accent IPC,
...), and classic proceedings (e.g. several NATO software engineering
proceedings, some SIGOPS, ...).

Most books I listed are fairly old; after all that is almost a requisite for
classics.  Some recent books may be considered classics (e.g. Comer's on
TCP/IP or the one on capability system published by Digital, on which I will
have more precise ideas as soon as I manage to buy and read them for real...).

Please do not comment on my choices, especially by mail. Post for the benefit
of everyone only those comments where you feel that a choice is really
inappropriate, not a mere matter of preference, to avoid endless argument
about preferences; rather post your additions (or corrections of factual
mistakes).
-- 
Piercarlo "Peter" Grandi			INET: pcg@cs.aber.ac.uk
Sw.Eng. Group, Dept. of Computer Science	UUCP: ...!mcvax!ukc!aber-cs!pcg
UCW, Penglais, Aberystwyth, WALES SY23 3BZ (UK)

seeger@beach.cis.ufl.edu (F. L. Charles Seeger III) (12/12/88)

In article <372@aber-cs.UUCP> pcg@cs.aber.ac.uk (Piercarlo Grandi) writes:
|In article <809@unh.UUCP> pl@unh.UUCP (Paul E. Leclerc) writes:
|    
|%T The denotational semantics of programming languages
|%X I don't remember author or publisher, but it is a small thin book, very
|well written.

Is this it (copyrighted 1979)?

%T The Denotational Description of Programming Languages, An Introduction
%A Michael J. C. Gordon
%I Springer-Verlag
%G 0-387-90433-6

--
  Charles Seeger            216 Larsen Hall
  Electrical Engineering    University of Florida
  seeger@iec.ufl.edu        Gainesville, FL 32611

scs@adam.mit.edu (Steve Summit) (12/12/88)

Well!  Your (excellent) list hit all but two of the books in the
stack right here on my desk.  The other two, both undisputed
classics, neither specific to Unix, C, nor graphics, and neither
of them new, but timeless, and deserving of a wider audience
because frightful numbers of people have evidently never read
them, and imagine themselves to be discovering for the first time
ideas that have been in print for decades, are:

	The Psychology of Computer Programming, by Gerald M.
	Weinberg.  Van Nostrand Reinhold, 1971, ISBN 0-442-29264-3.

	The Elements of Programming Style, by Brian W. Kernighan
	and P.J. Plaugher.  The second edition was published by
	McGraw-Hill in 1978 and is ISBN 0-07-034207-5; the first
	edition was published in 1974.

                                            Steve Summit
                                            scs@adam.pika.mit.edu

slf@well.UUCP (Sharon Lynne Fisher) (12/13/88)

>%A Tanenbaum
>%T Computer Networks
>%I Prentice Hall

Count me as another vote for this book.  By the way, there's now a second
edition (orange cover rather than blue) that drops a lot of the theoretical
stuff and includes a lot of good stuff on OSI, TCP/IP, etc.

The Mythical Man Month is another good one.

gwyn@smoke.BRL.MIL (Doug Gwyn ) (12/13/88)

It seems to me that there are two major categories of "classic"
technical books:  those that should be read by anyone working in
the field, and those that serve as valuable references while
doing one's job.  For example, the two BSTJ/BLTJ issues on UNIX
fall into the first category while Abramowitz & Stegun falls
into the second.  Some books may fall into both categories (K&R
for example).

norm@oglvee.UUCP (Norman Joseph) (12/15/88)

My $.02 worth:

%A Jon Bentley
%T Programming Pearls
%I ( Prentice Hall? Addison Wesley? )

This may not be `strictly' classic, but it is full of those little tidbits
that you usually have to dig for to find in other books of this genre.  I
would rank it up there with Kernighan & Plauger's _Software Tools In Pascal_.

Bentley also wrote a good book about efficient programming (when and when not
to bother optimizing parts of your code, space/time tradeoffs, etc.), but
I'll be damned if I can remember the name!  Anyone out there know?

Norm

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*//////////////////////////////////////
 Norm Joseph                   | UUCP: ...!{pitt,cgh}!amanue!oglvee!norm
 Oglevee Computer System, Inc. | "Everything's written in stone, until the
 Connellsville, PA  15425      |  next guy with a sledgehammer comes along."
/////////////////////////////////////*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

reggie@pdn.UUCP (George W. Leach) (12/20/88)

In article <442@oglvee.UUCP> norm@oglvee.UUCP (Norman Joseph) writes:

>Bentley also wrote a good book about efficient programming (when and when not
>to bother optimizing parts of your code, space/time tradeoffs, etc.), but
>I'll be damned if I can remember the name!  Anyone out there know?

   "Writing Efficient Programs", Jon L. Bentley, Prentice-Hall, 1982.



-- 
George W. Leach					Paradyne Corporation
..!uunet!pdn!reggie				Mail stop LG-129
Phone: (813) 530-2376				P.O. Box 2826
						Largo, FL  USA  34649-2826