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
It has long been known that some of the most common uses of for and while-loops in imperative progra...
This paper presents new optimization approaches aiming at reducing the impact of memory accesses on ...
The term "dataflow" generally encompasses three distinct aspects of computation - a data-driven mode...
Dataflow analysis and transformation of control-flow graphs is per-vasive in optimizing compilers, b...
Functional dataflow programming languages are designed to create parallel portable programs. The sou...
This paper describes MIL, a monadic intermediate language that is designed for use in optimizing c...
Dataflow analysis is a powerful tool used for program optimization, static analysis, and editor serv...
In the world of programming, there are many kinds of languages from which to choose. These varied la...
This paper presents a monadic approach to incremental computation, suitable for purely functional la...
Lazy functional languages such as LML [4], Haskell [21], and Concurrent Clean [35] typically feature...
We present a translation from programs expressed in a functional IR into dataflow networks as an int...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
In the streaming domain, applications are often described as dataflow graphs. Each node in the graph...
Are imperative languages tied inseparably to the von Neumann model or can they be implemented in so...
International audienceThis chapter reviews dataflow programming as a whole and presents a classifica...
It has long been known that some of the most common uses of for and while-loops in imperative progra...
This paper presents new optimization approaches aiming at reducing the impact of memory accesses on ...
The term "dataflow" generally encompasses three distinct aspects of computation - a data-driven mode...
Dataflow analysis and transformation of control-flow graphs is per-vasive in optimizing compilers, b...
Functional dataflow programming languages are designed to create parallel portable programs. The sou...
This paper describes MIL, a monadic intermediate language that is designed for use in optimizing c...
Dataflow analysis is a powerful tool used for program optimization, static analysis, and editor serv...
In the world of programming, there are many kinds of languages from which to choose. These varied la...
This paper presents a monadic approach to incremental computation, suitable for purely functional la...
Lazy functional languages such as LML [4], Haskell [21], and Concurrent Clean [35] typically feature...
We present a translation from programs expressed in a functional IR into dataflow networks as an int...
This paper explores the use monads to structure functional programs. No prior knowledge of monads or...
In the streaming domain, applications are often described as dataflow graphs. Each node in the graph...
Are imperative languages tied inseparably to the von Neumann model or can they be implemented in so...
International audienceThis chapter reviews dataflow programming as a whole and presents a classifica...
It has long been known that some of the most common uses of for and while-loops in imperative progra...
This paper presents new optimization approaches aiming at reducing the impact of memory accesses on ...
The term "dataflow" generally encompasses three distinct aspects of computation - a data-driven mode...