Technical Faculty Institute of Computer Science and Applied Mathematics Christian-Albrechts-University of Kiel

Computer Organization and Architecture


Werner Kluge, Prof.(em.)

Phone: +49-(0)2204-867 512 (private)
E-Mail: wk@informatik.uni-kiel.de



After retiring in 2003, I have found the time to complete a monograph on Abstract Computing Machines which has been published in the Springer EATCS series (ISBN 3-540-21146-2).
This monograph is on the relationship between basic programming paradigms as they derive from Lambda calculus and the abstract machines featuring the runtime structures and mechanisms that are essential for program execution. It sets out with a brief discussion of an expression-oriented style of programming, addresses the problem of correctly dealing with free variables as a prerequisite for symbolic computations, and gives a brief introduction to Lambda calculus as the underlying theory.
In its main part, the book is primarily concerned with the description of what are called fully normalizing Lambda-calculus machines. They support the runtime structures and mechanisms necessary to correctly perform substitutions that may involve free variables, and to do symbolic self-optimizations under functions (abstractions), thus treating both functions and variables truly as first class objects.
These machines are related to various weakly normalizing counterparts which are the work horses for the implementation of functional languages. They rule out substitution and evaluation under abstractions to avoid problems with free variables, which considerably simplifies the machinery but at the same time also sacrifices many of the amenities of symbolic computations.
Abstract machines for imperative languages are shown to be direct descendants of weakly normalizing Lambda-calculus machines. They permit side-effecting substitutions on an otherwise nearly identical runtime environment which, however, destroy the Church-Rosser property of the Lambda calculus, merely keeping its scoping rules intact.
I used the material contained in this book in various graduate courses on basic concepts of computer organization/architecture; some of the material of the first five chapters I also used in undergraduate courses on function-based programming.

As it so happens if publication deadlines have to be met, the book contains a few errors, many of which are just typos. But it also includes a serious mistake concerning the definition in chapter 5 of the SE(M)CD machine, which I run across just recently. A correction of this and also of the typos can be found under errata


Current activities

Past research activities

People still active in SAC-related research elsewhere

List of publications


Werner Kluge
Last modified: June 20, 2007