Stoye's one-bit reference tagging scheme can be extended to local counts of
two or more via two strategies. The first, suited to pure register transac
tions, is a cache of referents to two shared references. The analog of Deut
sch's and Bobrow's multiple-reference table, this cache is sufficient to ma
nage small counts across successive assignment statements. Thus, accurate r
eference counts above one can be tracked for short intervals, like those br
idging one function's environment to its successor's.
The second, motivated by runtime stacks that duplicate references, avoids c
ounting any references from the stack. It requires a local pointer-inversio
n protocol in the mutator, but one still local to the referent and the stac
k frame. Thus, an accurate reference count of one can be maintained regardl
ess of references from the recursion stack.