activation record meaning
<compiler> (Or "data frame", "stack frame") A data structure containing the variables belonging to one particular scope (e.g. a procedure body), as well as links to other activation records.
Activation records are usually created (on the stack) on entry to a block and destroyed on exit. If a procedure or function may be returned as a result, stored in a variable and used in an outer scope then its activation record must be stored in a heap so that its variables still exist when it is used. Variables in the current scope are accessed via the frame pointer which points to the current activation record. Variables in an outer scope are accessed by following chains of links between activation records. There are two kinds of link - the static link and the dynamic link.
- As nested calls accumulate, a call stack structure is formed, consisting of one activation record for each suspended subprogram.
- This is accomplished by storing extra context information within the activation record, also termed a " display ".
- An environment that fully supports coroutines or lazy evaluation may use data structures other than stacks to store their activation records.
- These languages organize their procedure'activation records'as separate heap objects rather than as stack frames appended to a linear stack.
- In fact, this stack structure is virtually ubiquitous, and so activation records are commonly termed " stack frames ".