Skip to main content

A garbage collector for the concurrent real-time language Erlang

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


Garbage collection is currently used in many different types of systems, both for high-level languages like ML and Prolog which traditionally have always had implicit memory management, and for languages like C++ which until recently have only had explicit memory management. However garbage collection is seldom used in real-time systems.

This paper describes the implementation of a real-time garbage collector for the programming language Erlang. Erlang is a language that has been designed to program large concurrent robust fault-tolerant real-time systems. We describe how the memory management system for Erlang is implemented and show how the needs of the Erlang language, and the systems in which it is being used, are handled by the collector.


  • Garbage Collection
  • Collection Rate
  • Allocation Region
  • Garbage Collector
  • Live Data

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.

This is a preview of subscription content, access via your institution.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Joe Armstrong and Robert Virding. One pass real-time generational mark-sweep garbage collection. Submitted to IWMM95.

    Google Scholar 

  2. Joe Armstrong, Robert Virding, and Mike Williams. Concurrent Programming in ERLANG. Prentice Hall, 1993.

    Google Scholar 

  3. Henry G. Baker, Jr. List processing in real time on a serial computer. Communications of the ACM, 21(4):280–294, April 1978. Originally appeared as MIT Artificial Intelligence Laboratory Working Paper No. 39, February 1977.

    Google Scholar 

  4. Mats Bengtsson. Real-Time compacting garbage collection algorithms. PhD thesis, Department of Computer Science, Lund University, 1990.

    Google Scholar 

  5. Rodney A. Brooks. Trading data space for reduced time and code space in real-time collection on stock hardware. In Conference Record of the 1984 ACM Symposium on LISP and Functional Programming, pages 108–113, Austin, Texas, August 1984. ACM Press.

    Google Scholar 

  6. E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):966–975, November 1978. Also E. W. Dijkstra Note EWD496, June 1975.

    Google Scholar 

  7. Henry Lieberman and Carl Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419–429, June 1983.

    Google Scholar 

  8. Paul R. Wilson. Uniprocessor garbage collection techniques. In Yves Bekkers and Jacques Cohen, editors, International Workshop on Memory Management, number 637 in Lecture Notes in Computer Science, pages 1–42, St. Malo, France, September 1992. Springer-Verlag.

    Google Scholar 

Download references

Author information

Authors and Affiliations


Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 1995 Springer-Verlag

About this paper

Cite this paper

Virding, R. (1995). A garbage collector for the concurrent real-time language Erlang. In: Baler, H.G. (eds) Memory Management. IWMM 1995. Lecture Notes in Computer Science, vol 986. Springer, Berlin, Heidelberg.

Download citation

  • DOI:

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60368-9

  • Online ISBN: 978-3-540-45511-0

  • eBook Packages: Springer Book Archive