JUCS - Journal of Universal Computer Science 11(7): 1198-1214, doi: 10.3217/jucs-011-07-1198
A Formal Semantics for Finalizers
expand article infoMarcus Amorim Leal, Roberto Ierusalimschy§
‡ PUC-Rio, Brazil§ PUC-Rio, Rio de Janeiro, Brazil
Open Access
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 garbage­collected 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
memory management, garbage collection, finalization, semantics