Proceedings of the 2012 Annual Workshop on Scheme and Functional Programming 2012
DOI: 10.1145/2661103.2661109
|View full text |Cite
|
Sign up to set email alerts
|

Hygienic quasiquotation in scheme

Abstract: Quasiquotation in Scheme is nearly ideal for implementing programs that generate other programs. These programs lack only the ability to generate fresh bound identifiers, as required to make such code-manipulating programs hygienic, but any Scheme programmer knows how to provide this ability using gensym.In this tutorial we investigate hygienic quasiquotation in Scheme and in languages influenced by Scheme. Stepping back from implementation issues, we first identify the source of the freshness condition in the… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
6
0

Year Published

2017
2017
2017
2017

Publication Types

Select...
2
1

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(6 citation statements)
references
References 16 publications
0
6
0
Order By: Relevance
“…The first pass α-renames lexical bindings introduced by the gexp in order to preserve lexical scope, as illustrated by Figure 4. The implementation is similar to MetaScheme [15] and to that described by Rhiger [13], with caveats discussed in Section 5. 3.…”
Section: Methodsmentioning
confidence: 99%
See 2 more Smart Citations
“…The first pass α-renames lexical bindings introduced by the gexp in order to preserve lexical scope, as illustrated by Figure 4. The implementation is similar to MetaScheme [15] and to that described by Rhiger [13], with caveats discussed in Section 5. 3.…”
Section: Methodsmentioning
confidence: 99%
“…G-expressions are "hygienic": they preserve lexical scope across stages [9,13,15]. Figure 4 illustrates two well-known properties of hygienic multi-stage programs: first, binding x in one stage (outside the gexp) is distinguished from binding x in another stage (inside the gexp); second, binding x introduced inside gen-body does not shadow binding x in the outer gexp thanks to the renaming of these variables in the residual program.…”
Section: G-expressionsmentioning
confidence: 99%
See 1 more Smart Citation
“…However, within a single phase it is still possible to observe unintended variable capture. Rhiger [2012a] proposed a finer-grained hygiene system for Scheme-like code quasiquotes, but it does not support pattern matching on code values. The idea of code quasiquotation was picked up in a statically-typed context by Taha and Sheard [2000] with MetaML (and subsequently MetaOCaml [Taha 2004]) to enable Multi-Stage Programming (MSP).…”
Section: Existing Quasiquotation Systemsmentioning
confidence: 99%
“…Therefore, Scheme and its successor Racket still provide support for (unhygienic) quasiquotes, which are viewed as a lower-level building tool. Hygienic Scheme quasiquotes have been proposed [Rhiger 2012], but in a version that does not support pattern matching. The idea of quasiquotation was picked up in a statically-typed context by MetaML [Taha and Sheard 2000] (and subsequently MetaOCaml [Taha 2004]) to enable Multi-Stage Programming (MSP).…”
Section: Type-safe and Hygienic Macros For Scalamentioning
confidence: 99%