We present atranslation scheme forthepolymorphitally typed call-by-value A-calculus. All runtime values, including function closures, are put into regions. The store consists of a stack of regions: Region inference and effect inference are used to infer where regions can be allocated and de-allocated. Recursive functions are handled using a limited form of polymorphic recursion. The translation is proved correct with respect to a store semantics, which models a regionbased run-time system. Experimental results suggest that regions tend to be small, that region allocation is frequent and that overall memory demands are usually modest, even without garbage collection.
The subset of our system consisting of alias analysis and effect inference can be seen as a monomorphic variant of region inference REF .
Implementation of the typed call-by-value λ-calculus using a stack of regions
POPL '94
Computer Science