Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

SIAM REVIEW

Vol. 11, No. 1, January 1969


Downloaded 11/16/14 to 129.49.23.145. Redistribution subject to SIAM license or copyright; see http://www.siam.org/journals/ojsa.php

BOOK REVIEWS

EDITED BY ARTHUR WOUK

Publishers are invited to send books for review to Professor Arthur Wouk, Department of Engineer-
ing Sciences, The Technological Institute, Northwestern University, Evanston, Illinois 60201.

The Art Programming--Volume 1." Fundamental Algorithms. By


of Computer
DoyaLo E. KYtTH. Addison-Wesley Publishing Company, Reading,
Massachusetts, 1968. v + 634 pp. $19.50.
The publication of this book is a most welcome event. It is the first in a series
of seven volumes whose subject is the design and analysis of nonnumerical
algorithms (algorithms in which the emphasis is on decision making rather than
arithmetic operations). The importance of such algorithms can hardly be ques-
tioned. Some are directly embodied in the circuitry of digital computers; many
more occur in software programs; and computers are increasingly being applied
to essentially nonnumerical problems such as sorting, combinatorial analysis
and algebraic computation. Yet, until now, there has not been a satisfactory text
or reference work on the basic principles of nonnumerical computation.
The complete series, entitled The Art of Computer Programming, has the
following general outline:
Volume 1. Fundamental Algorithms
Chapter 1. Basic Concepts
Chapter 2. Information Structures
Volume 2. Seminumerical Algorithms
Chapter 3. Random Numbers
Chapter 4. Arithmetic
Volume 3. Sorting and Searching
Chapter 5. Sorting Techniques
Chapter 6. Searching Techniques
Volume 4. Combinatorial Algorithms
Chapter 7. Combinatorial Searching
Chapter 8. Recursion
Volume 5. Syntactic Algorithms
Chapter 9. Lexical Scanning
Chapter 10. Parsing Techniques
Volume 6. Theory of Languages
Chapter 11. Mathematical Linguistics
Volume 7. Compilers
Chapter 12. Programming Language Translation
In the complete set, the role of Volume is introductory; it presents basic
material which will be used in the remaining volumes. However, it stands on its
own as an excellent advanced text on computer programming and as the definitive
reference on information structures.
89
90 BOOK REVIEWS

Chapter contains four sections covering a great variety of material. The


Downloaded 11/16/14 to 129.49.23.145. Redistribution subject to SIAM license or copyright; see http://www.siam.org/journals/ojsa.php

first is a brief introduction to the concept of an algorithm and to the method


used for presenting algorithms. This method features informal step-by-step
descriptions supplemented by flow charts. These descriptions are easier to follow
than programs in any formal language known to me.
The second section of Chapter deals with some of the discrete mathematics
necessary for the analysis of an algorithms performance. This includes an
especially good treatment of binomial coefficients and the manipulation of finite
sums and products.
Section 1.3 describes the assembly language of Mix, a hypothetical computer.
This is used in the remainder of the book (in addition to the informal methods)
to present algorithms in complete detail. In the introduction, Professor Knuth
states that the choice of a language for programming the algorithms was the most
difficult decision he had to make in writing the book. However the arguments
he gives in favor of a machine oriented language are convincing, and the use
of Mx in the book is a complete success. The Mix programs are not hard to
follow, and the analysis of their performance goes well beyond what could be
done if a higher level language were used.
The final section of Chapter is on some fundamental programming tech-
niques: subroutines, coroutines, interpretive routines, and input and output.
Familiarity with this material should be expected of any expert programmer,
but this is the first appearance in a text for some of it (e.g., that on coroutines).
As an example of an interpretive routine, Knuth gives a simulator for Mix. This
is in the Mix language, but it is designed so that it can easily be recoded in other
languages.
Chapter 2 deals with the representation and manipulation of data structures
in a computers main memory. The principal topics covered are linear lists and
their important special cases (stacks, arrays, doubly-linked lists, etc.), trees,
multilinked list structures, and associated techniques of dynamic storage alloca-
tion. The treatment is so comprehensive that a detailed examination of the
chapters contents is not feasible here. Knuth has covered almost everything of
importance in the literature (published and unpublished!) and has contributed
some new results of his own on the behavior of dynamic storage allocation
algorithms.
For mathematicians the most interesting feature of the book may be Knuths
success in relating mathematics to computer programming. The unifying theme
is an emphasis on analyzing algorithms, but he also makes effective use of
parallels between concepts in mathematics and programming. One simple
example of this comes early in Chapter 1. After stating the principle of mathe-
matical induction, he reformulates it as algorithm for proof by induction. He
applies the induction principle in a proof that Euclids g.c.d, algorithm is correct.
(This, incidentally, introduces the reader to R. W. Floyds approach to proving
algorithms correct.) Another example, and the one that I enjoyed most, occurs
in Chapter 2. Knuth first takes up tree structures as represented in the computer
and then presents some of the mathematical theory of trees. The use of a free
BOOK REVIEWS 91

