Accurate garbage collection in uncooperative environments with lazy pointer stacks

  • Authors:
  • Jason Baker;Antonio Cunei;Filip Pizlo;Jan Vitek

  • Affiliations:
  • Computer Science Department, Purdue University, West Lafayette, IN;Computer Science Department, Purdue University, West Lafayette, IN;Computer Science Department, Purdue University, West Lafayette, IN;Computer Science Department, Purdue University, West Lafayette, IN

  • Venue:
  • CC'07 Proceedings of the 16th international conference on Compiler construction
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Implementing a new programming language by the means of a translator to an existing language is attractive as it provides portability over all platforms supported by the host language and reduces the development time as many low-level tasks can be delegated to the host compiler. The C and C++ programming languages are popular choices for many language implementations due to the availability of efficient compilers on many platforms, and good portability. For garbage-collected languages, however, they are not a perfect match as they provide no support for accurately discovering pointers to heap-allocated data. We evaluate the published techniques, and propose a new mechanism, lazy pointer stacks, for performing accurate garbage collection in such uncooperative environments. We implemented the new technique in the Ovm Java virtual machine with our own Java-to-C++ compiler and GCC as a back-end, and found that our technique outperforms existing approaches.