Using Dataflow Optimization Techniques with a Monadic Intermediate Language

codeslower.com Savor Your Code.

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.

Thesis

: Download the document: thesis.pdf.

Source Code

: TeX and Haskell source code for this thesis can be found at https://github.com/m4dc4p/mil.

Slides

: Slides prepared for my defense can also be downloaded: defense.pdf.