Efficient differentiable programming in a functional array-processing language

A Shaikhha, A Fitzgibbon, D Vytiniotis… - Proceedings of the …, 2019 - dl.acm.org
We present a system for the automatic differentiation (AD) of a higher-order functional array-
processing language. The core functional language underlying this system simultaneously …

Lightweight multi-language syntax transformation with parser parser combinators

R Van Tonder, C Le Goues - Proceedings of the 40th ACM SIGPLAN …, 2019 - dl.acm.org
Automatically transforming programs is hard, yet critical for automated program refactoring,
rewriting, and repair. Multi-language syntax transformation is especially hard due to …

Unifying analytic and statically-typed quasiquotes

L Parreaux, A Voizard, A Shaikhha… - Proceedings of the ACM on …, 2017 - dl.acm.org
Metaprograms are programs that manipulate (generate, analyze and evaluate) other
programs. These tasks are greatly facilitated by quasiquotation, a technique to construct and …

A practical unification of multi-stage programming and macros

N Stucki, A Biboudis, M Odersky - Proceedings of the 17th ACM …, 2018 - dl.acm.org
Program generation is indispensable. We propose a novel unification of two existing
metaprogramming techniques: multi-stage programming and hygienic generative macros …

Representations and optimizations for embedded parallel dataflow languages

A Alexandrov, G Krastev, V Markl - ACM Transactions on Database …, 2019 - dl.acm.org
Parallel dataflow engines such as Apache Hadoop, Apache Spark, and Apache Flink are an
established alternative to relational databases for modern data analysis applications. A …

Deep fusion for efficient nested recursive computations

A Shaikhha - Proceedings of the 21st ACM SIGPLAN International …, 2022 - dl.acm.org
One of the performance bottlenecks of nested recursive computations is the intermediate
collections created at different levels of recursion. The existing techniques such as vertical …

Finally, a polymorphic linear algebra language (pearl)

A Shaikhha, L Parreaux - lipics, 2019 - ora.ox.ac.uk
Many different data analytics tasks boil down to linear algebra primitives. In practice, for
each different type of workload, data scientists use a particular specialised library. In this …

Multi-stage programming with generative and analytical macros

N Stucki, JI Brachthäuser, M Odersky - Proceedings of the 20th ACM …, 2021 - dl.acm.org
In metaprogramming, code generation and code analysis are complementary. Traditionally,
principled metaprogramming extensions for programming languages, like MetaML and BER …

Squid: Type-safe, hygienic, and reusable quasiquotes

L Parreaux, A Shaikhha, CE Koch - Proceedings of the 8th ACM …, 2017 - dl.acm.org
Quasiquotes have been shown to greatly simplify the task of metaprogramming. This is in
part because they hide the data structures of the intermediate representation (IR), instead …

Restaging Domain-Specific Languages: A Flexible Design Pattern for Rapid Development of Optimizing Compilers

A Shaikhha - Proceedings of the 23rd ACM SIGPLAN International …, 2024 - dl.acm.org
This paper addresses the complexity of developing optimizing compilers by proposing a
novel design pattern named Restage. The Restage interface reduces boilerplate code in …