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 …

Contracts for higher-order functions

RB Findler, M Felleisen - Proceedings of the seventh ACM SIGPLAN …, 2002 - dl.acm.org
Assertions play an important role in the construction of robust software. Their use in
programming languages dates back to the 1970s. Eiffel, an object-oriented programming …

The design and implementation of Typed Scheme

S Tobin-Hochstadt, M Felleisen - ACM SIGPLAN Notices, 2008 - dl.acm.org
When scripts in untyped languages grow into large programs, maintaining them becomes
difficult. A lack of types in typical scripting languages means that programmers must (re) …

Languages as libraries

S Tobin-Hochstadt, V St-Amour, R Culpepper… - Proceedings of the …, 2011 - dl.acm.org
Programming language design benefits from constructs for extending the syntax and
semantics of a host language. While C's string-based macros empower programmers to …

SugarJ: Library-based syntactic language extensibility

S Erdweg, T Rendel, C Kästner… - Proceedings of the 2011 …, 2011 - dl.acm.org
Existing approaches to extend a programming language with syntactic sugar often leave a
bitter taste, because they cannot be used with the same ease as the main extension …

A programmable programming language

M Felleisen, RB Findler, M Flatt… - Communications of the …, 2018 - dl.acm.org
A programmable programming language Page 1 62 COMMUNICATIONS OF THE ACM | MARCH
2018 | VOL. 61 | NO. 3 IN THE IDEAL world, software developers would analyze each problem …

Terra: a multi-stage language for high-performance computing

Z DeVito, J Hegarty, A Aiken, P Hanrahan… - Proceedings of the 34th …, 2013 - dl.acm.org
High-performance computing applications, such as auto-tuners and domain-specific
languages, rely on generative programming techniques to achieve high performance and …

The racket manifesto

M Felleisen, RB Findler, M Flatt… - 1st Summit on …, 2015 - drops.dagstuhl.de
The creation of a programming language calls for guiding principles that point the
developers to goals. This article spells out the three basic principles behind the 20-year …

The love/hate relationship with the C preprocessor: An interview study

F Medeiros, C Kästner, M Ribeiro… - … Conference on Object …, 2015 - drops.dagstuhl.de
The C preprocessor has received strong criticism in academia, among others regarding
separation of concerns, error proneness, and code obfuscation, but is widely used in …

Adding interactive visual syntax to textual code

L Andersen, M Ballantyne, M Felleisen - Proceedings of the ACM on …, 2020 - dl.acm.org
Many programming problems call for turning geometrical thoughts into code: tables,
hierarchical structures, nests of objects, trees, forests, graphs, and so on. Linear text does …