Abstract
We present a strategy to derive an efficient reference count garbage collector for any applicative program by only modifying it on the source code level. The key to the approach is to consider the memory as an explicit parameter of the applicative program, thus enabling to implement data structures in terms of memory primitives. On the basis of equivalence preserving source level transformations, reference count instructions are generated and optimized in order to reduce their inherent run-time overhead, and to introduce run-time detected selective update on recursive data structures.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Barth, J.M.: Shifting Garbage Collection Overhead to Compile Time. CACM 20, 513–518
Bauer, F.L. et al.: The Munich Project CIP: The Wide-Spectrum Language CIP-L. LNCS 183, Springer
Bloss, A.: Update Analysis and the Efficient Implementation of Functional Aggregates. FPCA, ACM Press, 26–38
Didrich, K. et al.: Opal: Design and Implementation of an Algebraic Programming Language. In: Gutknecht, J. (Ed.): Programming Languages and System Architecture. LNCS 782, Springer, 228–244
Glaser, H.W., Thompson, P.: Lazy Garbage Collection. Software — Practice and Experience 17, 1–4
Hudak, P.: A Semantic Model of Reference Counting and its Abstraction. In: Abramsky S., Hankin C. (Eds.): Abstract Interpretation of Declarative Languages. Elllis Horwood
Jones, S.B., Le Métayer, D.: Compile-time Garbage Collection. FPCA, ACM Press, 54–74
Park, Y.G., Goldberg, B.: Reference Escape Analysis: Optimizing Reference Counting Based on the Lifetime of References. SIGPLAN Notices 26 (9), 178–189
Partsch, H.A.: Specification and Transformation of Programs. Springer
Partsch, H.A., Tuijnman, D.: Exercises in Formal Specifications and Program Development by Transformation. Tech. Report 92-33, KU Nijmegen
Pepper, P.: The Programming Language OPAL-1 — The Implementation Language. Technical Report 91-10, TU Berlin
Schulte, W.: Effiziente und korrekte Übersetzung strikter applikativer Programmiersprachen. PhD. (In German), TU Berlin
Schulte, W., Grieskamp, W.: Generating Efficient Portable Code for a Strict Applicative Language. In: Darlington, J., Dietrich, R. (Eds.): Declarative Programming, Springer, 239–254
Stoye, W.R., Clarke, T.J.W., Norman, A.C.: Some Practical Methods for Rapid Combinator Reduction. Symp. on LISP and Functional Programming, ACM Press, 159–166
Weinstock, C.B., Wulf, W.A.: Quick Fit: An Efficient Algorithm for Heap Storage Allocation. SIGPLAN Notices 23, 141–148
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Schulte, W. (1994). Deriving residual reference count garbage collectors. In: Hermenegildo, M., Penjam, J. (eds) Programming Language Implementation and Logic Programming. PLILP 1994. Lecture Notes in Computer Science, vol 844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58402-1_9
Download citation
DOI: https://doi.org/10.1007/3-540-58402-1_9
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58402-5
Online ISBN: 978-3-540-48695-4
eBook Packages: Springer Book Archive