All safe languages provide a mechanism for automatic memory management, traditionally in the form of a garbage collector. Static memory management and, more specifically, region inference are attempts to limit the run-time costs associated with memory management by performing one or more static analyses that conservatively approximate the behavior of an ordinary collector. During my internship at Microsoft Research, I contributed to the design and implementation of a region-based memory manager for C#, an object-oriented language. In this talk, I will review some initial as well as recent work in region inference and present a number of challenges specific to object-oriented languages. I will relate our approach as a synthesis of previous region-based memory management systems and a set of imperative program analyses.
of Programming Seminars