Using existing programming tools, writing high-performance image processing code requires sacrificing readability, portability, and modularity. We argue that this is a …
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-based intermediate representations (IRs) are widely used for powerful compiler optimizations, either interprocedurally in pure functional languages, or intraprocedurally in …
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 …
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 …
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 …
As heterogeneous parallel systems become dominant, application developers are being forced to turn to an incompatiblemix of low level programming models (eg OpenMP, MPI …
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 …
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 …