Abstract
Our new macro expander for Racket builds on a novel approach to hygiene. Instead of basing macro expansion on variable renamings that are mediated by expansion history, our new expander tracks binding through a set of scopes that an identifier acquires from both binding forms and macro expansions. The resulting model of macro expansion is simpler and more uniform than one based on renaming, and it is sufficiently compatible with Racket's old expander to be practical.
Supplemental Material
Available for Download
Complete and executable versions of the models presented in section 6.
- Michael D. Adams. Towards the Essence of Hygiene. In Proc. Principles of Programming Languages, 2015. Google Scholar
Digital Library
- Alan Bawden and Jonathan Rees. Syntactic Closures. In Proc. Lisp and Functional Programming, 1988. Google Scholar
Digital Library
- William Clinger and Jonathan Rees. Macros that Work. In Proc. Principles of Programming Languages, 1991. Google Scholar
Digital Library
- William D. Clinger. Hygienic Macros Through Explicit Renaming. Lisp Pointers 4(4), 1991. Google Scholar
Digital Library
- Ryan Culpepper and Matthias Felleisen. Debugging Hygienic Macros. Science of Computer Programming 75(7), 2010. Google Scholar
Digital Library
- Tim Disney et al. Sweet.js. 2015. http://sweetjs.org/ Tim Disney, Nathan Faubion, David Herman, and Cormac Flanagan. Sweeten your JavaScript: Hygienic Macros for ES5. In Proc. Symposium on Dynamic Languages, 2014. Google Scholar
Digital Library
- R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic Abstraction in Scheme. Lisp and Symbolic Computation 5(4), 1993. Google Scholar
Digital Library
- Matthew Flatt. Compilable and Composable Macros, You Want it When? In Proc. International Conference on Functional Programming, 2002. Google Scholar
Digital Library
- Matthew Flatt. Submodules in Racket: You Want it When, Again? In Proc. Generative Programming: Concepts and Experiences, 2013. Google Scholar
Digital Library
- Matthew Flatt, Ryan Culpepper, Robert Bruce Findler, and David Darais. Macros that Work Together: Compile-Time Bindings, Partial Expansion, and Definition Contexts. Journal of Functional Programming 22(2), 2012. Google Scholar
Digital Library
- David Herman. Dissertation. PhD dissertation, Northeastern University, 2008.Google Scholar
- Eugene Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic Macro Expansion. In Proc. Lisp and Functional Programming, 1986. Google Scholar
Digital Library
- Eugene E. Kohlbecker and Mitchell Wand. Macro-by-Example: Deriving Syntactic Transformations from their Specifications. In Proc. Principles of Programming Languages, 1987. Google Scholar
Digital Library
- Pierre Neron, Andrew P. Tolmach, Eelco Visser, and Guido Wachsmuth. A Theory of Name Resolution. In Proc. European Symposium on Programming, 2015.Google Scholar
- Frank Pfenning and Conal Elliott. Higher-order Abstract Syntax. In Proc. Programming Language Design and Implementation, 1988. Google Scholar
Digital Library
- Andrew M. Pitts. Nominal Logic, a First Order Theory of Names and Binding. Information and Computation 186(2), 2003. Google Scholar
Digital Library
- Andrew M. Pitts. Nominal Sets: Names and Symmetry in Computer Science. Cambridge University Press, 2013. Google Scholar
Digital Library
- Paul Stansifer and Mitch Wand. Romeo: a System for More Flexible Binding-Safe Programming. In Proc. International Conference on Functional Programming, 2014. Google Scholar
Digital Library
Index Terms
Binding as sets of scopes
Recommendations
Macros for domain-specific languages
Macros provide a powerful means of extending languages. They have proven useful in both general-purpose and domain-specific programming contexts. This paper presents an architecture for implementing macro-extensible DSLs on top of macro-extensible host ...
Binding as sets of scopes
POPL '16: Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesOur new macro expander for Racket builds on a novel approach to hygiene. Instead of basing macro expansion on variable renamings that are mediated by expansion history, our new expander tracks binding through a set of scopes that an identifier acquires ...
Molecular mechanism by which residues at position 481 and 546 of measles virus hemagglutinin protein define CD46 receptor binding using a molecular docking approach
Graphical abstractDisplay Omitted
Highlights- Docking studies were implemented to reveal the molecular mechanism of MeV-H: CD46 binding.
AbstractThe hemagglutinin (H) protein of measles viruses (MeV) mediates binding to the cellular receptors, CD46,human signaling lymphocyte activation molecule and nectin-4. Vaccine strains primarily contain H-proteins possessing MeV-H: Y481 ...






Comments