tree to find a fundamental set of cycles in a graph is described; and this technique
Downloaded 11/16/14 to 129.49.23.145. Redistribution subject to SIAM license or copyright; see http://www.siam.org/journals/ojsa.php

is applied in the Kirkhoffs law analysis of the flow chart of an algorithm for
the multiplication of permutations!
The general excellence of the books coverage and style is enhanced by good
supporting features. There are about 100 pages of exercises and 140 pages of
answers. The exercises are graded as to difficulty (from trivial questions on
terminology to unsolved research problems) and as to the level of mathematics
they require. There are also extensive historical and bibliographic references,
tables of some numerical quantities given to forty place accuracy in decimal
and octal, and a very good index of notations. Finally, the book appears to have
very few typographical errors.
M. DONALD MACLAREN
Argonne National Laboratory

The Theory of Splines and Their Applications. By J. H. AHLBERG, E. N. NILSON


and J. L. WALSH. Academic Press, New York, 1967. xi + 284 pp. $13.50.
The theory of approximation by spline functions is very new, though
mechanical "splines" have been used by naval architects for generations to pro-
duce "faired" section lines of ships, and the theory of "elastica" (or "thin beams")
goes back to Bernoulli. It was only in 1946 that Schoenberg made the first serious
study of "spline functions" (piecewise polynomial functions f(x) of degree n
and class C"--1) from the standpoint of approximation theory.
Since that time, cubic spline functions and their generalizations have been
increasingly used to approximate "smooth" curves on digital computers. And
since 1962, Carl de Boors bicubic spline functions and their generalizations have
been used at the General Motors Research Laboratories and elsewhere to repre-
sent "smooth" surfaces. In 1964, a symposium on the Approximation of Functions
was held at General Motors, and its Proceedings, edited by H. L. Garabedian,
were published by the Elsevier Press in 1965. Since this event, nearly 100 papers
have appeared on the subject of approximation by piecewise polynomial func-
tions and its applications.
The book under review gives a leisurely and readable account of much of
this theory as of 1967, from the standpoint of classical approximation theory.
It is both timely and, as regards interpolation and approximation by (generalized)
spline functions of one variable, authoritative. (Some of its historical attribu-
tions are less accurate: "Holladays theorem" was discovered in 1742-44 by
D. Bernoulli and Euler; see I. S. Sokolnikoff, Mathematical Theory of Elasticity,
p. 1.)
The book under review is not only authoritative but original. Drs. Ahlberg
and Nilson have made a steady stream of important contributions to the converg-
ence theory of spline functions since 1962, while its senior author, Professor
Walsh, is a world leader in interpolation and approximation theory.
The authors present in Chapters 2 and 3 a profusion of interesting theorems
on the convergence, degree of convergence, best approximation properties, and

You might also like