Memory Management with Use-Counted Regions

Tachio Terauchi and Alex Aiken

EECS Department
University of California, Berkeley
Technical Report No. UCB/CSD-04-1314
March 2004

http://www2.eecs.berkeley.edu/Pubs/TechRpts/2004/CSD-04-1314.pdf

We introduce a new region-based memory management technique that allows flexible memory usage patterns and is provably safe. Our technique is explicit and manual like C's malloc and free, and it allows programmers to exert a similar degree of control over the program behavior. Our method is quite simple in spite of this expressiveness and safety.

We apply the technique to a small functional language to formally describe the core concepts, prove its safety, and argue its usability and efficiency analytically. In particular, we show that the system can efficiently encode more rigid, traditional regions whose lifetime is bounded by that of a stack frame. We also show that the technique works nicely with multi-threaded and imperative programs.


BibTeX citation:

@techreport{Terauchi:CSD-04-1314,
    Author = {Terauchi, Tachio and Aiken, Alex},
    Title = {Memory Management with Use-Counted Regions},
    Institution = {EECS Department, University of California, Berkeley},
    Year = {2004},
    Month = {Mar},
    URL = {http://www2.eecs.berkeley.edu/Pubs/TechRpts/2004/5216.html},
    Number = {UCB/CSD-04-1314},
    Abstract = {We introduce a new region-based memory management technique that allows flexible memory usage patterns and is provably safe. Our technique is explicit and manual like C's malloc and free, and it allows programmers to exert a similar degree of control over the program behavior. Our method is quite simple in spite of this expressiveness and safety. <p> We apply the technique to a small functional language to formally describe the core concepts, prove its safety, and argue its usability and efficiency analytically. In particular, we show that the system can efficiently encode more rigid, traditional regions whose lifetime is bounded by that of a stack frame. We also show that the technique works nicely with multi-threaded and imperative programs.}
}

EndNote citation:

%0 Report
%A Terauchi, Tachio
%A Aiken, Alex
%T Memory Management with Use-Counted Regions
%I EECS Department, University of California, Berkeley
%D 2004
%@ UCB/CSD-04-1314
%U http://www2.eecs.berkeley.edu/Pubs/TechRpts/2004/5216.html
%F Terauchi:CSD-04-1314