SEMANTIC PROGRAM ANALYSES FOR STORAGE MANAGEMENT OPTIMIZATIONS
IN FUNCTIONAL LANGUAGE IMPLEMENTATIONS
11:00 a.m., Friday, September 27, 1991
12th floor, 719 Broadway
One of the major overheads in implementing functional languages in both uniprocessor and multiprocessor environments is the storage management overhead due to dynamic allocation and automatic reclamation of indefinite- extent storage. We investigate compiler optimization to reduce such overhead by statically inferring the lifetime information about dynamically-allocated objects.
We have developed a set of compile-time semantic analyses for a higher-order monomorphic strict functional language based on denotational semantics and abstract interpretation:
Using statically inferred escape information, we have proposed a variety of storage management optimization techniques including stack allocation, explicit reclamation, in-place reuse, reference counting elimination, block allocation/reclamation, and improving generational garbage collection.