Skip to main content
Kent Academic Repository

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) (KAR id:21162)

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.
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: Reports and Papers (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: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Richard Jones
Date Deposited: 12 Aug 2009 19:24 UTC
Last Modified: 16 Nov 2021 09:59 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/21162 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.