skip to main content
10.1145/158511.158611acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

A concurrent, generational garbage collector for a multithreaded implementation of ML

Published:01 March 1993Publication History

ABSTRACT

This paper presents the design and implementation of a “quasi real-time” garbage collector for Concurrent Caml Light, an implementation of ML with threads. This two-generation system combines a fast, asynchronous copying collector on the young generation with a non-disruptive concurrent marking collector on the old generation. This design crucially relies on the ML compile-time distinction between mutable and immutable objects.

References

  1. 1.A. W. Appel. Compiling with continuations. Cambridge University Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.A. W. Appel, J. R. Ellis, and K. Li. Real-time concurrent collection on stock multiprocessors. SIG- PLAN Notices, 23(7):11-23, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.A. W. Appel and K. Li. Virtual memory primitives for user programs. Technical Report CS-TR-276- 90, Princeton University, 1990.Google ScholarGoogle Scholar
  4. 4.H. G. Baker. List processing in real time on a serial computer. Commun. A CM, 21(4):280-294, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.M. Ben-Ari. Algorithms for on-the-fly garbage collection. A CM Trans. Prog. Lang. Syst., 6(3):333- 344, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.B. Berthomieu. Implementing CCS: the LCS experiment. Technical report 89425, LAAS, Dec. 1989.Google ScholarGoogle Scholar
  7. 7.H. J. Boehm, A. J. Demers, and S. Shenker. Mostly parallel garbage collection. SIGPLAN Notices, 26(6):157-164, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.R. A. Brooks. Trading data space for reduced time and code space in real-time garbage collection on stock hardware. In Lisp and Functional Programming 198~, pages 256-262. ACM Press, 1984. Google ScholarGoogle Scholar
  9. 9.E. C. Cooper and R. P. Draves. C threads. Technical report CMU-CS-88-154, Carnegie Mellon University, 1988.Google ScholarGoogle Scholar
  10. 10.G. Cousineau, P.-L. Curien, and M. Mauny. The categorical abstract machine. Sczence of Computer Programming, 8(2):173-202, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.E. W. Dijkstra, L. Lamport, A. :I. Martin, C. S. Sholten, and E. F. M. Steffens. On-the-fly garbage collection: an exercice in cooperation. Commun. ACM, 21(11):966-975, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.R. H. Halstead. Implementation of Multilisp: Lisp on a multiprocessor. In Lisp and Functional Programming 1984, pages 9-17. ACM Press, 1984. Google ScholarGoogle Scholar
  13. 13.T. Hickey and :I. Cohen. Performance analysis of on-the-fly garbage collection. Commun. A CM, 27(11):1143-1154, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.H. T. Kung and S. W. Song. An efficient parallel garbage collection system and its correctness proof. In Foundations of Computer Science 1977, pages 120-131. IEEE Computer Society Press, 1977.Google ScholarGoogle Scholar
  15. 15.X. Leroy. The ZINC experiment: an economical implementation of the ML language. Technical report 117, INRIA, 1990.Google ScholarGoogle Scholar
  16. 16.X. Leroy and M. Mauny. The Caml Light system, version 0.5 documentation and user's guide. Technical report L-5, INRIA, 1992.Google ScholarGoogle Scholar
  17. 17.R. Milner, M. Tofte, and R. Harper. The definition of Standard ML. The MIT Press, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18.D.A. Moon. Garbage collection in a large Lisp system. In Lisp and Functional Programming 198~, pages 235-246. ACM Press, 1984. Google ScholarGoogle Scholar
  19. 19.:I. G. Morriset and A. Tolmach. A portable multiprocessor interface for Standard ML of New Jersey. Technical report CMU-CS-92-155, Carnegie Mellon University, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20.S. C. North and :I. H. Reppy. Concurrent garbage collection on stock hardware. In Functional Programming Languages and Computer Architecture 1987, volume 242 of Lecture Notes in Computer Science, pages 113-133. Springer-Verlag, 1987. Google ScholarGoogle ScholarCross RefCross Ref
  21. 21.L. C. Paulson. ML for the working programmer. Cambridge University Press, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.J. H. Reppy. CML: a higher-order concurrent language. SIGPLAN Notices, 6(26):294-305, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.G. L. Steele Jr. Multiprocessing compactifying garbage collection. Commun. A CM, 18(9):495- 508, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.D. Ungar. Generation scavenging: a nondisruptive high performance storage reclamation algorithm. In Software Engineering Symposium on Practical Software Development Environmenls, pages 157-167. ACM Press, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A concurrent, generational garbage collector for a multithreaded implementation of ML

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          POPL '93: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
          March 1993
          510 pages
          ISBN:0897915607
          DOI:10.1145/158511

          Copyright © 1993 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 March 1993

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          POPL '93 Paper Acceptance Rate39of199submissions,20%Overall Acceptance Rate824of4,130submissions,20%

          Upcoming Conference

          POPL '25

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader