A Theory of Hygienic Macros
The work
| Authors | David Herman; Mitchell Wand |
|---|---|
| Editors | |
| Type | incollection |
| Year | 2008 |
| Citekey | herman2008theory |
Where it appeared
| Published in | 17th European Symposium on Programming (ESOP) |
|---|---|
| Publisher | Springer |
| Series | Lecture Notes in Computer Science |
| Pages | 48--62 |
Identifiers
| DOI | 10.1007/978-3-540-78739-6_4 |
|---|---|
| OpenAlex | W1501205670 |
Access
| Landing page | https://doi.org/10.1007/978-3-540-78739-6_4 |
|---|
Abstract
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.
Cite it as
@incollection{herman2008theory,
title = {A Theory of Hygienic Macros},
author = {David Herman and Mitchell Wand},
year = {2008},
booktitle = {17th European Symposium on Programming (ESOP)},
publisher = {Springer},
series = {Lecture Notes in Computer Science},
pages = {48--62},
doi = {10.1007/978-3-540-78739-6_4},
}
This record lives at https://refs.drheap.org/herman2008theory/ and will keep doing so.