The "classics"

Piercarlo Grandi pcg at aber-cs.UUCP
Sun Dec 11 11:41:02 AEST 1988


In article <809 at unh.UUCP> pl at 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 at cs.aber.ac.uk
Sw.Eng. Group, Dept. of Computer Science	UUCP: ...!mcvax!ukc!aber-cs!pcg
UCW, Penglais, Aberystwyth, WALES SY23 3BZ (UK)



More information about the Comp.unix.wizards mailing list