Institute of Computer Science III
University of Bonn
Databases * Information Systems * Software Engineering * Pattern Recognition * Image Processing * Artificial Intelligence * Robotics


The Categorical Abstract Machine: Basics and Enhancements

Ralf Hinze

The categorical abstract machine (CAM) is a well-known environment-based architecture for implementing strict functional languages. Existing literature about the CAM presumes more or less a category-theoretical background. Although we appreciate the firm grounds on which the CAM is built, we try to motivate the components of the CAM from an implementor's point of view. This undertaking is facilitated by the conceptional simplicity of the CAM and its proximity to conventional stack architectures. We describe the translation of an augmented *-calculus into CAM instructions. The basic compilation scheme has its didactic virtues but for a real implementation many improvements are necessary (and applicable). A first improvement concerns the treatment of subexpressions which do not access the environment. Further improvements are achieved via simple local transformations of the generated CAM code--this is one of the novel features presented in this report. They include fi-reduction at compile-time, improving calls to local functions, and last call optimization.

Click here to obtain the full paper (PS, gzip, 107424 bytes, 35 pages)


webmaster@www.informatik.uni-bonn.de - 16.12.05