Many languages without GC use refcounting. Sadly this doesn't prevent surprising pauses -- one DECREF could end up freeing a large graph.
miniblog.
Related Posts
I've been tinkering with some garbage collection approaches for a toy language.
Comparing refcounting with mark-and-sweep, the latter seems less error-prone. 'Values in list X but not in Y' is less scary to implement than 'every incref should have a decref'. Agree/disagree?