We describe an automated transformation which takes a higher-order program, and a produces an equivalent first-order program. Unlike Reynolds style defunctionalisation, it does not introduce any new data types, and the results are more amenable to subse-quent analysis operations. Our transformation is implemented, and works on a Core language to which Haskell programs can be re-duced. Our method cannot always succeed in removing all func-tional values, but in practice it is remarkably successful
Defunctionalization was introduced by John Reynolds in his 1972article Definitional Interpreters for...
Abstract: This paper describes an efficient interpreter for lazy functional languages like Haskell a...
In functional languages intermediate data structures are often used as glue to connect separate part...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...
In 1972, Reynolds outlined a general method for eliminating functional arguments known as defunction...
AbstractWe present the left inverse of Reynolds’ defunctionalization and we show its relevance to pr...
Defunctionalization is generally considered a whole-program transformation and thus incompatible wit...
There are many powerful techniques for automated termination analysis of term rewriting. However, up...
Abstract. Defunctionalization is generally considered a whole-program transfor-mation and thus incom...
Abstract Defunctionalization is generally considered a whole-program transformation and thus incompa...
We study practical applications of Reynolds's defunctionalization technique, which is a whole-progra...
There are many powerful techniques for automated termination analysis of term rewriting. However, up...
Abstract. Common subexpression elimination is a well-known compiler optimisation that saves time by ...
We present the left inverse of Reynolds's defunctionalization and we show its relevance to programmi...
. The paper shows how term rewriting techniques can be used to automatically transform first-order f...
Defunctionalization was introduced by John Reynolds in his 1972article Definitional Interpreters for...
Abstract: This paper describes an efficient interpreter for lazy functional languages like Haskell a...
In functional languages intermediate data structures are often used as glue to connect separate part...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...
In 1972, Reynolds outlined a general method for eliminating functional arguments known as defunction...
AbstractWe present the left inverse of Reynolds’ defunctionalization and we show its relevance to pr...
Defunctionalization is generally considered a whole-program transformation and thus incompatible wit...
There are many powerful techniques for automated termination analysis of term rewriting. However, up...
Abstract. Defunctionalization is generally considered a whole-program transfor-mation and thus incom...
Abstract Defunctionalization is generally considered a whole-program transformation and thus incompa...
We study practical applications of Reynolds's defunctionalization technique, which is a whole-progra...
There are many powerful techniques for automated termination analysis of term rewriting. However, up...
Abstract. Common subexpression elimination is a well-known compiler optimisation that saves time by ...
We present the left inverse of Reynolds's defunctionalization and we show its relevance to programmi...
. The paper shows how term rewriting techniques can be used to automatically transform first-order f...
Defunctionalization was introduced by John Reynolds in his 1972article Definitional Interpreters for...
Abstract: This paper describes an efficient interpreter for lazy functional languages like Haskell a...
In functional languages intermediate data structures are often used as glue to connect separate part...