Static Parallelization of Functional Programs: Elimination of Higher-Order Functions & Optimized Inlining
Christoph A. Herrmann6
, Christian Lengauer6
, Jan Laitenberger6 and Christian Schaller6
| (6) |
Fakultät für Mathematik und Informatik, Universität Passau, Germany |
Abstract
Functional programs have long been recognized as attractive subjects of an implicit static parallelization because functional
programming excludes artificial dependences, which would restrict parallelism. One central concept which makes functional
programming a powerful paradigm is the higher-order function, which can have functions appearing in its arguments or result.
We present an automatic method of eliminating higher-order functions, which is based on earlier work by Bell, Bellegarde and
Hook [2]. The number of auxiliary functions added in the process is subsequently minimized by inlining transformations.
Keywords functional programming - Haskell - higher-order function - inlining - parallelization - skeletons
References secured to subscribers.