14 Shriram Krishnamurthi
Dybvig, R. Kent. (1996). The Scheme programming language. 2 edn. Prentice-Hall.
http://www.scheme.com/tspl2d/.
Dybvig, R. Kent, Hieb, Robert, & Bruggeman, Carl. (1993). Syntactic abstraction in Scheme. Lisp
and symbolic computation, 5(4), 295–326.
Felleisen, Matthias, Findler, Robert Bruce, Flatt, Matthew, & Krishnamurthi, Shriram. (2001). How
to design programs. MIT Press.
Findler, Robert Bruce, Clements, John, Flanagan, Cormac, Flatt, Matthew, Krishnamurthi, Shri-
ram, Steckler, Paul, & Felleisen, Matthias. (2002). DrScheme: A programming environment for
Scheme. Journal of functional programming, 12(2), 159–182.
Fischer, M. J. (1972). Lambda calculus schemata. ACM SIGPLAN notices, 7(1), 104–109. In the
ACM Conference on Proving Assertions about Programs.
Flatt, Matthew. (2002). Composable and compilable macros. ACM SIGPLAN international confer-
ence on functional programming.
Harper, Robert. (1999). Proof-directed debugging. Journal of functional programming, 9(4), 463–
470.
Haynes, Christopher T. (1987). Logic continuations. Journal of logic programming, 4, 157–176.
Hoare, C. A. R. (1974). Hints on programming language design. Pages 505–534 of: Bunyan, C. (ed),
Computer systems reliability. Pergamon Press.
Hudak, Paul. (1998). Modular domain specific languages and tools. International conference on
software reuse.
Kelsey, Richard, Clinger, William, & Rees, Jonathan. (1998). Revised
5
report on the algorithmic
language Scheme. ACM SIGPLAN notices, 33(9).
Kohlbecker, Eugene E., & Wand, Mitchell. (1987). Macros-by-example: Deriving syntactic trans-
formations from their specifications. Pages 77–84 of: ACM SIGPLAN-SIGACT symposium on
principles of programming languages.
Kohlbecker, Eugene E., Friedman, Daniel P., Felleisen, Matthias, & Duba, Bruce F. (1986). Hygienic
macro expansion. Pages 151–161 of: ACM symposium on lisp and functional programming.
Kohlbecker, Jr., Eugene E. 1986 (Aug.). Syntactic extensions in the programming language Lisp.
Ph.D. thesis, Indiana University.
Krishnamurthi, Shriram. 2001 (May). Linguistic reuse. Ph.D. thesis, Department of Computer Sci-
ence, Rice University.
Krishnamurthi, Shriram, Felleisen, Matthias, & Duba, Bruce F. 1999 (Sept.). From macros to
reusable generative programming. Pages 105–120 of: International symposium on generative and
component-based software engineering. Springer Lecture Notes in Computer Science, no. 1799.
Smaragdakis, Yannis, & Batory, Don. 1998 (July). Implementing layered designs and mixin layers.
Pages 550–570 of: European conference on object-oriented programming.
Steele, Jr., Guy Lewis. (1977). Debunking the “expensive procedure call” myth, or procedure call
implementations can be considered harmful, or Lambda, the ultimate GOTO. Pages 153–162 of:
Acm conference proceedings.