Unifying analytic and statically-typed quasiquotes
Metaprograms are programs that manipulate (generate, analyze and evaluate) other
programs. These tasks are greatly facilitated by quasiquotation, a technique to construct and …
programs. These tasks are greatly facilitated by quasiquotation, a technique to construct and …
Generalizing Bulk-Synchronous Parallel Processing for Data Science: From Data to Threads and Agent-Based Simulations
We generalize the bulk-synchronous parallel (BSP) processing model to make it better
support agent-based simulations. Such simulations frequently exhibit hierarchical structure …
support agent-based simulations. Such simulations frequently exhibit hierarchical structure …
Quoted staged rewriting: a practical approach to library-defined optimizations
Staging has proved a successful technique for programmatically removing code
abstractions, thereby allowing for faster program execution while retaining a high-level …
abstractions, thereby allowing for faster program execution while retaining a high-level …
Finally, a polymorphic linear algebra language (pearl)
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 …
each different type of workload, data scientists use a particular specialised library. In this …
Multi-stage programming with generative and analytical macros
In metaprogramming, code generation and code analysis are complementary. Traditionally,
principled metaprogramming extensions for programming languages, like MetaML and BER …
principled metaprogramming extensions for programming languages, like MetaML and BER …
Specializing Data Access in a Distributed File System (Generative Pearl)
We propose DDLoader, a system that embeds information about data partitioning and data
distribution in distributed file systems using a metaprogramming framework. We demonstrate …
distribution in distributed file systems using a metaprogramming framework. We demonstrate …
Seamless Scope-Safe Metaprogramming through Polymorphic Subtype Inference (Short Paper)
C Gao, L Parreaux - Proceedings of the 23rd ACM SIGPLAN …, 2024 - dl.acm.org
Practical metaprogramming applications often involve manipulating open code fragments,
which is easy to get wrong in the absence of static verification that all variable occurrences …
which is easy to get wrong in the absence of static verification that all variable occurrences …
Reflection of terms in attribute grammars: Design and applications
L Kramer, T Kaminski, E Van Wyk - Journal of Computer Languages, 2021 - Elsevier
This paper shows how reflection on undecorated syntax trees (terms) used in attribute
grammars can significantly reduce the amount of boiler-plate specifications that must be …
grammars can significantly reduce the amount of boiler-plate specifications that must be …
Polymorphic Metaprogramming with Memory Management--An Adjoint Analysis of Metaprogramming
We describe Elevator, a unifying polymorphic foundation for metaprogramming with memory
management based on adjoint modalities. In this setting, we distinguish between multiple …
management based on adjoint modalities. In this setting, we distinguish between multiple …
Type-safe generation of modules in applicative and generative styles
Y Sato, Y Kameyama - Proceedings of the 20th ACM SIGPLAN …, 2021 - dl.acm.org
The MetaML approach for multi-stage programming provides the static guarantee of type
safety and scope safety for generated code, regardless of the values of static parameters …
safety and scope safety for generated code, regardless of the values of static parameters …