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.
Preview
Unable to display preview. Download preview PDF.
References
A. Appel. A runtime system. Technical report, Princeton University, February 1989. (DRAFT).
A. Appel. Runtime tags aren't necessary. Lisp and Symbolic Computation, 2, 6 1989.
A. Appel. Simple generational garbage collection and fast allocation. Software-Practice and Experience, 19(2), February 1989.
J. F. Bartlett. Compacting garbage collection with ambiguous roots. Research Report 88/2, Digital Western Research Laboratory, Palo Alto, Cal., February 1988.
P. B. Bishop. Computer systems with a very large address space and garbage collection. PhD thesis, MIT, Cambridge, MA, May 1977.
H-J. Boehm. Mostly parallel garbage collection. In SIGPLAN'91, pages 157–163. Xerox PARC, 1991.
H. J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Software — Practice and Experience, 18(9), September 1988.
J. Chailloux and al. Le-Lisp de l'INRIA, version 15.2. Le manuel de référence. INRIA, Le Chesnay, 1986.
C. J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677–678, 1970.
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.
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.
D. Hanson. Fast allocation and deallocation of memory based on object lifetimes. Software — Practice and Experience, 20(1), January 1990.
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.
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.
B. Lampson. A description of the Cedar language: a Cedar language manual. Technical Report 15, Xerox PARC, Palo Alto, CA, 1983.
D. A. Moon. Garbage collection in a large Lisp system. In Symposium on Lisp and Functionnal Programming, Austin, Texas, 1984. ACM.
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.
W. Schelter. AKCL: Austin Kyoto Common Lisp. University of Texas, Austin, December 1987. first release (akcl-1).
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.
P. G. Sobalvarro. A lifetime-based garbage collector for Lisp systems on general-purpose computers. Bachelor's thesis, MIT, Cambridge, MA, 1988.
M. Weiser, A. Demers, and C. Hauser. The Portable Common Runtime approach to interoperability. In ACM 13th symposium on Operating Systems Principles, December 1989.
Paul R. Wilson. Effective “static-graph,” reorganization to improve locality in garbage-collected systems. In SIGPLAN'91, pages 177–191, june 1991.
T. Yuasa and M. Hagiya. Kyoto Common Lisp report. Technical report, Research Institute for Mathematical Sciences, Kyoto University, 1986.
B. Zorn. Comparative Performance Evaluation of Garbage Collection Algorithms. PhD thesis, UCB, Berkeley, CA, 1989.
Author information
Authors and Affiliations
Editor information
Rights 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