Activation Record

A data structure containing the important state information for a particular instance of a function call (or something that resembles a function call). May exist entirely in memory, or be partially stored in registers. Typically, an ActivationRecord contains the following:

<add anything I forgot>

In many (most) programming languages, ActivationRecords maintain a strict LastInFirstOut discipline and are thus stored on a stack (often referred to as TheStack). For this reason, ActivationRecords are also commonly known as stack frames. In the context of languages (like C) where a stack is always used; this terminology is correct. As other languages don't use stacks for this purpose (many Smalltalk implementations, StacklessPython), ActivationRecord is a more correct term when talking about languages in general.

This scheme works well, unless you have the following features in your language (which violate LIFO discipline)

In languages with these, other arrangements are often used, see ContinuationImplementation for examples.

Contributors: ScottJohnson


View edit of December 16, 2005 or FindPage with title or text search