Generic functions are defined by induction on the structural representation of types. As a consequence, by defining just a single generic operation, one acquires this operation over any particular type. An instance on a specific type is generated by interpretation of the type's structure. A direct translation leads to extremely inefficient code that involves many conversions between types and their structural representations. In this paper we present an optimization technique based on compile-time symbolic evaluation. We prove that the optimization removes the overhead of the generated code for a considerable class of generic functions. The proof uses typing to identify intermediate data structures that should be eliminated. In essence, the...
Modern compilers for ML-like polymorphic languages have used explicit run-time type passing to suppo...
Introduction Contemporary mainstream programming languages offer mechanisms for expressing domain-sp...
A generic function is similar to an overloaded operator, but provides a way to select an appropriate...
Abstract. Generic functions are defined by induction on the structural representation of types. As a...
Contains fulltext : 60606.pdf (author's version ) (Open Access)Generic functions a...
Generic programming is accepted by the functional programming community as a valuable tool for progr...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
We present an approach to the generation of generic functions from user-provided specifications. Th...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
Compilation of polymorphic code through type erasure gives compact code but performance on primitive...
Generic programming using C++ results in code that is efficient but inflexible. The inflexibility ar...
AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of...
AbstractGeneric programming with C++ templates results in efficient but inflexible code: efficient, ...
Dependently typed programming languages allow the type system to express arbitrary propositions of i...
Compilation of polymorphic code through type erasure gives compact code but performance on primitive...
Modern compilers for ML-like polymorphic languages have used explicit run-time type passing to suppo...
Introduction Contemporary mainstream programming languages offer mechanisms for expressing domain-sp...
A generic function is similar to an overloaded operator, but provides a way to select an appropriate...
Abstract. Generic functions are defined by induction on the structural representation of types. As a...
Contains fulltext : 60606.pdf (author's version ) (Open Access)Generic functions a...
Generic programming is accepted by the functional programming community as a valuable tool for progr...
The Generic Haskell programming language allows functions to be defined by induction on the structur...
We present an approach to the generation of generic functions from user-provided specifications. Th...
Defining functions over large, possibly recursive, data structures usually involves a lot of boilerp...
Compilation of polymorphic code through type erasure gives compact code but performance on primitive...
Generic programming using C++ results in code that is efficient but inflexible. The inflexibility ar...
AbstractDefining functions over large, possibly recursive, data structures usually involves a lot of...
AbstractGeneric programming with C++ templates results in efficient but inflexible code: efficient, ...
Dependently typed programming languages allow the type system to express arbitrary propositions of i...
Compilation of polymorphic code through type erasure gives compact code but performance on primitive...
Modern compilers for ML-like polymorphic languages have used explicit run-time type passing to suppo...
Introduction Contemporary mainstream programming languages offer mechanisms for expressing domain-sp...
A generic function is similar to an overloaded operator, but provides a way to select an appropriate...