Learn More
We present a translation scheme for the polymorphically typed call-by-value &#955;-calculus. All runtime values, including function closures, are put into <italic>regions</italic>. 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(More)
Region Inference is a technique for implementing programming languages that are based on typed call-by-value lambda calculus, such as Standard ML. The mathematical runtime model of region inference uses a stack of regions, each of which can contain an unbounded number of values. This paper is concerned with mapping the mathematical model onto real machines.(More)
2 Values and their Representation integer 32 bits, untagged. Unboxed (i.e., not region allocated). One bit is used for tagging when GC is enabled. real 64 bits, untagged. Boxed (i.e., allocated in region) string Unbounded size. Allocated in region. bool one 32-bit word. Unboxed. α list nil and :: cells unboxed (i.e., not region allocated). Auxiliary pairs(More)