A Compositional Technique for
Specifying and Implementing Procedure
We present staged allocation, a technique for specifying calling
conventions by composing tiny allocators called stages.
A specification written using staged allocation has a precise, formal
semantics, and it can be executed directly inside a compiler.
Specifications of nine standard C calling conventions range in size from 15 to 30
An implementation of staged allocation takes about 250 lines of ML or
650 lines of C++.
Each specification can be used not only to help a compiler implement
the calling convention but also to generate a test suite.
The paper is available as
US Letter PostScript (290K),
US Letter PDF (201K),
US Letter TeX DVI (127K).