Allocation regions & implementation contracts

  • V. Delacour
Improving Locality
Part of the Lecture Notes in Computer Science book series (LNCS, volume 637)


The purpose of this article is to advocate the use of two intermediate level abstractions named allocation region and implementation contract as the interface of language-independent memory management systems (MMS).

The allocation regions are both sets of objects and memory domains (sets of pages or sets of segments.) The implementation contracts represent symbolically the capabilities of the memory management system: the set of object formats and collection policies it supports. These two concepts give an intermediate level of abstraction to describe and compare most existing garbage collected MMS. We go further and advocate a full support for this level of abstraction through a flexible memory management interface: the allocation becomes a two step process in which (i) an allocation region is created with an attached implementation contract, and (ii) objects are allocated in the region. We show how to implement the abstraction, and how to take advantage of it.


Garbage Collection Object Format Allocation Region Garbage Collector Memory Domain 
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.
    A. Appel. A runtime system. Technical report, Princeton University, February 1989. (DRAFT).Google Scholar
  2. 2.
    A. Appel. Runtime tags aren't necessary. Lisp and Symbolic Computation, 2, 6 1989.CrossRefGoogle Scholar
  3. 3.
    A. Appel. Simple generational garbage collection and fast allocation. Software-Practice and Experience, 19(2), February 1989.Google Scholar
  4. 4.
    J. F. Bartlett. Compacting garbage collection with ambiguous roots. Research Report 88/2, Digital Western Research Laboratory, Palo Alto, Cal., February 1988.Google Scholar
  5. 5.
    P. B. Bishop. Computer systems with a very large address space and garbage collection. PhD thesis, MIT, Cambridge, MA, May 1977.Google Scholar
  6. 6.
    H-J. Boehm. Mostly parallel garbage collection. In SIGPLAN'91, pages 157–163. Xerox PARC, 1991.Google Scholar
  7. 7.
    H. J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Software — Practice and Experience, 18(9), September 1988.Google Scholar
  8. 8.
    J. Chailloux and al. Le-Lisp de l'INRIA, version 15.2. Le manuel de référence. INRIA, Le Chesnay, 1986.Google Scholar
  9. 9.
    C. J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677–678, 1970.CrossRefGoogle Scholar
  10. 10.
    V. Delacour. Gestion mémoire automatique pour langages de programmation de haut niveau. Thèse de l'Université Paris 6, LIX-INRIA, Paris, juin 1991.Google Scholar
  11. 11.
    A. Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Annual ACM Symposium on Principles of Programming Languages, San Francisco, January 1990. ACM.Google Scholar
  12. 12.
    D. Hanson. Fast allocation and deallocation of memory based on object lifetimes. Software — Practice and Experience, 20(1), January 1990.Google Scholar
  13. 13.
    R. Hudson, J. Eliot Moss, A. Diwan, and C. Weight. A language-independent garbage collector toolkit. Technical Report 91–47, University of Massachusetts, Amherts, 1991.Google Scholar
  14. 14.
    P. Jouvelot and D. Gifford. Parallel functional programming: the FX project. In M. Cosnard and al, editors, Parallel and distributed algorithms, pages 257–267. North-Holland, 1989.Google Scholar
  15. 15.
    B. Lampson. A description of the Cedar language: a Cedar language manual. Technical Report 15, Xerox PARC, Palo Alto, CA, 1983.Google Scholar
  16. 16.
    D. A. Moon. Garbage collection in a large Lisp system. In Symposium on Lisp and Functionnal Programming, Austin, Texas, 1984. ACM.Google Scholar
  17. 17.
    E. Muller and B. Kalsow. SRC Modula-3, version 2.05. Technical report, DEC, Palo Alto, CA, 1992. Included in the public distribution of SRC Modula-3.Google Scholar
  18. 18.
    W. Schelter. AKCL: Austin Kyoto Common Lisp. University of Texas, Austin, December 1987. first release (akcl-1).Google Scholar
  19. 19.
    N. Séniak. Théorie et pratique de Sqil, un langage intermédiaire pour la compilation des langages fonctionnels. Thèse de l'Université Paris 6, LIX-INRIA, Paris, octobre 1991.Google Scholar
  20. 20.
    P. G. Sobalvarro. A lifetime-based garbage collector for Lisp systems on general-purpose computers. Bachelor's thesis, MIT, Cambridge, MA, 1988.Google Scholar
  21. 21.
    M. Weiser, A. Demers, and C. Hauser. The Portable Common Runtime approach to interoperability. In ACM 13th symposium on Operating Systems Principles, December 1989.Google Scholar
  22. 22.
    Paul R. Wilson. Effective “static-graph,” reorganization to improve locality in garbage-collected systems. In SIGPLAN'91, pages 177–191, june 1991.Google Scholar
  23. 23.
    T. Yuasa and M. Hagiya. Kyoto Common Lisp report. Technical report, Research Institute for Mathematical Sciences, Kyoto University, 1986.Google Scholar
  24. 24.
    B. Zorn. Comparative Performance Evaluation of Garbage Collection Algorithms. PhD thesis, UCB, Berkeley, CA, 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • V. Delacour
    • 1
    • 2
  1. 1.Xerox PARCPalo AltoUSA
  2. 2.INRIALe Chesnay CedexFrance

Personalised recommendations