Skip to content

Commit 2140a3a

Browse files
committed
add some books
1 parent d65610d commit 2140a3a

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

README.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,91 @@ Hopefully I'll add critical remarks, though I'm lazy.
2828
* "Design of computer programs" on Udacity https://www.udacity.com/course/design-of-computer-programs--cs212
2929
* on CodingBat http://codingbat.com/home/peter@norvig.com
3030

31+
32+
33+
## Kernighan and Pike, The Unix Programming Environment.
34+
35+
So old-school it’s practically prehistoric, but the best book I know
36+
on the philosophy of Unix (with the possible exception of ESR’s The
37+
Art of Unix Programming, but that book has hardly any code, and thus
38+
is not so relevant to this question). The longest example is a small
39+
programming language with a compiler and VM interpreter developed in
40+
stages. http://cm.bell-labs.com/cm/cs/upe/
41+
42+
## Kernighan and Plauger, Software Tools in Pascal.
43+
44+
Develops variants of a bunch of classic Unix tools, back before Unix
45+
became
46+
popular. http://www.amazon.com/Software-Tools-Pascal-Brian-Kernighan/dp/0201103427
47+
48+
## Aho, Weinberger, Kernighan, The AWK Programming Language.
49+
50+
Many surprisingly interesting and compact examples. (E.g. a ‘make’ in
51+
half a page of code, an assembler and interpreter, a command-line
52+
database system, etc., etc., etc.) Code is available for download, but
53+
it’s best with the book, which is unfortunately ridiculously expensive
54+
these days. http://cm.bell-labs.com/cm/cs/awkbook/
55+
56+
## Chris Okasaki, Purely Functional Data Structures.
57+
58+
Just what it says, with code in Haskell and ML. Not your parent’s
59+
data-structures book. http://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
60+
61+
## Donald Knuth, Literate Programming.
62+
63+
Has a few extended examples doing neat
64+
things. http://www-cs-faculty.stanford.edu/~knuth/lp.html
65+
66+
## Mark Jason Dominus, Higher-Order Perl.
67+
68+
Ideas from the functional-programming world brought to Perl. The
69+
longest example is a constraint-based domain-specific language for
70+
diagram drawing. http://hop.perl.plover.com/
71+
72+
## James F. Gimpel, Algorithms in Snobol4.
73+
74+
An overlooked classic with lots of fun code in a terribly obsolete
75+
programming language. Emphasis on string processing. Hard to find. The
76+
code is available online but probably hard to get much benefit from
77+
without the book. http://www.amazon.com/dp/0471302139/
78+
79+
## Paul Graham, On Lisp.
80+
81+
Fine examples of the power of Lisp. The best chapters on macros I’ve
82+
seen anywhere. His programming style is not so much to my taste
83+
(favoring too-abbreviated global names, anaphoric macros, etc.) but
84+
still interesting and educational.
85+
86+
http://www.paulgraham.com/onlisp.html
87+
88+
## Peter Seibel, Practical Common Lisp
89+
90+
http://en.wikipedia.org/wiki/Practical_Common_Lisp
91+
92+
## Richard O'Keefe, The Craft of Prolog.
93+
94+
A bit of a grab-bag but a tasteful exposition of ideas and examples
95+
relevant to functional programming as well as Prolog. O'Keefe is
96+
entertainingly opinionated, not unlike Snape at Hogwarts when a
97+
student screws up. http://www.amazon.com/dp/0262150395/
98+
99+
## Leon Sterling (editor), The Practice of Prolog.
100+
101+
A collection of articles, each an extended example, with code, of
102+
making Prolog do something interesting, usually something
103+
AI-ish. Chapters by O'Keefe, Chris Mellish, Sterling,
104+
others. http://www.amazon.com/dp/0262193019/
105+
106+
## P.J. Plauger, The Standard C Library.
107+
108+
A full, portable, clean, reasonably efficient implementation of the
109+
(C89) standard library, with discussion of the design tradeoffs. Includes
110+
the relevant pages from the standard.
111+
http://www.amazon.com/dp/0131315099/
112+
113+
## Edsger Dijkstra, A Discipline of Programming.
114+
115+
Lots of small but nontrivial examples of developing a program and its
116+
proof of correctness
117+
hand-in-hand. http://www.amazon.com/dp/013215871X/
118+

0 commit comments

Comments
 (0)