Bibliography
Harold Abelson, Gerald Jay Sussman, and Julie Sussman. Structure and Interpretation of Computer Programs. MIT Press, 1985. |
Gregory H. Cooper and Shriram Krishnamurthi. Embedding dynamic dataflow in a call-by-value language. In ESOP, pp. 294–308, 2006. |
Ryan Culpepper and Matthias Felleisen. Fortifying macros. In ICFP, pp. 235–246, 2010. |
R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in Scheme. LispSC 5(4), pp. 295–326, 1992. |
Matthias Felleisen, Robert Bruce Findler, and Matthew Flatt. Semantics Engineering with PLT Redex. MIT Press, 2010. |
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. How to Design Programs. MIT Press, 2001. |
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. The structure and interpretation of the computer science curriculum. JFP 14(4), pp. 365–378, 2004. |
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. A functional I/O system. In ICFP, pp. 47–58, 2009. |
Robert Bruce Findler, John Clements, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Paul Steckler, and Matthias Felleisen. DrScheme: a programming environment for Scheme. JFP 12(2), pp. 159–182, 2002. |
Robert Bruce Findler and Matthias Felleisen. Contracts for higher-order functions. In ICFP, pp. 48–59, 2002. |
Robert Bruce Findler and Matthew Flatt. Slideshow: functional presentations. JFP 16(4-5), 2006. |
Matthew Flatt. Composable and compilable macros: you want it when? In ICFP, pp. 72–83, 2002. |
Matthew Flatt, Eli Barzilay, and Robert Bruce Findler. Scribble: closing the book on ad-hoc documentation tools. In ICFP, pp. 109–120, 2009. |
Matthew Flatt and Matthias Felleisen. Units: Cool modules for HOT languages. In ICFP, pp. 236–248, 1998. |
Matthew Flatt and Robert Bruce Findler. Kill-safe synchronization abstractions. In PLDI, pp. 47–58, 2004. |
Matthew Flatt, Robert Bruce Findler, and Matthias Felleisen. Scheme with classes, mixins, and traits. In APLAS, pp. 270–289, 2006. |
Matthew Flatt, Robert Bruce Findler, Shriram Krishnamurthi, and Matthias Felleisen. Programming languages as operating systems (or revenge of the son of the Lisp machine). In ICFP, pp. 138–147, 1999. |
Matthew Flatt, Shriram Krishnamurthi, and Matthias Felleisen. Classes and mixins. In POPL, pp. 171–183, 1998. |
Matthew Flatt and PLT. Reference: Racket. PLT Design Inc., PLT-TR-2010-1, 2010. http://racket-lang.org/tr1/ |
Martin Fowler. Domain-specific languages. Addison-Wesley, 2010. |
Paul Hudak. Domain-specific languages. In Handbook of Programming Languages. MacMillan. pp 39–60, 1998. |
Andrew W. Keep and Kent R. Dybvig. A nanopass framework for commercial compiler development. In ICFP, pp. 343–350, 2013. |
Eugene Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic macro expansion. In LFP, 1986. |
Eugene Kohlbecker and Mitchell Wand. Macro-by-example: deriving syntactic transformations from their specifications. In POPL, pp. 77–84, 1987. |
Shriram Krishnamurthi. Linguistic Reuse. PhD dissertation, Rice University, 2001. |
Shriram Krishnamurthi, Matthias Felleisen, and Bruce F. Duba. From macros to reusable generative programming. In GPCE, pp. 105–120, 1999. |
Kats C.L. Lennart and Eelco Visser. The Spoofax language workbench. In OOPSLA, pp. 444–463, 2010. |
Guillaume Marceau, Kathi Fisler, and Shriram Krishnamurthi. Measuring the effectiveness of error messages designed for novice programmers. In Technical Symposium on Computer Science Education, pp. 499–504, 2011. |
Jacob Matthews and Robert Bruce Findler. Operational semantics for multi-language programs. TOPLAS 31(3), pp. 12:1–12:44, 2009. |
Jacob Matthews, Robert Bruce Findler, Matthew Flatt, and Matthias Felleisen. A visual environment for developing context-sensitive term rewriting systems. In Rewriting Techniques and Applications, pp. 2–16, 2004. |
Bertrand Meyer. Applying design by contract. IEEE Computer 25(10), pp. 40–51, 1992. |
Mark Samuel Miller. Robust composition: towards a unified approach to access control and concurrency control. PhD dissertation, Johns Hopkins University, 2006. |
Scott Moore, Christos Dimoulas, Dan King, and Stephen Chong. SHILL: a secure shell scripting language. In SOSP, pp. 183–199, 2014. |
Scott Owens, Matthew Flatt, Olin Shivers, and Benjamin Mcmullan. Lexer and parser generators in Scheme. In SFP, pp. 41–52, 2004. |
Dipanwita Sarkar, Oscar Waddell, and R. Kent Dybvig. A nanopass framework for compiler education. JFP 15(5), pp. 653–667, 2005. |
T. Stephen Strickland, Christos Dimoulas, Asumu Takikawa, and Matthias Felleisen. Contracts for first-class classes. TOPLAS 35(3), pp. 11:1–11:58, 2013. |
T. Stephen Strickland and Matthias Felleisen. Contracts for first-class modules. In DLS, pp. 27–38, 2009. |
T. Stephen Strickland, Sam Tobin-Hochstadt, Robert Bruce Findler, and Matthew Flatt. Chaperones and impersonators: run-time support for reasonable interposition. In OOPSLA, pp. 943–962, 2012. |
Asumu Takikawa, Daniel Feltey, Earl Dean, Robert Bruce Findler, Matthew Flatt, Sam Tobin-Hochstadt, and Matthias Felleisen. Towards practical gradual typing. In ECOOP, 2015. to appear |
Asumu Takikawa, T. Stephen Strickland, Christos Dimoulas, Sam Tobin-Hochstadt, and Matthias Felleisen. Gradual typing for first-class classes. In OOPSLA, pp. 793–810, 2012. |
Sam Tobin-Hochstadt and Matthias Felleisen. The design and implementation of Typed Scheme. In POPL, pp. 395–406, 2008. |
Sam Tobin-Hochstadt, Vincent St-Amour, Ryan Culpepper, Matthew Flatt, and Matthias Felleisen. Languages as libraries. In PLDI, pp. 132–141, 2011. |
Tobias Wrigstad, Patrick Eugster, John Field, Nate Nystrom, and Jan Vitek. Software hardening: a research agenda. In STOP, pp. 58–70, 2009. |
Hongwei Xi and Frank Pfenning. Eliminating array bound checking through dependent types. In PLDI, pp. 249–257, 1998. |