Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SICP and other Scheme books?

89 views
Skip to first unread message

DGB...@psuvm.psu.edu

unread,
Jan 21, 1992, 6:36:25 PM1/21/92
to
I have just started to investigate Scheme and I'm looking for some books
to aid me in my travels. I have seen several references to "SICP" and
from all indications this seems the best starting point. What do the
letters stand for and who publishes it?

I will be using Gambit Scheme v.1.7.1 on the Macintosh for my experiments.
I do have some experience with Pascal and C but I am not a programmer by
trade. (Not yet anyway, but that is another story...) Any and all advice
will be appreciated.

Thanks in advance,
DGB103

****************************************************************************
Bitnet: DGB103 at psuvm *
Internet: dgb...@psuvm.psu.edu * Under Construction!!
*
****************************************************************************

Brian Harvey

unread,
Jan 21, 1992, 10:12:37 PM1/21/92
to
<DGB...@psuvm.psu.edu> writes:
>I have seen several references to "SICP" and
>from all indications this seems the best starting point. What do the
>letters stand for and who publishes it?

_Structure_and_Interpretation_of_Computer_Programs_ by Harold Abelson and
Gerald Jay Sussman with Julie Sussman (MIT Press/McGraw Hill, 1985) is the
best book ever written about computer science. [What? You want me to say
"imho"? Nah, no question of opinions involved! :-) ]

It uses Scheme as the vehicle for exploring big ideas in computer science
(functional programming, object-oriented programming, stuff like that); the
teaching of Scheme itself is incidental to this purpose.

You should unquestionably read SICP. There are other books that are more
directly about Scheme itself, e.g., _Programming_in_Scheme_ by Michael
Eisenberg (Scientific Press; editions for PC Scheme and MacScheme).

Another great book, sort of in between in that both Scheme and Great Ideas
are addressed, is _Scheme_and_the_Art_of_Programming_ by George Springer
and Daniel P. Friedman (MIT Press/McGraw-Hill, 1989). The authors think
this is easier than SICP but I don't.

Sorry to all the people I left out... These are my favorites.

lav...@csgrad.cs.vt.edu

unread,
Jan 22, 1992, 9:49:48 AM1/22/92
to
In article <knpo95...@agate.berkeley.edu> b...@anarres.Berkeley.EDU (Brian Harvey) writes:
><DGB...@psuvm.psu.edu> writes:
>>I have seen several references to "SICP" and
>>from all indications this seems the best starting point. What do the
>>letters stand for and who publishes it?
>
>_Structure_and_Interpretation_of_Computer_Programs_ by Harold Abelson and
>Gerald Jay Sussman with Julie Sussman (MIT Press/McGraw Hill, 1985) is the
>best book ever written about computer science. [What? You want me to say
>"imho"? Nah, no question of opinions involved! :-) ]

