Original Post
I'm trying to make an interpreter for a Lisp-like language, and I intend to use reference counting for garbage collection. My idea so far is that when an object is bound to a symbol in a scope it's reference count is increased. If that symbol was already bound to an object, it's count will be decreased first. And finally when a scope is destroyed it will decrease the count of all it's bound objects. Then in the release() method of the objects I just call "delete this;" when the count reaches zero. Will this scheme suffice, or is it somehow flawed?