Polyvariant Escape Analysis

Stc
-

Date: 2008-11-20

Time: 12.00

Room: BBL room 471

Speaker: Alesya Sheremet

Title: Polyvariant Escape Analysis (thesis defense)

Abstract

In this presentation I will discuss the type-based escape analysis which is the focus of my thesis project. The purpose of escape analysis is to predict statically, at compile time, when the parameters to a function have a longer lifetime than the call to that function. We will discuss escape analysis in the context of higher-order functional languages with the call-by-value evaluation mechanism.

The expedient property of higher-order functional languages is the ability to support functions possibly containing free variables as first- class citizens which forces the implementation of higher-order functional languages to represent all arguments of function type by closures. Traditionally, languages which natively support closures allocate data on the heap and use garbage collection for implicit memory management.

The type-based escape analysis is an optimization technique which provides escape information in the presence of higher-order functions and allows to detect opportunities for stack allocation for variables bindings. The type-based approach to escape analysis can be seen as a natural extension of the type inference process whose goal is to enrich the types with annotations with the intention to capture the escape property of interest statically, at compile time, without executing a program. I will discuss how to extend the analysis with polyvariance and present an inference algorithm which allows to detect the escaping variable bindings.