code reading dds
Errata
The following is a list of typographical and other errors found in the book:
Diomidis Spinellis. Code Reading: The Open Source Perspective.
Addison Wesley, 2003.
ISBN 0-201-79940-5.
Many of the errors have been fixed in subsequent printings of the book.
Earlier versions of this page indicated the errors applicable to each
printing.
Unfortunately, the publisher managed to reintroduce some errors that
had been corrected between the third and the fourth printing.
From that point onward I lost track of the printing where each error
was corrected.
- p. xxviii
-
Addision-Wesley should of course read Addison-Wesley.
Spotted by Scott Meyers.
- p. 33
-
Numbered element 1 should read
Optarg
will point to the argument of -t
.
instead of
Optind
will point to the argument of -t
.
Noted by Chris Dunlap, meta-corrected by Tim Heaney.
- p. 42
-
Fortran implementations are free to select short-circuit evaluation of
boolean expressions (like Java, C, C++, and Perl), or to evaluate
all the expression's elements (like Pascal and many Basic dialects).
This is a design decision that provides the compiler the flexibility
to optimize away jump machine instructions.
Noted by Arjen Markus.
- p. 53
-
Second paragraph, fourth sentence. It should read
When performing arithmetic on unsigned integers, read ...
Noted by Paul Hankin.
- p. 75
-
Section 3.2, 2nd line: unnecessary space appears in the word
"following".
Noted by Anto Jurkovic.
- p. 87
-
The first line should read
of the memory block by 16 slots each time the allocated memory is exhausted.
Noted by Mike Cheponis.
- p. 106
-
5th line from the bottom: "
sp
" should read "opsp
".
Noted by Anto Jurkovic.
- p. 130
-
In Figure 4.15 the box with the operator "
==
"
(on the third level from the top, right)
should contain the operator "=
".
Noted by Anto Jurkovic.
- p. 131
-
The code listing should read
struct node_str {
Noted by the author.
- p. 138
-
The second sentence should read:
... and a list of its parents
(version.obj
is the parent of EXTERN.h
and INTERN.h
).
Reported by SunJian.
- p. 144
-
The second line should read
"n!, can be defined as n(n - 1)!"
(the last exclamation mark is missing).
Spotted by Ryan Barrett.
- p. 173
-
The expanded macro
ASSERT
should
read
if (k > n)
if (!(process(n) == 0))
botch(__STRING(process(n) == 0));
else
if (!(process(k) == 0))
botch(__STRING(process(k) == 0));
(the existing code uses process(l)
in the first expanded
instance).
Spotted by Vassilios Karakoidas.
- p. 190, 191
-
The arrows in Figures 6.7 and 6.8 should point in the opposite direction.
The UML 1.5 specification was not entirely clear, but UML 2.0 leaves no
doubt.
The corresponding dependency example in Figure 1.2 is also drawn in the
opposite way round.
Here is the
correct Figure 6.7 and the
correct Figure 6.8.
Noticed by Simon Wright.
- p. 235
-
There is an extra period after the name of Charles Simonyi.
Spotted by Panos I. Papadopoulos.
- p. 261
-
The second footnote should read:
http://www.stack.nl/~dimitri/doxygen/
Spotted by Anthon van der Neut.
- p. 305
-
The
getConnection
method is missing a closing brace and
is wrongly indented.
It should read:
public Connection getConnection() {
if (Trace.TRACE) {
Trace.trace();
}
return cConnection;
}
Noted by Arjen Markus.
- p. 312
-
The
typedef
for the FSUB
structure
is missing a semicolon at the end of the id
member
declaration.
The fifth element should read
int (*id)(char *, int);
Noted by Konstantinos Aboudolas.
- p. 344
-
In Figure 10.2 the fourth annotation should read:
Add tag line to the lines
array.
Noticed by the author.
- p. 346
-
The sequence
C-M-m
should be C-M-n
.
Spotted by Tokuya Kameshima.
- p. 355
-
The option for obtaining context information from the
diff command is
-c
(or -u
),
not-g
.
Noticed by the author.
- p. 366
-
The figure's caption should state groff classes.
Reported by NISHIDA Masanori.
- p. 388
-
The semicolon appearing in the
adj360
formal argument
declaration, after deg
, should not be there.
Noticed by Konstantinos Aboudolas.
- p. 399
-
Footnote 1 should read
http://www.cs.wustl.edu/~schmidt/ACE.html
- p. 403
-
Keith E. Brandt should be included in the source code credits,
as the author of
pom.c
.
Noted by Col Keith. E. Brandt, MD, MPH.
- p. 405
-
The epigram's author is Wiener (Norbert Wiener the mathematician who
described cybernetics),
not Weiner, as it is often misquoted on the web.
See the German Wikiquote page.
Noted by Bastiaan Harmsen.
- p. 428
-
Item 44 should read
When performing arithmetic on unsigned integers, read ...
Noted by Paul Hankin.
- p. 488
-
The index entry
vcfLicense.txt
should point to page 413
(where an epigram from the VCF license appears) rather than page 457.
- p. 493
-
The author index entry "Raymond, E. S." should also contain "p. 435".
Book homepage | Author homepage
|
(C) Copyright 2000-2006 D. Spinellis.
May be freely uploaded by WWW viewers and similar programs.
All other rights reserved.
Last modified: $Date: 2014/12/31 08:13:41 $
|