Skip to main content

Deriving residual reference count garbage collectors

  • Conference paper
  • First Online:
Programming Language Implementation and Logic Programming (PLILP 1994)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 844))

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 to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Barth, J.M.: Shifting Garbage Collection Overhead to Compile Time. CACM 20, 513–518

    Google Scholar 

  2. Bauer, F.L. et al.: The Munich Project CIP: The Wide-Spectrum Language CIP-L. LNCS 183, Springer

    Google Scholar 

  3. Bloss, A.: Update Analysis and the Efficient Implementation of Functional Aggregates. FPCA, ACM Press, 26–38

    Google Scholar 

  4. 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

    Google Scholar 

  5. Glaser, H.W., Thompson, P.: Lazy Garbage Collection. Software — Practice and Experience 17, 1–4

    Google Scholar 

  6. Hudak, P.: A Semantic Model of Reference Counting and its Abstraction. In: Abramsky S., Hankin C. (Eds.): Abstract Interpretation of Declarative Languages. Elllis Horwood

    Google Scholar 

  7. Jones, S.B., Le Métayer, D.: Compile-time Garbage Collection. FPCA, ACM Press, 54–74

    Google Scholar 

  8. Park, Y.G., Goldberg, B.: Reference Escape Analysis: Optimizing Reference Counting Based on the Lifetime of References. SIGPLAN Notices 26 (9), 178–189

    Google Scholar 

  9. Partsch, H.A.: Specification and Transformation of Programs. Springer

    Google Scholar 

  10. Partsch, H.A., Tuijnman, D.: Exercises in Formal Specifications and Program Development by Transformation. Tech. Report 92-33, KU Nijmegen

    Google Scholar 

  11. Pepper, P.: The Programming Language OPAL-1 — The Implementation Language. Technical Report 91-10, TU Berlin

    Google Scholar 

  12. Schulte, W.: Effiziente und korrekte Übersetzung strikter applikativer Programmiersprachen. PhD. (In German), TU Berlin

    Google Scholar 

  13. Schulte, W., Grieskamp, W.: Generating Efficient Portable Code for a Strict Applicative Language. In: Darlington, J., Dietrich, R. (Eds.): Declarative Programming, Springer, 239–254

    Google Scholar 

  14. 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

    Google Scholar 

  15. Weinstock, C.B., Wulf, W.A.: Quick Fit: An Efficient Algorithm for Heap Storage Allocation. SIGPLAN Notices 23, 141–148

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manuel Hermenegildo Jaan Penjam

Rights and permissions

Reprints 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

Publish with us

Policies and ethics