[PDF][PDF] Playing by the rules: rewriting as a practical optimisation technique in GHC
SP Jones, A Tolmach, T Hoare - Haskell workshop, 2001 - Citeseer
We describe a facility for improving optimization of Haskell programs using rewrite rules.
Library authors can use rules to express domain-specific optimizations that the compiler …
Library authors can use rules to express domain-specific optimizations that the compiler …
Getting to the point: index sets and parallelism-preserving autodiff for pointful array programming
We present a novel programming language design that attempts to combine the clarity and
safety of high-level functional languages with the efficiency and parallelism of low-level …
safety of high-level functional languages with the efficiency and parallelism of low-level …
Data Parallel Haskell: a status report
MMT Chakravarty, R Leshchinskiy… - Proceedings of the …, 2007 - dl.acm.org
We describe the design and current status of our effort to implement the programming model
of nested data parallelism into the Glasgow Haskell Compiler. We extended the original …
of nested data parallelism into the Glasgow Haskell Compiler. We extended the original …
Optimising purely functional GPU programs
Purely functional, embedded array programs are a good match for SIMD hardware, such as
GPUs. However, the naive compilation of such programs quickly leads to both code …
GPUs. However, the naive compilation of such programs quickly leads to both code …
A survey of strategies in rule-based program transformation systems
E Visser - Journal of symbolic computation, 2005 - Elsevier
Program transformation is the mechanical manipulation of a program in order to improve it
relative to some cost function and is understood broadly as the domain of computation …
relative to some cost function and is understood broadly as the domain of computation …
Compiling to categories
C Elliott - Proceedings of the ACM on Programming Languages, 2017 - dl.acm.org
It is well-known that the simply typed lambda-calculus is modeled by any cartesian closed
category (CCC). This correspondence suggests giving typed functional programs a variety of …
category (CCC). This correspondence suggests giving typed functional programs a variety of …
Understanding and exploiting optimal function inlining
Inlining is a core transformation in optimizing compilers. It replaces a function call (call site)
with the body of the called function (callee). It helps reduce function call overhead and …
with the body of the called function (callee). It helps reduce function call overhead and …
Flask: Staged functional programming for sensor networks
Severely resource-constrained devices present a confounding challenge to the functional
programmer: we are used to having powerful abstraction facilities at our fingertips, but how …
programmer: we are used to having powerful abstraction facilities at our fingertips, but how …
[LIBRO][B] Design concepts in programming languages
F Turbak, D Gifford - 2008 - books.google.com
Key ideas in programming language design and implementation explained using a simple
and concise framework; a comprehensive introduction suitable for use as a textbook or a …
and concise framework; a comprehensive introduction suitable for use as a textbook or a …
Program transformation with scoped dynamic rewrite rules
The applicability of term rewriting to program transformation is limited by the lack of control
over rule application and by the context-free nature of rewrite rules. The first problem is …
over rule application and by the context-free nature of rewrite rules. The first problem is …