Abstract
Deutsch and Bobrow propose a storage reclamation scheme for a heap which is a hybrid of garbage collection and reference counting. The point of the hybrid scheme is to keep track of very low reference counts between necessary invocation of garbage collection so that nodes which are allocated and rather quickly abandoned can be returned to available space, delaying necessity for garbage collection. We show how such a scheme may be implemented using the mark bit already required in every node by the garbage collector. Between garbage collections that bit is used to distinguish nodes with a reference count known to be one. A significant feature of our scheme is a small cache of references to nodes whose implemented counts “ought to be higher” which prevents the loss of logical count information in simple manipulations of uniquely referenced structures.
Similar content being viewed by others
References
J. M. Barth,Shifting garbage collection overhead to compile time, Comm. ACM. 20, 7 (July, 1977), 513–518.
D. W. Clark and C. C. Green,An empirical study of list structure in LISP, Comm. ACM. 20, 2 (February, 1977), 78–87.
G. E. Collins,A method for overlapping and erasure of lists, Comm. ACM. 3, 12 (December, 1960), 655–657.
L. P. Deutsch and D. G. Bobrow,An efficient, incremental, automatic garbage collector, Comm. ACM. 19, 9 (September, 1976), 522–526.
D. P. Friedman and D. S. Wise,CONS should not evaluate its arguments, In S. Michaelson and R. MilnerAutomata Languages and Programming, Edinburgh University Press, Edinburgh (1976), 257–284.
D. P. Friedman and D. S. Wise,Output driven interpretation of recursive programs, or writing creates and destroys data structures, Information Processing Lett. 5, 6 (December, 1976), 155–160.
C. A. R. Hoare,Towards a theory of parallel processing, In C. A. R. Hoare and R. H. Perrott (eds.),Operating System Techniques, Academic Press, London (1972), 61–71.
D. E. Knuth,Fundamental Algorithms, Addison-Wesley, Reading, MA (1975).
E. S. Lowry and C. W. Medlock,Object code optimization, Comm. ACM. 12, 1 (January, 1969), 13–22.
J. McCarthy, P. W. Abrahams, D. J. Edwards, T. P. Hart and M. I. Levin,LISP 1.5Programmer's Manual, MIT Press, Cambridge, MA (1962).
H. Schorr and W. M. Waite,An efficient machine-independent procedure for garbage collection in various list structures, Comm. ACM. 10, 8 (August, 1967), 501–506.
M. Wand and D. P. Friedman,Compiling lambda expressions using continuations, Technical Report 55, Computer Science Department, Indiana University (1976).
J. Weizenbaum,Symmetric list processor, Comm. ACM. 6, 9 (September, 1963), 524–544.
N. Wirth,The programming language PASCAL, Acta Informatica 1, 1 (1971), 35–63.
W. Wulf and M. Shaw,Global variables considered harmful, ACM SIGPLAN Notices 8, 2 (February, 1973), 28–34.
Author information
Authors and Affiliations
Additional information
Research reported herein was supported in part by the National Science Foundation under grants numbered MCS 75-08145 and DCR 75-06678.
Rights and permissions
About this article
Cite this article
Wise, D.S., Friedman, D.P. The one-bit reference count. BIT 17, 351–359 (1977). https://doi.org/10.1007/BF01932156
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01932156