Programming with models: writing statistical algorithms for general model structures with NIMBLE

P de Valpine, D Turek, CJ Paciorek… - … of Computational and …, 2017 - Taylor & Francis
We describe NIMBLE, a system for programming statistical algorithms for general model
structures within R. NIMBLE is designed to meet three challenges: flexible model …

Decoupling algorithms from schedules for easy optimization of image processing pipelines

J Ragan-Kelley, A Adams, S Paris, M Levoy… - ACM Transactions on …, 2012 - dl.acm.org
Using existing programming tools, writing high-performance image processing code
requires sacrificing readability, portability, and modularity. We argue that this is a …

Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs

T Rompf, M Odersky - Proceedings of the ninth international conference …, 2010 - dl.acm.org
Software engineering demands generality and abstraction, performance demands
specialization and concretization. Generative programming can provide both, but the effort …

Graph IRS for impure higher-order languages: making aggressive optimizations affordable with precise effect dependencies

O Bračevac, G Wei, S Jia, S Abeysinghe… - Proceedings of the …, 2023 - dl.acm.org
Graph-based intermediate representations (IRs) are widely used for powerful compiler
optimizations, either interprocedurally in pure functional languages, or intraprocedurally in …

Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs

T Rompf, M Odersky - Communications of the ACM, 2012 - dl.acm.org
Good software engineering practice demands generalization and abstraction, whereas high
performance demands specialization and concretization. These goals are at odds, and …

Compiling parallel symbolic execution with continuations

G Wei, S Jia, R Gao, H Deng, S Tan… - 2023 IEEE/ACM 45th …, 2023 - ieeexplore.ieee.org
Symbolic execution is a powerful program analysis and testing technique. Symbolic
execution engines are usually implemented as interpreters, and the induced interpretation …

Polymorphic embedding of DSLs

C Hofer, K Ostermann, T Rendel, A Moors - Proceedings of the 7th …, 2008 - dl.acm.org
The influential pure embedding methodology of embedding domain-specific languages
(DSLs) as libraries into a general-purpose host language forces the DSL designer to commit …

Language virtualization for heterogeneous parallel computing

H Chafi, Z DeVito, A Moors, T Rompf, AK Sujeeth… - ACM sigplan …, 2010 - dl.acm.org
As heterogeneous parallel systems become dominant, application developers are being
forced to turn to an incompatiblemix of low level programming models (eg OpenMP, MPI …

Nikola: embedding compiled GPU functions in Haskell

G Mainland, G Morrisett - Proceedings of the third ACM Haskell …, 2010 - dl.acm.org
We describe Nikola, a first-order language of array computations embedded in Haskell that
compiles to GPUs via CUDA using a new set of type-directed techniques to support re …

Feldspar: A domain specific language for digital signal processing algorithms

E Axelsson, K Claessen, G Dévai… - Eighth ACM/IEEE …, 2010 - ieeexplore.ieee.org
A new language, Feldspar, is presented, enabling high-level and platform-independent
description of digital signal processing (DSP) algorithms. Feldspar is a pure functional …