A Retrospective on Region-Based Memory Management

We report on our experience with designing, implementing, proving correct, and evaluating a region-based memory management system.

[1]  David Walker,et al.  On Regions and Linear Types , 2001, ACM SIGPLAN International Conference on Functional Programming.

[2]  Martin Elsman,et al.  Programming with regions in the ml kit (for version 4) , 1998 .

[3]  David Walker,et al.  Typed memory management via static capabilities , 2000, TOPL.

[4]  M. Hofmann A Type System for Bounded Space and Functional In-Place Update , 2000, Nord. J. Comput..

[5]  Aleksy Schubert,et al.  The EML Kit Version 1 , 1996 .

[6]  Lars Birkedal,et al.  A region inference algorithm , 1998, TOPL.

[7]  Pierre Jouvelot,et al.  The type and effect discipline , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[8]  David Gay,et al.  Language support for regions , 2001, PLDI '01.

[9]  Cristiano Calcagno Stratified operational semantics for safety and correctness of the region calculus , 2001, POPL '01.

[10]  Anindya Banerjee,et al.  Region analysis and the polymorphic lambda calculus , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[11]  Andrew P. Tolmach Tag-free garbage collection using explicit type parameters , 1994, LFP '94.

[12]  Bennett Norton Yates A Type-And-Effect System For Encapsulating Memory In Java , 1999 .

[13]  Benjamin Goldberg,et al.  Polymorphic type reconstruction for garbage collection without tags , 1992, LFP '92.

[14]  Martin C. Rinard,et al.  Ownership types for safe region-based memory management in real-time Java , 2003, PLDI '03.

[15]  Peter Thiemann,et al.  Syntactic Type Soundness for the Region Calculus , 2001, HOOTS.

[16]  Morten V. Christiansen,et al.  Region-Based Memory Management in Java , 1998 .

[17]  Alexander Aiken,et al.  Better static memory management: improving region-based analysis of higher-order languages , 1995, PLDI '95.

[18]  Martin Elsman Static interpretation of modules , 1999, ICFP '99.

[19]  Pierre Jouvelot,et al.  Algebraic reconstruction of types and effects , 1991, POPL '91.

[20]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[21]  James E. Hicks,et al.  Garbage collection for strongly-typed languages using run-time type reconstruction , 1994, LFP '94.

[22]  David Walker,et al.  Typed memory management in a calculus of capabilities , 1999, POPL '99.

[23]  Peter Thiemann,et al.  Syntactic Type Soundness Results for the Region Calculus , 2002, Inf. Comput..

[24]  Guillermo J. Rozas,et al.  Garbage Collection is Fast, but a Stack is Faster , 1994 .

[25]  Martin Elsman,et al.  An Optimizing Backend for the ML Kit Using a Stack of Regions , 1995 .

[26]  James Cheney,et al.  Region-based memory management in cyclone , 2002, PLDI '02.

[27]  Andrew D. Gordon,et al.  Region analysis and a pi-calculus with groups , 2002, J. Funct. Program..

[28]  Andrew W. Appel,et al.  Type-preserving garbage collectors , 2001, POPL '01.

[29]  Benjamin Goldberg,et al.  Tag-free garbage collection for strongly typed programming languages , 1991, PLDI '91.

[30]  Niels Hallenberg,et al.  Combining Garbage Collection and Region Inference in The ML Kit , 1999 .

[31]  Pierre Jouvelot,et al.  Polymorphic type, region and effect inference , 1992, Journal of Functional Programming.

[32]  Zhong Shao,et al.  Principled scavenging , 2001, PLDI '01.

[33]  Lars Birkedal,et al.  A constraint-based region inference algorithm , 2001, Theor. Comput. Sci..

[34]  Colin Runciman,et al.  Heap profiling of lazy functional programs , 1993, Journal of Functional Programming.

[35]  Martin Elsman Program modules, separate compilation, and intermodule optimisation , 1999, Technical report / University of Copenhagen / Datalogisk institut.

[36]  David Gay,et al.  Memory management with explicit regions , 1998, PLDI.

[37]  Benjamin Goldberg,et al.  Higher Order Escape Analysis: Optimizing Stack Allocation in Functional Program Implementations , 1990, ESOP.

[38]  Andrew W. Appel,et al.  Garbage Collection can be Faster than Stack Allocation , 1987, Inf. Process. Lett..

[39]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.

[40]  Martin Elsman,et al.  Web Programming with SMLserver , 2003, PADL.

[41]  Martin Hofmann,et al.  Static prediction of heap space usage for first-order functional programs , 2003, POPL '03.

[42]  Martin Elsman Garbage collection safety for region-based memory management , 2003, TLDI '03.

[43]  Chris J. Cheney A nonrecursive list compacting algorithm , 1970, Commun. ACM.

[44]  Joannes M. Lucassen Types and Effects Towards the Integration of Functional and Imperative Programming. , 1987 .

[45]  Mads Tofte,et al.  Region-based Memory Management , 1997, Inf. Comput..

[46]  Henning Makholm A region-based memory manager for prolog , 2000, ISMM '00.

[47]  Fritz Henglein,et al.  A direct approach to control-flow sensitive region-based memory management , 2001, PPDP '01.

[48]  David Walker,et al.  On regions and linear types (extended abstract) , 2001, ICFP '01.

[49]  Linda Mui,et al.  Writing Apache Modules with PERL and C , 1999 .

[50]  Mads Tofte,et al.  Implementation of the typed call-by-value λ-calculus using a stack of regions , 1994, POPL '94.

[51]  James Cheney,et al.  Cyclone: A Safe Dialect of C , 2002, USENIX Annual Technical Conference, General Track.

[52]  Lars Birkedal,et al.  From region inference to von Neumann machines via region representation inference , 1996, POPL '96.

[53]  Andrew W. Appel,et al.  Runtime tags aren't necessary , 1989, LISP Symb. Comput..

[54]  Niels Hallenberg A Region Profiler for a Standard ML compiler based on Region Inference , 1996 .

[55]  Mads Tofte,et al.  A theory of stack allocation in polymorphically typed languages , 1993 .

[56]  Douglas T. Ross The AED free storage package , 1967, CACM.

[57]  Lars Birkedal,et al.  Unification and polymorphism in region inference , 2000, Proof, Language, and Interaction.

[58]  Martin Elsman,et al.  Combining region inference and garbage collection , 2002, PLDI '02.

[59]  Martin Elsman,et al.  Programming with regions in the ML Kit , 1997 .

[60]  David K. Gifford,et al.  Polymorphic effect systems , 1988, POPL '88.

[61]  Bruno Blanchet,et al.  Escape analysis: correctness proof, implementation and experimental results , 1998, POPL '98.