They conclude by discussing scanners and parsers and the derivation of a compiler and virtual machine from an interpreter. Following the success of the first edition of this intellectually stimulating book, the extensively rewritten and compacted second edition offers a deep understanding of the essential concepts of programming languages. The approach is analytic and hands-on. The text uses interpreters, written in Scheme, to express the semantics of many essential language elements in a way that is both clear and directly executable. It also examines some important program analyses.
Extensive exercises explore many design and implementation alternatives.
This book provides an overview of the discipline of computer science, going beyond the mere impartation of programming skills as it explores key computer science areas such as databases, artificial intelligence, logic programming, and computer hardware. The authors draw attention to a small number of powerful ideas that unify computer science, and they underscore the importance of analysis and design of programs and conceptual frameworks in the development of real-world software systems. The large number of exercises expect the reader to apply what has been learned using the Scheme language. This book, by one of the leading Scheme implementors and researchers into the theory of syntactic extension, constitutes a compact and comprehensive reference for the more sophisticated areas of the language. The language is developed through examples of increasing difficulty that introduce all of its major features.