This reminds me, I've always meant to ask people what they thought were
the "must-haves" for a Computer Scientist's bookshelf. I would argue:
SICP
All volumes of Knuth's "Art of Computer Programming"
"Algorithms" by Sedgewick (great references for algo's and data structs)

What else would people like to add to this?

Thanks,

Joe

Brian Harvey

unread,
Jan 22, 1992, 10:11:59 AM1/22/92
to
lav...@csgrad.cs.vt.edu writes:
>This reminds me, I've always meant to ask people what they thought were
>the "must-haves" for a Computer Scientist's bookshelf. I would argue:
> SICP
> All volumes of Knuth's "Art of Computer Programming"
> "Algorithms" by Sedgewick (great references for algo's and data structs)

Having taught a data structures course out of Sedgewick, I have come to
hate it. The main reason is that he is so terrified of recursion that he
will present an incomprehensible mass of spaghetti rather than use a clear
two-line recursive function. A secondary reason is that he insists on
using single-letter variable names; this is such a bad idea that he himself
gets confused sometimes in the explanatory text surrounding a program.

There really isn't anything besides SICP and Knuth that I refer to often,
not counting reference manuals for specific software. But I give a place
of honor on the shelf to _Godel, Escher, Bach_ for capturing the flavor
of computer science as religion; newcomers to the field shouldn't miss it.

Dennis Brueni

unread,
Jan 22, 1992, 11:52:35 AM1/22/92
to
In article <20...@creatures.cs.vt.edu> lav...@csgrad.cs.vt.edu writes:
>
>This reminds me, I've always meant to ask people what they thought were
>the "must-haves" for a Computer Scientist's bookshelf. I would argue:
> SICP
> All volumes of Knuth's "Art of Computer Programming"
> "Algorithms" by Sedgewick (great references for algo's and data structs)
>
>What else would people like to add to this?

Garey and Johnson, "Computers and Intractability, A Guide to..."
The Dragon books on compilers.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dennis Brueni bru...@theory.cs.vt.edu "Envision \eqv n^{vision}."
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dennis Brueni bru...@theory.cs.vt.edu "Envision \eqv n^{vision}."

Stefan Kahrs

unread,
Jan 22, 1992, 12:43:19 PM1/22/92
to

[...]


> This reminds me, I've always meant to ask people what they thought were
> the "must-haves" for a Computer Scientist's bookshelf. I would argue:
> SICP
> All volumes of Knuth's "Art of Computer Programming"
> "Algorithms" by Sedgewick (great references for algo's and data structs)
>
> What else would people like to add to this?

Aho, Sethi, Ullman "Principles of Compiler Design"
Barendregt "The Lambda Calculus"
Bauer, Woessner "Algorithmic Language and Program Development"
Hopcroft, Ullman "Introduction to Automata Theory, Languages and Computation"
Schmidt "Denotational Semantics"

Of course far from being complete.

> Joe

--
Stefan M. Kahrs JANET: s...@uk.ac.ed.dcs
LFCS, Dept. of Computer Science UUCP: ..!mcvax!ukc!lfcs!smk
University of Edinburgh ARPA: smk%dcs.ed...@nsfnet-relay.ac.uk
Edinburgh EH9 3JZ, UK. Tel: 031-650-5139

Gerald (Jerry) KUCH

unread,
Jan 22, 1992, 11:12:05 AM1/22/92
to


I'll throw in a vote for "Introduction to Algorithms" by Cormen, Leiserson,
and Rivest. Well written, up to date, and complete.

When is Knuth supposed to finish Volume IV anyway?

>Thanks,
>
>Joe


--
Jerry Kuch (je...@cs.mcgill.ca) -**Home of the Ever Changing .plan File!**-
"I was wrong to play God. Life is precious, not a thing to be toyed with.
Now take out that brain and flush it down the toilet."
--- M. Burns "Treehouse of Horror II"

Jim Giles

unread,
Jan 22, 1992, 3:51:04 PM1/22/92
to
In article <SMK.G...@scarp.ed.ac.uk>, s...@scarp.ed.ac.uk (Stefan Kahrs) writes:
|> In article <20...@creatures.cs.vt.edu> lav...@csgrad.cs.vt.edu writes:
|>
|> [...]
|> > This reminds me, I've always meant to ask people what they thought were
|> > the "must-haves" for a Computer Scientist's bookshelf. I would argue:
|> > SICP
|> > All volumes of Knuth's "Art of Computer Programming"
|> > "Algorithms" by Sedgewick (great references for algo's and data structs)
|> >
|> > What else would people like to add to this?
|>
|> Aho, Sethi, Ullman "Principles of Compiler Design"
|> Barendregt "The Lambda Calculus"
|> Bauer, Woessner "Algorithmic Language and Program Development"
|> Hopcroft, Ullman "Introduction to Automata Theory, Languages and Computation"
|> Schmidt "Denotational Semantics"

For historical interest:

Dijkstra "A Discipline of Programming"
Dijkstra, Dahl, Hoare "Structured Programming"

By the way, I thoroughly agree with the choice of Schmidt for denotational
semantics. But, for automata and language theory, I might have chosen
Aho, Ullman: "The theory of Parsing, Translating, and Compiling" (two
volumes) - mainly since that's what I actually have. This should by
no means be considered a complete list. For example, you should consider
"Numerical Recipes" or some other book or books that cover that ground.
You should consider the Prentice-Hall Software Series (many red-bound
volumes) which contain reprinted articles from ACM and other journals
as well as original articles written by experts in various fields
(volume one, for example, contains the famous papers "GOTO Considered
Harmful" by Dijkstra and "Structured Programming with GOTO Statements"
by Knuth). Not least, you should definitely consider having a copy of the
standard document(s) for whatever language(s) and system(s) you use most.

Finally, no Computer Scientist should stop with just the over-all
`classics' of the trade. You should have ample references pertaining
to you own specialty. And, it would be a good practice to drop by the
library occasionally and read through past issues of CACM, Software
Practice and Experience, Int. Journal of Man-Machine Studies, etc..
Xerox those articles you find interesting and add them to your collection
of books. But, most important, this gives you a feel for what has
been done and by whom. Much of the "reinventing the wheel" syndrome
is simply a result of not knowing what has been done before.

J. Giles

Nick Rothwell

unread,
Jan 23, 1992, 6:00:43 AM1/23/92
to
In article <SMK.G...@scarp.ed.ac.uk> s...@scarp.ed.ac.uk (Stefan Kahrs) writes:

Aho, Sethi, Ullman "Principles of Compiler Design"

I'd leave this out. It's badly outdated, over-complicated, badly
written and misleading. Unfortunately, there isn't really much else
available in the area as a general compiler book. For code generation,
there's Andrew Appel's "Compiling with Continuations" which looks very
promising though I've only given it a quick flick through so far.

Hopcroft, Ullman "Introduction to Automata Theory, Languages and Computation"

Though I dislike the dragon compiler book, the above is good.

Nick.
--
Nick Rothwell, LFCS, Edinburgh | Performance: A-11 FANCY-SIGNATURE [COMPARE]
ni...@dcs.ed.ac.uk | Key Mode: ZONE ** MIDI-Sep-Ch: Off Split: C#4
Mentation Consultancy Services | Upper: a-34 LOUD.SIGNATURE FX1: QuadChorus+EQ
cas...@cix.compulink.co.uk | Lower: b-11 DISCLAIMERVOIC FX2: Vocoder/Delay

Amanda Walker

unread,
Jan 22, 1992, 12:19:29 PM1/22/92
to
lav...@csgrad.cs.vt.edu writes:
> What else would people like to add to this?

Jon Bentley, "Programming Pearls," "More Programming Pearls," and if you
can find it, an older piece called "Writing Efficient Programs."

BTW, I have a love-hate relationship with Sedgewick's books. I have
them handy, but I occasionally want to throw them against the wall :).
Knuth is still on top by my reckoning.


Amanda Walker ama...@visix.com
Visix Software Inc. ...!uunet!visix!amanda
--
"Wood can stay in the water 20 years and still not be a fish."
--Jane Yolen

Ozan Yigit

unread,
Jan 22, 1992, 11:15:32 PM1/22/92
to
lav...@csgrad.cs.vt.edu writes:

This reminds me, I've always meant to ask people what they thought were
the "must-haves" for a Computer Scientist's bookshelf. I would argue:
SICP
All volumes of Knuth's "Art of Computer Programming"
"Algorithms" by Sedgewick (great references for algo's and data structs)

What else would people like to add to this?

I think I'd like to add the following must-haves, with no
specific order in mind:

Aho, Hopcroft, Ullman, "Design and Analysis of Computer Algorithms"
Stoy, "Denotational Semantics"
Graham, Knuth, Patashnik, "Concrete Mathematics"
Minsky, "Computation: Finite and Infinite Machines"
Burge, "Recursive Programming Techniques"
Thimblby, "User Interface Design"
Kowalski, "Logic for Program Solving"
Allen, "Anatomy of Lisp" [*]
Jain, "The Art of Computer Systems Performance Analysis"
Friedman, Wand, Haynes, "Essentials of Programming Languages"
Tanenbaum, "Computer Networks" [2nd ed.]
Standish, "Data Structure Techniques"
...
... oz
---
[*] This was a "revelation" book for me years ago during my
undergraduate work. SICP was later...
---
Information is in the mind of | internet: o...@nexus.yorku.ca
the beholder. - R. Jackendoff | phone:[416] 736 2100 x33976

Vladimir Ivanovic

unread,
Jan 23, 1992, 5:00:28 AM1/23/92
to
Instead of Sedgewick, I suggest Thomas Standish's "Data Structure
Techniques". Mathematically it is head and shoulders above Sedgewick.

I've taught from both and my students didn't like Standish: too
mathematical!

There is material in Standish that I've never seen in any other data
structures or algorithm textbook. Garwick's technique for managing there
or more stacks, Robson, Lindstrom and Siklossy traversals of binary trees,
decision tables, Thorelli traversals of multilinked structures, etc. Not
everyone will need this material, but it is unavailable in Sedgewick.

The drawback of Standish is that it was published in 1980. A new edition
would be an incredible addition to the computer science literature.

-- Vladimir
--
Vladimir G. Ivanovic Sun Microsystems, Inc
(415) 336-2315 MTV12-33
vlad...@Eng.Sun.COM 2550 Garcia Ave.
{decwrl,hplabs,ucbvax}!sun!Eng!vladimir Mountain View, CA 94043-1100
Disclaimer: I speak for myself.

Vladimir Ivanovic

unread,
Jan 23, 1992, 5:03:27 AM1/23/92
to
Hopcroft, Ullman "Introduction to Automata Theory, Languages and Computation"

has been superceded by a brand new (1992) text by Aho and Ullman called
"Foundations of Computer Science" (I think). I just this week saw it in
the bookstores. Same material, greater depth, plus discrete mathematics.

david carlton

unread,
Jan 23, 1992, 4:09:03 PM1/23/92
to

In article <SMK.G...@scarp.ed.ac.uk>, s...@scarp.ed.ac.uk (Stefan Kahrs) writes:
> In article <NICK....@vaila.ed.ac.uk> ni...@vaila.ed.ac.uk (Nick Rothwell) writes:

>> For code generation,
>> there's Andrew Appel's "Compiling with Continuations" which looks very
>> promising though I've only given it a quick flick through so far.

Yeah, that was my impression, too.

> I don't know it, but the title sounds rather specialised.

Continuation-passing can probably give good results more easily for a
larger subset of languages than, say, three-address code (that is what
the Dragon Book uses, yes?) can. Just because it hasn't caught on
among C compiler manufacturers doesn't mean that it shouldn't.
Personally, I think that the Dragon Book is too specialized - if
you're writing a C/Pascal/etc. compiler, it'll help you, but good luck
writing a good Scheme or ML compiler from it. It's not as bad in that
respect as some other books that I've seen - it does at least tell you
how to do polymorphic type checking, for example, and you could
probably figure out how to implement first class functions badly from
it, though it doesn't lay it out explicitly (but it tells you how
nonlocal functions in Pascal work, so you just have to figure out to
stick the activation record on the stack) - but it's not great.

david carlton
car...@husc.harvard.edu

Mary Tyler Moore's SEVENTH HUSBAND is wearing my DACRON TANK
TOP in a cheap hotel in HONOLULU!

Anthony J. Cunningham

unread,
Jan 23, 1992, 7:24:55 AM1/23/92
to
In article <20...@creatures.cs.vt.edu>, lav...@csgrad.cs.vt.edu writes:
> This reminds me, I've always meant to ask people what they thought were
> the "must-haves" for a Computer Scientist's bookshelf. I would argue:
> SICP
> All volumes of Knuth's "Art of Computer Programming"
> "Algorithms" by Sedgewick (great references for algo's and data structs)
>
> What else would people like to add to this?

"The Little Lisper."
"Fumbling the Future" The story of how Xerox invented and ignored the Alto.
"Hackers." The story of MIT and the West Coast pioneers of personal computing.
"The Soul of the New Machine."

T

--
"I think of Sarah. The rest is easy."

Robert Goldman

unread,
Jan 23, 1992, 1:33:17 PM1/23/92
to

In article <VLADIMIR.92...@ronnie.Eng.Sun.COM> vlad...@Eng.Sun.COM (Vladimir Ivanovic) writes:

Path: tulane!rouge!wupost!spool.mu.edu!agate!ames!sun-barr!cronkite.Central.Sun.COM!exodus.Eng.Sun.COM!exodus!vladimir
From: vlad...@Eng.Sun.COM (Vladimir Ivanovic)
Newsgroups: comp.lang.scheme
Date: 23 Jan 92 10:03:27 GMT
References: <92021.183...@psuvm.psu.edu>
<knpo95...@agate.berkeley.edu> <20...@creatures.cs.vt.edu>
<SMK.G...@scarp.ed.ac.uk>
Followup-To: comp.lang.scheme
Organization: Sun Microsystems, Inc.
Lines: 13
NNTP-Posting-Host: ronnie

Mr. Ivanovic is not correct in this report.

The new Aho and Ullman book, while very good, is NOT primarily a
Theory text, and its coverage of automata theory is by no means
thorough enough substitute for the earlier text.

To adopt Mr. Ivanovic's phrasing: "more material, LESS depth, plus
discrete mathematics."

Furthermore, checking the preface of the new text, I see no mention
of its replacing the "Introduction to Automata Theory, Languages and
Computation."

Accept no substitutes!

Best,
R

Stefan Kahrs

unread,
Jan 23, 1992, 8:22:11 AM1/23/92
to
In article <NICK....@vaila.ed.ac.uk> ni...@vaila.ed.ac.uk (Nick Rothwell) writes:

In article <SMK.G...@scarp.ed.ac.uk> s...@scarp.ed.ac.uk (Stefan Kahrs) writes:

>> Aho, Sethi, Ullman "Principles of Compiler Design"

Oops, a mistake.
I think they've changed the title to "Compilers: Principles,..."
since Sethi became a Co-Author.

> I'd leave this out. It's badly outdated, over-complicated, badly
> written and misleading.

I admit, it has some drawbacks, although I wouldn't be so harsh.
Maybe the book is nowadays more important for writing a
compiler compiler rather than a compiler.
But ...

> Unfortunately, there isn't really much else
> available in the area as a general compiler book.

That's the point. On the definitive CS book shelf there has to be
_some_ book about compiler construction.
ASU has become a must for compiler writers because
of the lack of an alternative. (But for writing a compiler for a
logical or functional programming language it is not much of a help.)
The book of Goos "Compiler Construction" seems to be even more
complicated and not much less badly outdated.
Other proposals?

> For code generation,
> there's Andrew Appel's "Compiling with Continuations" which looks very
> promising though I've only given it a quick flick through so far.

I don't know it, but the title sounds rather specialised.

--

Nick Rothwell

unread,
Jan 23, 1992, 9:15:53 AM1/23/92
to
In article <SMK.G...@scarp.ed.ac.uk> s...@scarp.ed.ac.uk (Stefan Kahrs) writes:

I don't know it, but the title sounds rather specialised.

Possibly. I quote from the cover: "The control and data flow of a
program can be represented using continuations, a concept from
denotational semantics that has practical application in real
compilers. The book shows how continuation-passing style is used as an
intermediate representation on which to perform optimizations and
program transformations. Continuations can be used to compile most
programming languages."

I'll admit it doesn't cover parsing; but I consider that to be known
technology, and I don't see much point going into it in a modern serious
compiler text. It doesn't cover (modern) typechecking schemes, but
then neither does the dragon book. Continuation passing code
generation might be rather specialised, but at least we have an
up-to-date book which isn't chained and shackled by 1970's UNIX
thinking, YACC and C.

Hmm, this really should be in comp.compilers.

Jeff Putnam

unread,
Jan 23, 1992, 11:54:07 AM1/23/92
to
In article <1992Jan22.1...@cs.mcgill.ca> je...@cs.mcgill.ca
(Gerald (Jerry) KUCH) writes:

> When is Knuth supposed to finish Volume IV anyway?

Good question. Addison Wesley has been sending out these little
cards announcing it for some time (years?) now. It would be nice
if they actually meant the book was in print.

Interestingly the notice says to fill in the card with a
credit card number if you are interested in information
on the book. Since I was interested, I filled in the card -
but since I wasnt buying the book I ommitted the credit
card number. They then sent me a notice back that since I
had not given them the credit card number they wouldnt be
sending me the book. But, of course, I hadnt ordered the
book. Aint computers wonderful!

Chris Hanson

unread,
Jan 24, 1992, 1:32:43 PM1/24/92
to
Date: 23 Jan 92 11:00:43 GMT
From: Nick Rothwell <ni...@vaila.ed.ac.uk>

In article <SMK.G...@scarp.ed.ac.uk> s...@scarp.ed.ac.uk (Stefan Kahrs) writes:

Aho, Sethi, Ullman "Principles of Compiler Design"

I'd leave this out. It's badly outdated, over-complicated, badly
written and misleading. Unfortunately, there isn't really much else
available in the area as a general compiler book. For code generation,
there's Andrew Appel's "Compiling with Continuations" which looks very
promising though I've only given it a quick flick through so far.

I don't think this book is so bad. It may be somewhat outdated, but I
found it invaluable while developing the MIT Scheme compiler, and I
consider it a book well worth owning.

On the negative side, of the 12 chapters in the book, I only found
chapters 7-10 useful.

Ken Dickey

unread,
Jan 24, 1992, 1:14:28 PM1/24/92
to
s...@scarp.ed.ac.uk (Stefan Kahrs) writes:
>> For code generation,
>> there's Andrew Appel's "Compiling with Continuations" which looks very
>> promising though I've only given it a quick flick through so far.

>I don't know it, but the title sounds rather specialised.

As this has just been published, it is a little early to declare it a
classic. It does contain much useful material, however. Note also
"Compilation by Program Transformation" by R. Kelsey, YaleU/CDD/RR
#702, May 1989 (Yale U PhD Thesis). Which does a `continuation
passing' compiler with Pascal, Basic, and Scheme front-ends--so one
may argue that continuation based compilers have a wider utility than
is typically realized. Appel's book is certainly worth-while reading
for compiler writers. [Note also Peter Lee's book on advanced
implementation techniques].

-Ken Dickey ke...@data.rain.com

Vladimir Ivanovic

unread,
Jan 25, 1992, 12:41:57 PM1/25/92
to
>>>>> On 23 Jan 92 18:33:17 GMT, r...@cs.tulane.edu (Robert Goldman) said:

rpg> Mr. Ivanovic is not correct in this report.

Unfortunately, Robert Goldman is correct. I spoke after a very quick look
at the book.

rpg> The new Aho and Ullman book, while very good, is NOT primarily a
rpg> Theory text, and its coverage of automata theory is by no means
rpg> thorough enough substitute for the earlier text.

Only two chapters.

Sorry all.

Mike Jones

unread,
Jan 24, 1992, 11:25:21 AM1/24/92
to
In article <16...@castle.ed.ac.uk> t...@ed.ac.uk (Anthony J. Cunningham) writes:
>In article <20...@creatures.cs.vt.edu>, lav...@csgrad.cs.vt.edu writes:
>> This reminds me, I've always meant to ask people what they thought were
>> the "must-haves" for a Computer Scientist's bookshelf. I would argue:
>> SICP
>> All volumes of Knuth's "Art of Computer Programming"
>> "Algorithms" by Sedgewick (great references for algo's and data structs)
>>
>> What else would people like to add to this?

The Mythical Man-Month Fred Brooks
It's depressing to realize how much the problems Brooks describes
from the 1960's are still with us. An amazing case study in
Murphy's Law.
The Psychology of Computer Programming Gerald Weinberg
Interesting both as lesson and history. Many of his observations
on why programmers (and managers) do the things they do are still
current.
The Psychology of Everyday Things Donald A. Norman
Now reprinted under the title of (I believe) The Design of Everyday
Things, this book should be a "must read" for anyone who is
designing a user interface. Using examples from telephones to
nuclear power plant controls, Norman illustrates what's right (and
wrong) about the way things interact with the people who (try to)
use them.
Alice in Wonderland Lewis Carroll
The best book on programming for the layman, because Alice is the
best book on anything for the layman.

Mike Jones | AIX/ESA Development | mjo...@donald.aix.kingston.ibm.com

Is it possible that software is not like anything else, that it is meant to
be discarded: that the whole point is to always see it as a soap bubble?

Kent Sandvik

unread,
Jan 27, 1992, 2:20:55 AM1/27/92
to

Is Norvig's "Paradigms of Artifical Intelligence" too fresh to
be considered a classic?

Kent wondering, and he's still not sure if he should bill Apple
for that book...

Joseph Lavinus

unread,
Jan 27, 1992, 8:15:08 AM1/27/92
to
Well, here's the list of books folks listed as must-haves for Computer
Scientists. They're in no particular order, and some books got more than
a few votes, while others were rather contoversial; i.e., someone thought
they should be included and three others said they shouldn't. In particular,
it seems to be agreed (myself included) that the Aho/Sethi/Ullman book
on compilers is lame, but still the best one around. I should say there's
a market out there for a good compilers book that contains all the old
standard stuff, plus type theory and non-conventional techniques (such
as continuations)... Anyone got some spare time? :-)

"Structure and Interpretation of Computer Programs" by Abelson and Sussman
Knuth, all three volumes
"Algorithms" by Sedgewick
"Compiling with Continuations" by Appel
"The Little Lisper" by Friedman and Felliesen
"Data Structure Techniques" by Standish
"Design and Analysis of Computer Algorithms" by Aho, Hopcroft, and Ullman
"Denotational Semantics" by Stoy
"Denotational Semantics" by Schmidt
"Concrete Mathematics" by Graham, Knuth, and Patashnik
"Computation: Finite and Infinite Machines" by Minsky
"Recursive Programming Techniques" by Burge
"User Interface Design" by Thimblby
"Logic for Program Solving" by Kowalski
"Anatomy of Lisp" by Allen
"The Art of Computer Systems Performance Analysis" by Jain
"Essentials of Programming Languages" by Friedman, Wand, and Haynes
"Computer Networks" by Tannenbaum
"A Discipline of Programming" by Dijkstra
"Structured Programming" by Dijkstra, Dahl, and Hoare
"The theory of Parsing, Translating, and Compiling" by Aho and Ullman
"Numerical Recipes" by ??


"Introduction to Algorithms" by Cormen, Leiserson, and Rivest

"Compilers: Principles, Techniques and Tools" by Aho, Sethi, Ullman
"The Lambda Calculus" by Barendregt
"Algorithmic Language and Program Development" by Bauer and Woessner
"Introduction to Automata Theory, Languages and Computation" by Hopcroft
and Ullman
"Computers and Intractability" by Garey and Johnson
"The Art of Software Testing" by Myers
"Godel, Escher, Bach" by Hofstadter
"Fumbling the Future" by ??
"Hackers"
"The Soul of a New Machine" by Tracy Kidder
"The Mythical Man-Month" by Fred Brooks
"The Psychology of Computer Programming" by Gerald Weinberg
"The Psychology of Everyday Things" by Donald A. Norman
"Alice in Wonderland" by Lewis Carroll

The comments on this last (from Mike Jones) were especially amusing:


The best book on programming for the layman, because Alice is the
best book on anything for the layman.

That's all, folks. I wonder if I could get some sort of kickback from
the publishers for starting this whole thing? :-)

Peace,

Joe
--
_____________________________________________________________________________
Joseph W. Lavinus, Virginia Tech email: lav...@theory.cs.vt.edu
"A mathematician is a machine for converting coffee into theorems."

Nick Rothwell

unread,
Jan 27, 1992, 5:34:02 AM1/27/92
to
In article <6...@data.rain.com> ke...@data.rain.com (Ken Dickey) writes:

[Note also Peter Lee's book on advanced
implementation techniques].

...which, if I remember it correctly, is as bad as the Dragon book in
some respects. It's a series of papers going mainly into nitty-gritty
low-level implementation techniques for LISP systems. I didn't see any
"real" compiler papers, or treatment of type systems (which I'd
consider essentual for an "advanced" work).

Robert Bernecky

unread,
Jan 28, 1992, 6:23:06 PM1/28/92
to
>In article <20...@creatures.cs.vt.edu>, lav...@csgrad.cs.vt.edu writes:
>> This reminds me, I've always meant to ask people what they thought were
>> the "must-haves" for a Computer Scientist's bookshelf. I would argue:

The best book I have read in the compsci realm in the last 15 years
is Hennessy&Patterson's: "Computer Architecture: A Quantitative Approach".

It gives excellent an excellent background to those who would write
compilers, etc. It offers good information on cache and processor design,
and the tradeoffs inherent in such design. It is a breath of fresh
air from the fuzzy thinking and proof by assertion which is so prevalent
on the net(I KNOW what I'm talking about here, folks! 8^} ).

I recommend it as a general reference as well as a textbook. The
exercises in it are Wonderful: They Make You Think about real-world
problems.

Bob


Robert Bernecky r...@yrloc.ipsa.reuter.com bern...@itrchq.itrc.on.ca
Snake Island Research Inc (416) 368-6944 FAX: (416) 360-4694
18 Fifth Street, Ward's Island
Toronto, Ontario M5J 2B9
Canada

Colin Plumb

unread,
Jan 29, 1992, 1:53:53 AM1/29/92
to
>This reminds me, I've always meant to ask people what they thought were
>the "must-haves" for a Computer Scientist's bookshelf. I would argue:
> SICP
> All volumes of Knuth's "Art of Computer Programming"
> "Algorithms" by Sedgewick (great references for algo's and data structs)

I'd say *an* algorithms book (or half a dozen), but not necessarily
Sedgewick. It's the standard, but not necessarily the best. G.H. Gonnet's
Handbook of Algorithms and Data Structures (recently a second edition with
another co-author) is quite handy, but I think there is insufficient detail
on some of the more complex data structures. I want a reference book, not
journal citations for more details!

"Programming Pearls" and "More Programming Pearls" by Jon Bentley.
Tannenbaum's "Computer Networks" (unless someone has a better replacement)

I still found the (red) dragon book to be a very good explanation of
parsing theory, finite state automata, etc. I found that having read
it was a great help in formal languages courses.

There should be an OS book in there somewhere, but non stand out.

Not quite a must-have, but *strongly* recommended: "Concrete Mathematics",
by Graham, Knuth, and Patashnik.

Foley & Van Dam, "Computer Graphics".

"The New HAcker's Dictionary", at least for amusement value.

On a lower plane are Comer's "Internetworking with TCP/IP",
Bach's "Design of Unix", Leffler et al.'s "Design and Implementation of the
4.3 BSD UNIX Operating System", Griswold & Griswold on Icon, etc.
System-specific, but still good reading.

I agree about SICP, though. Everyone, from first-year students (the target
audience) to Knuth, Wirth, Dijkstra, Ritchie, and such gods, should
read The Red Book. (Mao's or Hitler's? :-})
--
-Colin

Mark Brader

unread,
Jan 31, 1992, 12:40:17 PM1/31/92
to
The Elements of Programming Style, by Brian Kernighan and P.J. Plauger!
--
Mark Brader, SoftQuad Inc., "Verbose better."
Toronto, utzoo!sq!msb, m...@sq.com -- David M. Sherman
0 new messages