Chapter 6: Runtime System

Static allocation

. Names are bound to storage as the program is compiled

. No runtime support is required

. Bindings do not change at run time

. On every invocation of procedure names are bound to the same storage

. Values of local names are retained across activations of a procedure

These are the fundamental characteristics of static allocation. Since name binding occurs during compilation, there is no need for a run-time support package. The retention of local name values across procedure activations means that when control returns to a procedure, the values of the locals are the same as they were when control last left. For example, suppose we had the following code, written in a language using static allocation: function F( )

{

int a;

print(a);

a = 10;

}

After calling F( ) once, if it was called a second time, the value of a would initially be 10, and this is what would get printed.