Garbage collection in multischeme

  • James S. Miller
  • Barbara S. Epstein
Part I Parallel Lisp Languages and Programming Models
Part of the Lecture Notes in Computer Science book series (LNCS, volume 441)


On stock hardware, our garbage collector commonly takes under 4% of a system's time and less than 0.2 seconds at each occurrence. It provides an unsurpassed mechanism for reclaiming memory and processing resources in a parallel system. Furthermore, the elementary algorithm is easily extended to a parallel implementation that achieves significant performance improvement without slowing down the operation of user programs.

The garbage collector is also an important component of the system when investigating speculative computation. The requirement that the garbage collector recycle tasks that are no longer performing useful work impacts not only the design of internal data structures, but also affects the semantics of continuations in a parallel system.


Garbage Collection Runtime System Constant Space Garbage Collector Forwarding Pointer 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Hal Abelson and G. J. Sussman. Procedural abstractions in lisp programming. Tentative title, submitted to Byte Magazine, August 1987.Google Scholar
  2. [2]
    Harold Abelson, Gerald Jay Sussman, and Julie Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985.Google Scholar
  3. [3]
    Laura Bagnall et al. The butterfly lisp user interface. Submitted to Workshop on Parallel and Distributed Debugging, 1987.Google Scholar
  4. [4]
    H. Baker and C. Hewitt. The incremental garbage collection of processes. Technical Report AI Memo 454, Mass. Inst. of Technology, Artificial Intelligence Laboratory, December 1977.Google Scholar
  5. [5]
    BBN Advanced Computers Inc., Cambridge, MA. Butterfly Common Lisp and Butterfly Scheme Release Notes, February 1989. Release 1.0.Google Scholar
  6. [6]
    Stewart Michael Clamen. Debugging in a parallel lisp environment. Bachelor's thesis, Mass. Inst. of Technology, 1986.Google Scholar
  7. [7]
    Anthony James Courtemanche. Multitrash, a parallel garbage collector for multi-Scheme. Bachelor's thesis, Mass. Inst. of Technology, 1986.Google Scholar
  8. [8]
    Barbara S. Epstein. Support for speculative computation in multiScheme. Bachelor's thesis, Brandeis, 1989.Google Scholar
  9. [9]
    R. Fenichel and J. Yochelson. A Lisp garbage collector for virtual memory computer systems. Comm. of the ACM, 12(11):611–612, 1969.Google Scholar
  10. [10]
    R. Halstead. Multilisp: A language for concurrent symbolic computation. In ACM Trans. on Prog. Languages and Systems, pages 501–538, October 1985.Google Scholar
  11. [11]
    C. Hewitt. Viewing control structures as patterns of passing messages. Journal of Artificial Intelligence, 8(3):323–364, 1977.Google Scholar
  12. [12]
    Mass. Inst. of Technology, Cambridge, MA. MIT Scheme Reference, Scheme Release 7, 1988.Google Scholar
  13. [13]
    James Miller. MultiScheme: A Parallel Processing System Based on MIT Scheme. PhD thesis, Mass. Inst. of Technology, August 1987. Available as MIT LCS/TR/402.Google Scholar
  14. [14]
    James Miller. Implementing a Scheme-based parallel processing system. International Journal of Parallel Processing, 17(5), October 1988.Google Scholar
  15. [15]
    James Miller and Christopher Hanson. IEEE Draft Standard for the Programming Language Scheme. IEEE. forthcoming.Google Scholar
  16. [16]
    James Miller and Guillermo Rozas. Free variables and first-class environments. Journal of Lisp and Symbolic Computation, to appear.Google Scholar
  17. [17]
    Jonathan Rees, Norman Adams, and James Meehan. The t manual. Technical report, Yale University, January 1984. Fourth edition.Google Scholar
  18. [18]
    Jonathan Rees and William Clinger (editors). Revised3 report on the algorithmic language Scheme. ACM Sigplan Notices, 21(12), December 1986. Also available as MIT AI Memo 818a.Google Scholar
  19. [19]
    David Ungar. Generation scavenging: A non-distruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices, 19(5):157–167, May 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • James S. Miller
    • 1
  • Barbara S. Epstein
    • 2
  1. 1.Brandeis UniversityWalthamUSA
  2. 2.Encore Computer Corp.MarlboroUSA

Personalised recommendations