Skip to main content

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. (doi: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 currently available from this repository. You may be able to access a copy if URLs are provided. (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)
DOI/Identification number: 10.1016/0020-0190(95)00131-U
Uncontrolled keywords: garbage collection, functional programming, compilers
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Faculties > Sciences > School of Computing > Theoretical Computing Group
Faculties > Sciences > School of Computing > Systems Architecture Group
Depositing User: Richard Jones
Date Deposited: 12 Aug 2009 19:24 UTC
Last Modified: 28 May 2019 14:00 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/21162 (The current URI for this page, for reference purposes)
  • Depositors only (login required):