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.
The emphasis is on fully normalizing machines based on full-fledged beta-reductions as essential prerequisites for symbolic computations that treat functions and variables truly as first-class objects. Their weakly normalizing counterparts are shown to be functional abstract machines that sacrifice the flavors of full beta-reductions for decidedly simpler runtime structures and improved runtime efficiency. Further downgrading of the lambda calculus leads to classical imperative machines that permit side-effecting operations on the runtime environment.
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.
Werner Kluge
Abstract Machines Algorithmic Language Beta Compiled Code Execution Interpretation Lambda Calculus Processors Programming Languages Variable algorithms programming language
From the reviews:"This remarkable monograph is an extremely well-written and pleasant and reading about abstract computing machines … . The author chooses a somewhat ‘imperative’ approach to teaching, which results in the survey of a vast number of concepts provided with many useful examples. The expository style is most favourable, which could be of special value for a reader with no strong background in the area. … Altogether, this is a book worth reading." (Vladimir Komendantsky, Mathematical Reviews, Issue 2007 k)
()