Language support for regions
- 1 May 2001
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 36 (5), 70-80
- https://doi.org/10.1145/378795.378815
Abstract
Region-based memory management systems structure memory by grouping objects in regions under program control. Memory is reclaimed by deleting regions, freeing all objects stored therein. Our compiler for C with regions, RC, prevents unsafe region deletions by keeping a count of references to each region. Using type annotations that make the structure of a program's regions more explicit, we reduce the overhead of reference counting from a maximum of 27% to a maximum of 11% on a suite of realistic benchmarks. We generalise these annotations in a region type system whose main novelty is the use of existentially quantified abstract regions to represent pointers to objects whose region is partially or totally unknown. A distribution of RC is available at http://www.cs.berkeley.edu/~dgay/rc.tar.gz.Keywords
This publication has 9 references indexed in Scilit:
- Enforcing high-level protocols in low-level softwarePublished by Association for Computing Machinery (ACM) ,2001
- Typed memory management in a calculus of capabilitiesPublished by Association for Computing Machinery (ACM) ,1999
- Memory management with explicit regionsPublished by Association for Computing Machinery (ACM) ,1998
- Region-Based Memory ManagementInformation and Computation, 1997
- Vmalloc: A General and Efficient Memory AllocatorSoftware: Practice and Experience, 1996
- Using lifetime predictors to improve memory allocation performancePublished by Association for Computing Machinery (ACM) ,1993
- Fast allocation and deallocation of memory based on object lifetimesSoftware: Practice and Experience, 1990
- Managing Reentrant Structures Using Reference CountsACM Transactions on Programming Languages and Systems, 1980
- The AED free storage packageCommunications of the ACM, 1967