reference counting definition programming
A garbage collection
technique where each memory cell
contains a count of the number of other cells which point to it. If this count reaches zero the cell is freed and its pointers
to other cells are followed to decrement their counts, and so on recursively
This technique cannot cope with circular data structures. Cells in such structures refer (indirectly) to themselves and so will never have a zero reference count. This means they would never be reclaimed, even when there are no references from outside the structure.