A survey of metaprogramming languages
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 …
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 …
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) …
difficult. A lack of types in typical scripting languages means that programmers must (re) …
Languages as libraries
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 …
semantics of a host language. While C's string-based macros empower programmers to …
SugarJ: Library-based syntactic language extensibility
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 …
bitter taste, because they cannot be used with the same ease as the main extension …
A programmable programming language
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 …
2018 | VOL. 61 | NO. 3 IN THE IDEAL world, software developers would analyze each problem …
Terra: a multi-stage language for high-performance computing
High-performance computing applications, such as auto-tuners and domain-specific
languages, rely on generative programming techniques to achieve high performance and …
languages, rely on generative programming techniques to achieve high performance and …
The racket manifesto
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 …
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
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 …
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 …
hierarchical structures, nests of objects, trees, forests, graphs, and so on. Linear text does …