#13 - Sam Tobin-Hochstadt on Composable and Compilable Macros
Details
We're extremely thrilled to host Sam Tobin-Hochstadt, Assistant Professor in the School of Informatics and Computing at Indiana University, presenting Composable and Compilable Macros (https://www.cs.utah.edu/plt/publications/macromod.pdf) by Matthew Flatt (http://www.cs.utah.edu/~mflatt/) of the University of Utah.
Intro
"Composable and Compilable Macros" introduces the Racket module system, which addresses the following problem: When you have macros that run programs at compile-time, how does this interact with separate compilation and ahead-of-time compilation. The paper introduces "phases", which enable Racket to behave the same regardless of when and how you compile your program. It also introduces the idea of writing different modules in different languages, which is now used for systems like Typed Racket.
A few related papers:
- Syntactic Abstraction in Scheme (http://www.cs.indiana.edu/~dyb/pubs/LaSC-5-4-pp295-326.pdf), Dybvig Hieb & Bruggeman, Lisp andSymbolic Computation 1993
- Macros that Work Together (http://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf), Flatt, Findler, Culpepper, & Darais, JFP 2012- Submodules in Racket, Flatt GPCE 2013
- Implicit phasing for R6RS libraries (http://www.cs.indiana.edu/~dyb/pubs/implicit-phasing.pdf), Ghuloum & Dybvig, ICFP 2007
- Extending the scope of syntactic abstraction (http://www.cs.indiana.edu/~dyb/pubs/popl99.pdf), Waddell & Dybvig, POPL 1999
