Jump to content

Essentials of Programming Languages

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 74.69.248.193 (talk) at 17:37, 18 February 2008. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Essentials of Programming Languages (MIT Press, 2001. 2nd edition, ISBN 0-262-06217-8) is a book by Daniel P. Friedman, Mitchell Wand and Christopher T. Haynes on implementing programming languages and includes interpreters written in Scheme.

EoPL is a text book that surveys the principles of programming languages from an operational perspective. It starts with an interpreter for a simple functional core language and then systematically adds constructs. For each addition, for example, variable assignment or thread-like control, the book illustrates an increase in expressive power of the programming language and a demand for new constructs for the formulation of a direct interpreter. The book also demonstrates that systematic transformations, say store-passing style or continuation-passing style can eliminate certain constructs from the language in which the interpreter is formulated.

The second part of the book is dedicated to a systematic translation of the interpreter(s) into register machines. The transformations show how to eliminate higher-order closures; continuation objects; recursive function calls; and more. At the end, the reader is left with an "interpreter" that uses nothing but tail-recursive function calls and assignment statements plus conditionals. It becomes trivial to translate this code into a C program or even an assembly program. As a bonus, the book shows how to pre-compute certain pieces of 'meaning' and how to generate a representation of these pre-computations. Since this is the essence of compilation, the book also prepares a course on the principles of compilation and language translation, a related but distinct topic.

Like Structure and Interpretation of Computer Programs, EoPL departed from the then-prevailing text book approach to its topic. Instead of an informal discussion of four to six programming languages, which used to be the way to introduce t

See also

References