A Formal Semantics for Finalizers
Marcus Amorim Leal (PUC-Rio, Brazil)
Roberto Ierusalimschy (PUC-Rio, Brazil)
Abstract: Automatic finalization is a common but inherently complex language facility that makes the garbage collection process semantically visible to client programs. With finalizers, memory management becomes more flexible, and garbage collectors can be used to recycle other resources in addition to memory.
Formal language models usually ignore garbage collection, and therefore are unable to properly describe finalization. In this paper we use an operational approach to develop a new abstract model that explicitly represents memory management actions in a garbagecollected programming language based on the λcalculus. We formally state and prove several important properties related to memory management, and employ the model to describe and explore a semantics for finalizers.
Keywords: finalization, garbage collection, memory management, semantics
Categories: D.3.3, D.4.2, F.3.2