[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 …

Getting to the point: index sets and parallelism-preserving autodiff for pointful array programming

A Paszke, DD Johnson, D Duvenaud… - Proceedings of the …, 2021 - dl.acm.org
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 …

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 …

Optimising purely functional GPU programs

TL McDonell, MMT Chakravarty, G Keller… - ACM SIGPLAN …, 2013 - dl.acm.org
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 …

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 …

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 …

Understanding and exploiting optimal function inlining

T Theodoridis, T Grosser, Z Su - Proceedings of the 27th ACM …, 2022 - dl.acm.org
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 …

Flask: Staged functional programming for sensor networks

G Mainland, G Morrisett, M Welsh - Proceedings of the 13th ACM …, 2008 - dl.acm.org
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 …

[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 …

Program transformation with scoped dynamic rewrite rules

M Bravenboer, A van Dam, K Olmos… - Fundamenta …, 2006 - content.iospress.com
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 …