Skip to main content

Allocation regions & implementation contracts

  • Improving Locality
  • Conference paper
  • First Online:
Memory Management (IWMM 1992)

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

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A. Appel. A runtime system. Technical report, Princeton University, February 1989. (DRAFT).

    Google Scholar 

  2. A. Appel. Runtime tags aren't necessary. Lisp and Symbolic Computation, 2, 6 1989.

    Article  Google Scholar 

  3. A. Appel. Simple generational garbage collection and fast allocation. Software-Practice and Experience, 19(2), February 1989.

    Google Scholar 

  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. P. B. Bishop. Computer systems with a very large address space and garbage collection. PhD thesis, MIT, Cambridge, MA, May 1977.

    Google Scholar 

  6. H-J. Boehm. Mostly parallel garbage collection. In SIGPLAN'91, pages 157–163. Xerox PARC, 1991.

    Google Scholar 

  7. H. J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Software — Practice and Experience, 18(9), September 1988.

    Google Scholar 

  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. C. J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677–678, 1970.

    Article  Google Scholar 

  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. 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. D. Hanson. Fast allocation and deallocation of memory based on object lifetimes. Software — Practice and Experience, 20(1), January 1990.

    Google Scholar 

  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. 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. B. Lampson. A description of the Cedar language: a Cedar language manual. Technical Report 15, Xerox PARC, Palo Alto, CA, 1983.

    Google Scholar 

  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. 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. W. Schelter. AKCL: Austin Kyoto Common Lisp. University of Texas, Austin, December 1987. first release (akcl-1).

    Google Scholar 

  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. 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. 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. 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. T. Yuasa and M. Hagiya. Kyoto Common Lisp report. Technical report, Research Institute for Mathematical Sciences, Kyoto University, 1986.

    Google Scholar 

  24. B. Zorn. Comparative Performance Evaluation of Garbage Collection Algorithms. PhD thesis, UCB, Berkeley, CA, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Yves Bekkers Jacques Cohen

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Delacour, V. (1992). Allocation regions & implementation contracts. In: Bekkers, Y., Cohen, J. (eds) Memory Management. IWMM 1992. Lecture Notes in Computer Science, vol 637. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017205

Download citation

  • DOI: https://doi.org/10.1007/BFb0017205

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55940-5

  • Online ISBN: 978-3-540-47315-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics