Synopses & Reviews
This is a comprehensive account of the semantics and the implementation of the whole Lisp family of languages, namely Lisp, Scheme and related dialects. It describes 11 interpreters and 2 compilers, including very recent techniques of interpretation and compilation. The book is in two parts. The first starts from a simple evaluation function and enriches it with multiple name spaces, continuations and side-effects with commented variants, while at the same time the language used to define these features is reduced to a simple lambda-calculus. Denotational semantics is then naturally introduced. The second part focuses more on implementation techniques and discusses precompilation for fast interpretation: threaded code or bytecode; compilation towards C. Some extensions are also described such as dynamic evaluation, reflection, macros and objects. This will become the new standard reference for people wanting to know more about the Lisp family of languages: how they work, how they are implemented, what their variants are and why such variants exist. The full code is supplied (and also available over the Net). A large bibliography is given as well as a considerable number of exercises. Thus it may also be used by students to accompany second courses on Lisp or Scheme.
"...a worthwhile reference for readers wishing to know more about the Lisp family of languages: how they work, how they are implemented, what their variants are, and why such variants exist." Logic Programming Digest"Written with careful, detailed, and thorough discussions....valuable addition to libraries." R. Bharath, Choice"This is a good, solid book. The writing is subtle, but clear...It highlights a number of language design issues that are relevent to most programming languages in one form or another, though they are not often seen so clearly; this should make people think again about the virtues and weaknesses of their own favorite language." C. M. Holt, Computing Reviews"...the book is for people interested in language design who want to learn how apparently innocuous design decisions can have far-reaching and subtle effects on programming languages....This book reads well and is friendly....This is a good solid book. The writing is subtle, but clear. It is certainly worth reading for anyone in its three target audiences..." C.M. Holt, Computing Reviews"This is a good, solid book. The writing is subtle, but clear. It is certainly worth reading for anyone..." C.M. Holt, Computing Reviews
This will become the new standard reference for people wanting to know about the Lisp family of languages.
Table of Contents
To the reader; 1. The basics of interpretation; 2. Lisp, 1,2,..., w; 3. Escape &return: continuations; 4. Assignment and side effects; 5. Denotational semantics; 6. Fast interpretation; 7. Compilation; 8. Evaluation &reflection; 9. Macros: their use and abuse; 10. Compiling into C; 11. Essence of an object system; Answers to exercises; Bibliography; Index.