"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)
Algorithms and Programs.- An Algorithmic Language.- The ?-Calculus.- The se(m)cd Machine and Others.- Toward Full-Fledged ?-Calculus Machines.- Interpreted Head-Order Graph Reduction.- The B-Machine.- The G-Machine.- The ?-red Machinery.- Pattern Matching.- Another Functional Abstract Machine.- Imperative Abstract Machines.- Real Computing Machines.
Received a Dr. rer. nat. degree in physics from the Technical University Munich/Germany in 1968; worked in industrie/research institutes at the central laboratories of Siemens AG between 1963 and 1968, at Bell Northern Research Ltd in Ottawa/Canada between 1969, and 1972 at the Gesellschaft fuer Mathematik und Datenverarbeitung in St. Augustin/Germany between 1973 and 1978; became an associate professor of computer science at the University of Bonn/Germany in 1978; became a full professor of computer science at the University of Kiel/Germany retired in 2003.
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.