The compiler writer can optimize the allocation of are in several ways. For example, the compiler might:
(a) Allocate are for leaf procedures (those that make no procedure calls) statically.
(b) Combine the are for procedures that are always called together. (When α is called, it always calls β.)
(c) Use an arena-style allocator in place of heap allocation of are.
For each scheme, consider the following questions:
(d) What fraction of the calls might benefit? In the best case? In the worst case?
(e) What is the impact on run-time space utilization?