En savoir plus
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.
Table des matières
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.
A propos de l'auteur
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.
Résumé
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.
Texte suppl.
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)
Commentaire
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)