Skip to main content
Log in

Implementation and analysis of compile-time gargage collection

  • Regular Papers
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

We have proposed a method to detect the generation of garbage cells, by analyzing a source text of functional programming languages.15) The garbage cells whose generation is expected are reclaimed immediately with very little overhead at the execution time. We call this methodcompile-time GC. To investigate the effects of the compile-time GC, an experimental LISP interpreter has been implemented, and several sample programs are executed. We knew that for most programs, many of the garbage cells are detected and reclaimed by the compile-time GC. Programming techniques to improve the reclaimability are also studied.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Allen, J.,Anatomy of LISP, McGraw-Hill, New York, 1978.

    MATH  Google Scholar 

  2. Baker, H. G., “Unify and Conquer (Garbage, Updating, Aliasing,…) in Functional Languages,”1990 ACM Conference on Lisp and Frunctional Programming, Nice, France, pp. 218–226, 1990.

  3. Barth, J., “Shifting Garbage Collection Overhead to Compile Time,”Commun. ACM, 20, 7, pp. 513–518, July, 1977.

    Article  MATH  MathSciNet  Google Scholar 

  4. Clark, D. W. and Green, C. C., “An Empirical Study of List Structure in Lisp,”Commun. ACM, 20, 2, pp. 78–87, Feb., 1977.

    Article  MATH  Google Scholar 

  5. Clark, D. W. and Green, C. C., “A Note on Shared List Structure in LISP,”Information Processing Letters, 7, 6, pp. 312–315, Oct., 1987.

    Article  Google Scholar 

  6. Cohen, J., “Garbage Collection of Linked Data Structures,”Computing Surveys, 13, 3, pp. 341–367, Sep., 1981.

    Article  MathSciNet  Google Scholar 

  7. Deutsh, L. P. and Bobrow, D. G., “An Efficient Incremental Automatic Garbage Collector”,Commun. ACM, 19, 9, pp. 522–526, Sep., 1976.

    Article  Google Scholar 

  8. Field, A. J. and Harrison, P. G.,Functional Programming, Addison-Wesley, Massachusetts, 1988.

    MATH  Google Scholar 

  9. Gabriel, R. P.,Performance and Evaluation of Lisp Systems, MIT Press, Massachusetts, 1985.

    Google Scholar 

  10. Hudak, P. and Bloss, A., “The Aggregate Update Problem in Functional Programming System,”12th ACM PORL, 1985.

  11. Hudak, P., “A Semantic Model of Reference Counting and Its Abstraction,”1986 ACM Conference on LISP and Functional Programming, Cambridge, pp. 351–363, Massachusetts, 1986.

  12. Inoue, K., Seki, H., Taniguchi, K. and Kasami, T., “Compiling and Optimizing Methods for Functional Language ASL/F,”Science of Computer Programming, 7, 3, pp. 297–312, Nov., 1986.

    Article  MATH  Google Scholar 

  13. Inoue, K., Kawase, J. and Torii, K., “Static Detection of Garbage Cells and an Experimental Lisp System,”Technical Report of Information Processing Society of Japan, SW 57-4, pp. 1–8, 1987.

    Google Scholar 

  14. Inoue, K. and Torii, K., “Algebraic Specification of the GO Rule,”Technical Report of Information Processing Society of Japan, SW 52–8, pp. 57–64, 1987.

    Google Scholar 

  15. Inoue, K., Seki, H. and Yagi, H., “Analysis of Functional Programs to Detect Run-time Garbage Cells”,ACM Trans. of Programming Languages and Systems, 10, 4, pp. 555–578, Oct., 1988.

    Article  MATH  Google Scholar 

  16. Jones, S. B. and Métayer, D. L., “Compile-time Garbage Collection by Sharing Analysis,”4th Conference on Functional Programming Languages and Computer Architecture, pp. 54–74, 1989.

  17. Kurokawa, T.,Introduction to LISP, Baifukan, Tokyo, 1982.

    Google Scholar 

  18. MaCarthy, J., Abrahams, P. W., Edwards, D. J., Hart, T. P. and Levin, M. I.,LISP 1.5 Programmer’s Manual, MIT Press, Massachusetts, 1965.

    Google Scholar 

  19. Milner, R., “A Theory of Type Polymorphism in Programming,”Journal of Computer & System Science, 17, 3, pp. 348–375, Dec., 1978.

    Article  MATH  MathSciNet  Google Scholar 

  20. Reade, C.,Elements of Functional Programming, Addison-Wesley, Massachusetts, 1989.

    MATH  Google Scholar 

  21. Takeuchi, I., “The Result of the Lisp Contest,”Technical Report of Information Processing Society of Japan, SYM 5-3, pp. 1–28, 1978.

    Google Scholar 

  22. Wise, D. S. and Friedman, D. P., “The One-bit Reference Count,”BIT, 17, 4, pp. 351–359, 1977.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

About this article

Cite this article

Inoue, K., Torii, K. Implementation and analysis of compile-time gargage collection. New Gener Comput 10, 101–119 (1991). https://doi.org/10.1007/BF03037524

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03037524

Keywords

Navigation