|Title||HPGP: High Performance Generic Programming for Computational Mathematics by Compile-Time Instantiation of Higher Order Functors|
|Author(s)|| Hoon Hong, Wolfgang Schreiner|
|Type||Technical Report, Misc|
|Abstract||A functor is a parameterized program module i.e. a function that|
takes modules as arguments and returns a module as its result. A higher-order functor deals in the same way with modules whose components are functors themselves. We propose to develop a generic compilation system for the construction of high-performance mathematical software libraries for scientific and technical application domains. This system has the following features:
1. It is based on a powerful higher-order functor language.
2. It is an open library that can be retargeted to any core language.
3. It is able to resolve functor instantiation at compile-time.
The functor language is expressive enough to build all types and type
constructors without referring to the core language (thus maximizing flexibility) and to express all interactions between modules by parameterization (thus maximizing reusability). By compile-time instantiation, genericity does not cause any execution overhead; by automatically sharing instantiated code among all users, an expolosion of library sizes is avoided.
|Keywords||genericity, modules, functors, mathematical libraries, software reuse|
|Address||Johannes Kepler University, Linz, Austria|
Johannes Kepler University Linz|