A Region-Based Abstract Machine for the ML Kit
TR-2002-18, Authors: Martin Elsman and Niels Hallenberg Martin Elsman Niels Hallenberg
This document describes the implementation of a bytecode backend for the ML Kit, a Standard ML compiler based on region inference. The purpose of the bytecode backend is to enable the ML Kit to produce portable and compact code that can be executed in environments where control of memory usage is a concern. The document includes (1) a presentation of the target of the new backend, namely a region-based abstract machine called the Kit Abstract Machine (KAM), (2) a description of the intermediate language RegExp used in the ML Kit, (3) a presentation of yet an intermediate language LiftExp, in which all functions are lifted to top level, (4) a translation from the language RegExp to the language LiftExp, and finally, (5) a translation from the intermediate language LiftExp into KAM instructions. The focus of this document is not on providing a formal definition of the KAM or of the translation into KAM instructions. Instead, this report is meant to document - sometimes informally - the implementation and the design of the many features of the KAM.
Technical report TR-2002-18 in IT University Technical Report Series, August 2002.
Available as PDF