The Semantics of Garbage Collection in OO Languages

Rob Hunter, Shriram Krishnamurthi

Foundations of Object-Oriented Languages, 2003


Traditional programming language models ignore garbage collection. When semanticists leave it as an implementation detail separate from the model, any properties they prove are less meaningful because the model does not accurately describe the implemented system. Some language models do incorporate garbage collection, but none of these models handle side effects, objects, or sub-typing, which are each realistic language features.

We present the first semantics for an object-oriented language that explicitly models garbage collection. We prove that the model is sound and that inserting garbage collection steps into evaluation preserves the original semantics. Our work provides a framework for future research on semantic foundations for systems that need to make high-level guarantees in the presence of complex memory management operations.



These papers may differ in formatting from the versions that appear in print. They are made available only to support the rapid dissemination of results; the printed versions, not these, should be considered definitive. The copyrights belong to their respective owners.