Abstract. Defunctionalization is generally considered a whole-program transfor-mation and thus incompatible with separate compilation. In this paper, we formal-ize a modular variant of defunctionalization which can support separate compilation for a functional programming language with parametric polymorphism. Our tech-nique 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 compiling a large subset of Haskell to low-level C code, based on the intensional transformation
In understanding complex algorithms, the notions of encapsulation and modularization have played a ...
In functional languages intermediate data structures are often used as glue to connect separate part...
Structural polymorphism is a generic programming technique known within the functional programming c...
Abstract Defunctionalization is generally considered a whole-program transformation and thus incompa...
Defunctionalization is generally considered a whole-program transformation and thus incompatible wit...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...
We describe an automated transformation which takes a higher-order program, and a produces an equiva...
In 1972, Reynolds outlined a general method for eliminating functional arguments known as defunction...
PosterNational audienceModular programming is a practical solution for separation of concerns but th...
In this paper, we describe two techniques for the efficient, modularized implementation of a large c...
We propose a framework for specification of programming language semantics, abstract and concrete sy...
Abstract—When one chooses a main axis of structural de-compostion for a software, such as function- ...
Abstract. Common subexpression elimination is a well-known compiler optimisation that saves time by ...
We propose a new extension to the purely functional programming language Haskell that supports compi...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
In understanding complex algorithms, the notions of encapsulation and modularization have played a ...
In functional languages intermediate data structures are often used as glue to connect separate part...
Structural polymorphism is a generic programming technique known within the functional programming c...
Abstract Defunctionalization is generally considered a whole-program transformation and thus incompa...
Defunctionalization is generally considered a whole-program transformation and thus incompatible wit...
Defunctionalization is a program transformation that aims to turn a higher-order functional program ...
We describe an automated transformation which takes a higher-order program, and a produces an equiva...
In 1972, Reynolds outlined a general method for eliminating functional arguments known as defunction...
PosterNational audienceModular programming is a practical solution for separation of concerns but th...
In this paper, we describe two techniques for the efficient, modularized implementation of a large c...
We propose a framework for specification of programming language semantics, abstract and concrete sy...
Abstract—When one chooses a main axis of structural de-compostion for a software, such as function- ...
Abstract. Common subexpression elimination is a well-known compiler optimisation that saves time by ...
We propose a new extension to the purely functional programming language Haskell that supports compi...
Compilers are traditionally factorised into a number of separate phases, such as parsing, type check...
In understanding complex algorithms, the notions of encapsulation and modularization have played a ...
In functional languages intermediate data structures are often used as glue to connect separate part...
Structural polymorphism is a generic programming technique known within the functional programming c...