The primary purpose of programs is to be understood by human
beings.
Part 1 of this book introduces the concept of functional
programming and describes a purely symbolic, minimalistic dialect
of Scheme that is designed to be comprehensible.
Part 2 applies symbolic programming techniques to
problems of varying complexity. Topics of this part range
from functions for sorting or permuting lists to "lazy"
data structures, regular expression matching, formal language
translation, and declarative programming.
Part 3 implements the abstraction layer that is necessary
for solving problems in an abstract way on a concrete computer. It
reproduces the complete annotated source code for an interpreter of
symbolic Scheme and delivers an example of clear and readable C code.
The book contains the full source code to a compiler, a
meta-circular interpreter, a logic programming system, and to
the language that is used to implement all of these....More >< Less