The academic pedigree of this book is impeccable: it is a research monograph derived from a technical report based on a doctoral thesis written at the MIT Laboratory for Computer Science. As one would expect of such a work, the literature references are comprehensive and numerous (76), and the general orientation is theoretical and mathematical (the presence of the word “implementation” in the title notwithstanding).
The chapter titles should give the prospective reader an idea of the book’s advanced and specialized nature:
Introduction
Background--Functional Language Compilers
Lenient Evaluation
Functional Quads
Code Generation
A Syntactic Theory of Data Dependence
Dependence Analysis
Constraint Computation and Partitioning
Conclusion
Anyone not thoroughly familiar with such concepts as lazy evaluation, strictness analysis, and higher-order functions would be well advised to stay clear of the book, as it offers no hand-holding for the nonspecialist. Researchers who are specialists in functional programming languages, on the other hand, will undoubtedly regard the book as valuable documentation of recent advances in the state of the art. Foremost among the author’s contributions, in his own estimation, is the treatment of non-strictness and laziness as separate properties in functional-language compilation; in this connection, the novel concept of “lenient evaluation” comes into play. Another innovation is the use of “functional quads” as a general intermediate representation for functional-language programs, analogous to the commonly-used “quadruples” representation for imperative-language programs. Building on these central ideas, much additional original material is to be found in the book’s later chapters.
The quality of the softcover binding and typography is satisfactory. The book has no index. I recommend the book to people doing research on the implementation of functional languages.