See this document in CiteSeerX!

How to Write Seemingly Unhygienic and Referentially Opaque Macros with Syntax-rules  (Make Corrections)  
Oleg Kiselyov



  Home/Search   Context   Related

 
View or download:
okmij.org/ftp/papers...DirtyMacros.pdf
Cached:  PS.gz  PS  PDF   Image  Update  Help

From:  readscheme.org/whats_new (more)
(Enter author homepages)

Rate this article: (best)
  Comment on this article  
(Enter summary)

Abstract: This paper details how folklore notions of hygiene and referential transparency of R5RS macros are defeated by a systematic attack. We demonstrate syntax-rules that seem to capture user identiers and allow their own identiers to be captured by the closest lexical bindings. In other words, we have written R5RS macros that accomplish what commonly believed to be impossible. We build on the the fundamental technique by Petrofsky of extracting variables from arguments of a macro. The present... (Update)

Active bibliography (related documents):   More   All
0.8:   Macros that Compose: Systematic Macro - Programming Oleg Kiselyov   (Correct)
0.3:   Macros and Preprocessing in Haskell - Wansbrough (1999)   (Correct)
0.1:   Linguistic Reuse - Krishnamurthi (2001)   (Correct)

Similar documents based on text:   More   All
0.6:   Subclassing errors, OOP, and practically checkable.. - Software Engineering..   (Correct)
0.6:   SXML Specification - Kiselyov (2001)   (Correct)
0.6:   A Methodology for Generating Verified Combinatorial Circuits - Kiselyov, Swadi, Taha (2004)   (Correct)

BibTeX entry:   (Update)

@misc{ kiselyov-how,
  author = "Oleg Kiselyov",
  title = "How to Write Seemingly Unhygienic and Referentially Opaque Macros with
    Syntax-rules",
  url = "citeseer.ist.psu.edu/550415.html" }
Citations (may not include all citations):
115   Revised5 Report on the Algorithmic Language Scheme - Kelsey, Clinger et al. - 1998
68   Hygienic macro expansion (context) - Jr, Friedman et al. - 1986
45   Macros that work (context) - Clinger, Rees - 1991
34   Lisp and Symbolic Computation (context) - Dybvig, Hieb et al. - 1993
26   Syntactic closures - Bawden, Rees - 1988
17   Macro-byexample: Deriving syntactic transformations from the.. (context) - Kohlbecker, Wand - 1987
3   Macros in Scheme - Clinger - 1991
2   Writing macros in continuation-passing style - Hilsdale, Friedman - 2000
1   Implementing lexically scoped macros (context) - Rees - 1993
1   How to write seemingly unhygienic macros using syntax-rules (context) - Petrofsky - 2001
1   was Re: choice for embedding Scheme implementation (context) - Petrofsky, Holey - 2002
1   Taha: Macros as Multi-Stage Computations: Type-Safe (context) - Ganz, Sabry - 2001
1   Re: Widespread bug (context) - Petrofsky, Kiselyov - 2001

Documents on the same site (http://library.readscheme.org/whats_new.html):   More
The Structure and Interpretation of the Computer.. - Felleisen.. (2002)   (Correct)
Processes vs. User-Level Threads in SCSH - Gasbichler, Sperber   (Correct)
XML, XPath, XSLT implementations as SXML, SXPath, and SXSLT - Kiselyov, Lisovsky   (Correct)

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC