Dependence Analysis may be considered to be the second edition of the
author's 1988 book, Dependence Analysis for Supercomputing. It is,
however, a completely new work that subsumes the material of the 1988
publication. This book is the third volume in the series Loop
Transformations for Restructuring Compilers. This series has been
designed to provide a complete mathematical theory of transformations
that can be used to automatically change a sequential program containing
FORTRAN-like do loops into an equivalent parallel form.
In Dependence Analysis, the author extends the model to a program
consisting of do loops and assignment statements, where the loops
need not be sequentially nested and are allowed to have arbitrary
strides. In the context of such a program, the author studies, in
detail, dependence between statements of the program caused by program
variables that are elements of arrays.
Dependence Analysis is directed toward graduate and undergraduate
students, and professional writers of restructuring compilers. The
prerequisite for the book consists of some knowledge of programming
languages, and familiarity with calculus and graph theory. No knowledge
of linear programming is required.