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: | 05 Nov 2024 09:59 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/21162 (The current URI for this page, for reference purposes) |
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):