Results 1 -
6 of
6
From Region Inference to von Neumann Machines via Region Representation Inference
- In Twenty-Third ACM Symposium on Principles of Programming Languages
, 1996
"... 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 concer ..."
Abstract
-
Cited by 86 (7 self)
- Add to MetaCart
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. This is done by composing region inference with Region Representation Inference, which gradually refines region information till it is directly implementable on conventional von Neumann machines. The performance of a new region-based ML compiler is compared to the performance of Standard ML of New Jersey, a state-of-the-art ML compiler. 1 Introduction It has been suggested that programming languages which are based on typed call-by-value lambda calculus can be implemented using regions for memory management[17]. At runtime, the store consists of a stack of regions. All values, including function closures, are put into regions. Reg...
Program Modules, Separate Compilation, and Intermodule Optimisation
"... This thesis is about a framework for elaborating and interpreting module language constructs at compile time in such a way that (1) arbitrary compile time information about declared identifiers of a module may be propagated to other modules and (2) no code is generated for module language constructs ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
This thesis is about a framework for elaborating and interpreting module language constructs at compile time in such a way that (1) arbitrary compile time information about declared identifiers of a module may be propagated to other modules and (2) no code is generated for module language constructs. The framework for interpreting module language constructs is called static interpretation. More information about referenced identifiers than can be obtained from programmer provided interfaces is necessary for analyses such as region inference. Further, many other analyses improve significantly from availability of analysis specific information about referenced identifiers. Static interpretation facilitates intermodule optimisation, yet, it still supports a variant of separate compilation called cut-off incremental recompilation.
A Retrospective on Region-Based Memory Management
- Higher-Order and Symbolic Computation Journal
, 2004
"... We report on our experience with designing, implementing, proving correct, and evaluating a region-based memory management system. ..."
Abstract
-
Cited by 10 (0 self)
- Add to MetaCart
We report on our experience with designing, implementing, proving correct, and evaluating a region-based memory management system.
Combining Garbage Collection and Region Inference in The ML Kit
, 1999
"... Machine ...................... 148 9.1.1 Grammar for KAM .................... 149 9.2 Code Generation ......................... 151 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.2.6 Constants and Access Types .............. 151 Allocation Points ..................... 152 Set Storage Modes .................. ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
Machine ...................... 148 9.1.1 Grammar for KAM .................... 149 9.2 Code Generation ......................... 151 9.2.1 9.2.2 9.2.3 9.2.4 9.2.5 9.2.6 Constants and Access Types .............. 151 Allocation Points ..................... 152 Set Storage Modes .................... 155 Call Convention ..................... 156 Functions ......................... 158 Applications ....................... 159 III The Garbage Collector 167 10 Basic Garbage Collection Algorithms 168 10.1 Fundamentals ........................... 168 10.2 Reference Counting ........................ 170 10.3 Mark-Sweep Collection ..................... 173 10.4 Mark-Compact Collection .................... 174 10.5 Copying Garbage Collection ................... 177 10.5.1 Simple Stop and Copy .................. 178 10.5.2 Cheneys Algorithm ................... 182 10.5.3 Generational Garbage Collection ............ 184 10.6 Comparing The Algorithms ................... 185 11 Garbage Collection of Regions. 188 11.1 Algorithm Using Recursion ................... 188 11.2 Cheneys Algorithm and Regions ................ 189 11.2.1 A Stack of Values .................... 191 11.2.2 A Stack of Regions .................... 191 11.3 A Revised Region and Region Page Descriptor ........ 194 11.4 The Garbage Collection Algorithm ............... 195 11.5 Finite Regions .......................... 197 11.5.1 Recursive Data Structures ................ 198 11.6 Garbage Collect a Few Regions Only .............. 199 11.7 Using Only One Global Region ................. 201 11.8 When to Increase The Heap ................... 201 12 Data Representation 203 12.1 Scalar and Pointer Records ................... 204 12.2 Tagging Objects ......................... 205 12.3 Eliminating Fragmented Objects .........
A Region Profiler for a Standard ML compiler based on Region Inference
, 1996
"... In this report we present the region profiler used in the ML Kit (a Standard ML compiler that uses region inference, [7]). The profiler is based on work done by Colin Runciman and David Wakeling ([17]) on a heap profiler for lazy functional programs. The profiler can be used to reduce memory usage o ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
In this report we present the region profiler used in the ML Kit (a Standard ML compiler that uses region inference, [7]). The profiler is based on work done by Colin Runciman and David Wakeling ([17]) on a heap profiler for lazy functional programs. The profiler can be used to reduce memory usage of programs compiled with the ML Kit. Hints and examples on writing programs in a more region friendly way are given. Supervisor: Mads Tofte 1 June 14, 1996 2 Contents 1 Introduction 3 2 Profiling in the ML Kit 4 3 Region inference 5 3.1 Region annotated lambda program : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 3.2 Region annotated terms : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 3.3 Inference Rules : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 3.4 Multiplicity and physical size inference : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 12 3.5 Storage mode analysis : : : ...
Region Inference with Rank-2 Intersection Types and its Formalization in Isabelle
, 1999
"... This working paper develops a Tofte-Talpin style region inference system... this paper have been formalized in Isabelle and all proofs have been mechanically verified. ..."
Abstract
- Add to MetaCart
This working paper develops a Tofte-Talpin style region inference system... this paper have been formalized in Isabelle and all proofs have been mechanically verified.

