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.
Similar content being viewed by others
References
Allen, J.,Anatomy of LISP, McGraw-Hill, New York, 1978.
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.
Barth, J., “Shifting Garbage Collection Overhead to Compile Time,”Commun. ACM, 20, 7, pp. 513–518, July, 1977.
Clark, D. W. and Green, C. C., “An Empirical Study of List Structure in Lisp,”Commun. ACM, 20, 2, pp. 78–87, Feb., 1977.
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.
Cohen, J., “Garbage Collection of Linked Data Structures,”Computing Surveys, 13, 3, pp. 341–367, Sep., 1981.
Deutsh, L. P. and Bobrow, D. G., “An Efficient Incremental Automatic Garbage Collector”,Commun. ACM, 19, 9, pp. 522–526, Sep., 1976.
Field, A. J. and Harrison, P. G.,Functional Programming, Addison-Wesley, Massachusetts, 1988.
Gabriel, R. P.,Performance and Evaluation of Lisp Systems, MIT Press, Massachusetts, 1985.
Hudak, P. and Bloss, A., “The Aggregate Update Problem in Functional Programming System,”12th ACM PORL, 1985.
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.
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.
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.
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.
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.
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.
Kurokawa, T.,Introduction to LISP, Baifukan, Tokyo, 1982.
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.
Milner, R., “A Theory of Type Polymorphism in Programming,”Journal of Computer & System Science, 17, 3, pp. 348–375, Dec., 1978.
Reade, C.,Elements of Functional Programming, Addison-Wesley, Massachusetts, 1989.
Takeuchi, I., “The Result of the Lisp Contest,”Technical Report of Information Processing Society of Japan, SYM 5-3, pp. 1–28, 1978.
Wise, D. S. and Friedman, D. P., “The One-bit Reference Count,”BIT, 17, 4, pp. 351–359, 1977.
Author information
Authors and Affiliations
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
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF03037524