Using Dataflow Optimization Techniques with a Monadic Intermediate Language
Justin Bailey <jgbailey@codeslower.com>Abstract
Our work applies the dataflow algorithm to an area outside its
traditional scope: functional languages. Our approach relies on
a monadic intermediate language that provides low-level,
imperative features like computed jumps and explicit allocations,
while at the same time supporting high-level, functional-language
features like case discrimination and partial application. We
prototyped our work in Haskell using the hoopl library and this
dissertation shows numerous examples demonstrating its use. We prove
the efficacy of our approach by giving a novel description of
the uncurrying optimization in terms of the dataflow algorithm, as
well as a complete implementation of the optimization using hoopl.