Garbage Collecting Shared Environment Closure Reducers

Thomas, Stephen P. and Jones, Richard E. (1994) Garbage Collecting Shared Environment Closure Reducers. Technical report. Computing Laboratory, University of Kent at Canterbury 10.1016/0020-0190(95)00131-U. (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided)

The full text of this publication is not available from this repository. (Contact us about this Publication)
Official URL
http://dx.doi.org/10.1016/0020-0190(95)00131-U

Abstract

Shared environment closure reducers such as Fairbairn and Wray's TIM incur a comparatively low cost when creating a suspension, and so provide an elegant method for implementing lazy functional evaluation. However, comparatively little attention has been given to the problems involved in identifying which portions of a shared environment are needed (and ignoring those which are not) during a garbage collection. Proper consideration of this issue has subtle consequences when implementing a storage manager in a TIM-like system. We describe the problem and illustrate the negative consequences of ignoring it. We go on to describe a solution in which the compiler determines statically which portions of that code's environment are required for each piece of code it generates, and emits information to assist the run-time storage manager to scavenge environments selectively. We also describe a technique for expressing this information directly as executable code, and demonstrate that a garbage collector implemented in this way can perform significantly better than an equivalent, table-driven interpretive collector.

Item Type: Monograph (Technical report)
Uncontrolled keywords: garbage collection, functional programming, compilers
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Faculties > Science Technology and Medical Studies > School of Computing > Theoretical Computing Group
Faculties > Science Technology and Medical Studies > School of Computing > Systems Architecture Group
Depositing User: Richard Jones
Date Deposited: 12 Aug 2009 19:24
Last Modified: 04 Nov 2014 11:51
Resource URI: https://kar.kent.ac.uk/id/eprint/21162 (The current URI for this page, for reference purposes)
  • Depositors only (login required):