The book addresses ways and means of organizing computations,
highlighting the relationship between algorithms and the basic
mechanisms and runtime structures necessary to execute them using
machines. It completely abstracts from concrete programming languages
and machine architectures, taking instead the lambda calculus as the
basic programming and program execution model to design various abstract
machines for its correct implementation. This book takes a lambda
calculus approach to organizing computations. It sets out with a brief
introduction to lambda calculus, describes a variant of the classical
SECD-machine as a basic interpreter for the lambda calculus, and in the
main part continues with fully normalizing abstract lambda calculus
machines, of which some are interpreting and some execute compiled code.