Defunctionalization is generally considered a whole-program transformation and thus incompatible with separate compilation. In this paper, we formalize a modular variant of defunctionalization which can support separate compilation. Our technique allows modules in a Haskell-like language to be separately defunctionalized and compiled, then linked together to generate an executable program. We provide a prototype implementation of our modular defunctionalization technique and we discuss the experiences of its application in a compiler from a large subset of Haskell to low-level C code, based on the intensional transformation
AbstractWe present the left inverse of Reynolds’ defunctionalization and we show its relevance to pr...
Separate compilation can bring several benefits to a module system such as allowing modules to be pr...
PosterNational audienceModular programming is a practical solution for separation of concerns but th...
Abstract Defunctionalization is generally considered a whole-program transformation and thus incompa...
Abstract. Defunctionalization is generally considered a whole-program transfor-mation and thus incom...
We describe an automated transformation which takes a higher-order program, and a produces an equiva...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...
Choreographic programming is a paradigm for concurrent and distributed software, whereby description...
The introduction of new features to a programming language often requires that its compiler goes to ...
Defunctionalization was introduced by John Reynolds in his 1972article Definitional Interpreters for...
Abstract. Common subexpression elimination is a well-known compiler optimisation that saves time by ...
This is a proposal for an extension to the Standard ML programming language to support separate comp...
We study practical applications of Reynolds's defunctionalization technique, which is a whole-progra...
This is a proposal for an extension to the Standard ML programming language to support separate comp...
AbstractWe present the left inverse of Reynolds’ defunctionalization and we show its relevance to pr...
Separate compilation can bring several benefits to a module system such as allowing modules to be pr...
PosterNational audienceModular programming is a practical solution for separation of concerns but th...
Abstract Defunctionalization is generally considered a whole-program transformation and thus incompa...
Abstract. Defunctionalization is generally considered a whole-program transfor-mation and thus incom...
We describe an automated transformation which takes a higher-order program, and a produces an equiva...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...
Choreographic programming is a paradigm for concurrent and distributed software, whereby description...
The introduction of new features to a programming language often requires that its compiler goes to ...
Defunctionalization was introduced by John Reynolds in his 1972article Definitional Interpreters for...
Abstract. Common subexpression elimination is a well-known compiler optimisation that saves time by ...
This is a proposal for an extension to the Standard ML programming language to support separate comp...
We study practical applications of Reynolds's defunctionalization technique, which is a whole-progra...
This is a proposal for an extension to the Standard ML programming language to support separate comp...
AbstractWe present the left inverse of Reynolds’ defunctionalization and we show its relevance to pr...
Separate compilation can bring several benefits to a module system such as allowing modules to be pr...
PosterNational audienceModular programming is a practical solution for separation of concerns but th...