Abstract: Static program analysis and compile time program optimizations are important aspects of functional language compilers. Strictness optimization is a big part of a Haskell compiler, it is interesting from a research perspective, as well as being needed for practical performance issues.
In this presentation we explore a new, typed intermediate language designed for doing static program analysis. This language is well suited to implementing optimizing transformations. We implement strictness optimization for first-order functions, and see how we can safely combine this optimization with other optimizations.
Finally, we discuss how we can extend the language to implement strictness optimization for higher-order functions.