Hygienic macro systems, such as Scheme's, automatically rename variables to prevent unintentional variable capture-in short, they "just work." Yet hygiene has never been formally presented as a specification rather than an algorithm. According to folklore, the definition of hygienic macro expansion hinges on the preservation of alpha-equivalence. But the only known notion of alpha-equivalence for programs with macros depends on the results of macro expansion! We break this circularity by introducing explicit binding specifications into the syntax of macro definitions, permitting a definition of alpha-equivalence independent of expansion. We define a semantics for a first-order subset of Scheme-like macros and prove hygiene as a consequence of confluence. © 2008 Springer-Verlag Berlin Heidelberg.
CITATION STYLE
Herman, D., & Wand, M. (2008). A theory of hygienic macros. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 4960 LNCS, pp. 48–62). https://doi.org/10.1007/978-3-540-78739-6_4
Mendeley helps you to discover research relevant for your work.