A survey of metaprogramming languages

Y Lilis, A Savidis - ACM Computing Surveys (CSUR), 2019 - dl.acm.org
Metaprogramming is the process of writing computer programs that treat programs as data,
enabling them to analyze or transform existing programs or generate new ones. While the …

Staging with class: a specification for typed template Haskell

N **e, M Pickering, A Löh, N Wu, J Yallop… - Proceedings of the ACM …, 2022 - dl.acm.org
Multi-stage programming using typed code quotation is an established technique for writing
optimizing code generators with strong type-safety guarantees. Unfortunately, quotation in …

Type systems as macros

S Chang, A Knauth, B Greenman - Proceedings of the 44th ACM …, 2017 - dl.acm.org
We present Turnstile, a metalanguage for creating typed embedded languages. To
implement the type system, programmers write type checking rules resembling traditional …

An ML-style module system for cross-stage type abstraction in multi-stage programming

T Suwa, A Igarashi - International Symposium on Functional and Logic …, 2024 - Springer
We propose MetaFM, a novel ML-style module system that enables users to decompose
multi-stage programs (ie, programs written in a typed multi-stage programming language) …

Quoted staged rewriting: a practical approach to library-defined optimizations

L Parreaux, A Shaikhha, CE Koch - Proceedings of the 16th ACM …, 2017 - dl.acm.org
Staging has proved a successful technique for programmatically removing code
abstractions, thereby allowing for faster program execution while retaining a high-level …

Partially-static data as free extension of algebras

J Yallop, T Von Glehn, O Kammar - Proceedings of the ACM on …, 2018 - dl.acm.org
Partially-static data structures are a well-known technique for improving binding times.
However, they are often defined in an ad-hoc manner, without a unifying framework to …

Module generation without regret

Y Sato, Y Kameyama, T Watanabe - Proceedings of the 2020 ACM …, 2020 - dl.acm.org
Modules are an indispensable mechanism for providing abstraction to programming
languages. To reduce the abstraction overhead in the usage of modules, Watanabe et al …

Tierless web programming in the large

G Radanne, J Vouillon - Companion Proceedings of the The Web …, 2018 - dl.acm.org
Tierless Web programming languages allow combining client-side and server-side
programming in a single program. This allows defining expressions with both client and …

Staging generic programming

J Yallop - Proceedings of the 2016 ACM SIGPLAN Workshop on …, 2016 - dl.acm.org
Generic programming libraries such as Scrap Your Boilerplate eliminate the need to write
repetitive code, but typically introduce significant performance overheads. This leaves …

Tierless Web programming in ML

G Radanne - 2017 - hal.science
Eliom is a dialect of OCaml for Web programming in which server and client pieces of code
can be mixed in the same file using syntactic annotations. This allows to build a whole …