skip to main content
research-article
Open Access

Hygienic macro technology

Published:12 June 2020Publication History
Skip Abstract Section

Abstract

The fully parenthesized Cambridge Polish syntax of Lisp, originally regarded as a temporary expedient to be replaced by more conventional syntax, possesses a peculiar virtue: A read procedure can parse it without knowing the syntax of any expressions, statements, definitions, or declarations it may represent. The result of that parsing is a list structure that establishes a standard representation for uninterpreted abstract syntax trees.

This representation provides a convenient basis for macro processing, which allows the programmer to specify that some simple piece of abstract syntax should be replaced by some other, more complex piece of abstract syntax. As is well-known, this yields an abstraction mechanism that does things that procedural abstraction cannot, such as introducing new binding structures.

The existence of that standard representation for uninterpreted abstract syntax trees soon led Lisp to a greater reliance upon macros than was common in other high-level languages. The importance of those features is suggested by the ten pages devoted to macros in an earlier ACM HOPL paper, “The Evolution of Lisp.”

However, na'ive macro expansion was a leaky abstraction, because the movement of a piece of syntax from one place to another might lead to the accidental rebinding of a program’s identifiers. Although this problem was recognized in the 1960s, it was 20 years before a reliable solution was discovered, and another 10 before a solution was discovered that was reliable, flexible, and efficient.

In this paper, we summarize that early history with greater focus on hygienic macros, and continue the story by describing the further development, adoption, and influence of hygienic and partially hygienic macro technology in Scheme. The interplay between the desire for standardization and the development of new algorithms is a major theme of that story.

We then survey the ways in which hygienic macro technology has been adapted into recent non-parenthetical languages. Finally, we provide a short history of attempts to provide a formal account of macro processing.

References

  1. Martín Abadi, Luca Cardelli, Pierre-Louis Curien, and Jean-Jacques Lévy. 1990. Explicit Substitutions. In Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, San Francisco, California, USA, January 1990. 31–46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Martín Abadi, Luca Cardelli, Pierre-Louis Curien, and Jean-Jacques Lévy. 1991. Explicit Substitutions. J. Funct. Program. 1, 4, 375–416. Google ScholarGoogle ScholarCross RefCross Ref
  3. Hal Abelson. 1988. RRRS-AUTHORS email with Subject: Can we standardize Scheme without killing it? 6 Feb 1988. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  4. Hal Abelson. 1989. RRRS-AUTHORS email with Subject: macros. 26 May 1989. Archived at Internet Archive: https: //web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  5. Harold Abelson, Gerald Jay Sussman, and with Julie Sussman. 1985. Structure and Interpretation of Computer Programs. MIT Press, Cambridge, MA.Google ScholarGoogle Scholar
  6. Michael D. Adams. 2015. Towards the Essence of Hygiene. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2015, Mumbai, India, January 15-17, 2015. 457–469. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Norman Adams. 1987. RRRS-AUTHORS email with Subject: structures. 8 Jul 1987. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  8. Norman Adams. 1992. RRRS-AUTHORS email with Subject: record proprosal. 17 May 1992. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  9. Norman Adams, David Kranz, Richard Kelsey, Jonathan Rees, Paul Hudak, and James Philbin. 1986. ORBIT: an optimizing compiler for Scheme. In SIGPLAN ’86 Proceedings of the the 1986 SIGPLAN Symposium on Compiler Construction. (Aug), 219–233.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Torben Amtoft. 1993. Minimal Thunkification. In WSA ’93 Proceedings of the Third International Workshop on Static Analysis ( WSA âĂŹ93). Springer-Verlag, Berlin, Heidelberg (Sep), 218–229.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Andrew Appel, Adam Chlipala, Benjamin Pierce, Zhong Shao, Stephanie Weirich, Steve Zdancewic, and Lennart Beringer. 2016. DeepSpec: the Science of Deep Specification. NSF Grant. Archived at Internet Archive: https://web.archive.org/ web/20190616201913/https://deepspec.org/mainGoogle ScholarGoogle Scholar
  12. Hiroshi Arai and Ken Wakita. 2010. An Implementation of a Hygienic Syntactic Macro System for JavaScript: A Preliminary Report. In Workshop on Self-Sustaining Systems (Tokyo, Japan) (S3 âĂŹ10). Association for Computing Machinery, 30âĂŞ40. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. H. P. Barendregt. 1985. The Lambda Calculus—Its Syntax and Semantics. Number 103 in Studies in Logic and the Foundations of Mathematics. North-Holland.Google ScholarGoogle Scholar
  14. H. P. Barendregt. 1992. Lambda calculi with types. In Handbook of Logic in Computer Science (Volume 2). Oxford University Press, 117–309.Google ScholarGoogle Scholar
  15. Joel Bartlett. 1989. RRRS-AUTHORS email with Subject: First BASH Meeting. 8 Aug 1989. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  16. David Bartley. 1987a. RRRS-AUTHORS email with Subject: Agenda. 10 Jun 1987. Archived at Internet Archive: https: //web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  17. David Bartley. 1987b. RRRS-AUTHORS email with Subject: macros. 10 Apr 1987. Archived at Internet Archive: https: //web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  18. David Bartley, Chris Hanson, and Jim Miller. 1991. IEEE Standard for the Scheme Programming Language. IEEE. 1178-1990.Google ScholarGoogle Scholar
  19. Alan Bawden. 1987. RRRS-AUTHORS email with Subject: Better late than never. 9 Jun 1987. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  20. Alan Bawden, William Clinger, Kent Dybvig, Matthew Flatt, Richard Kelsey, Manuel Serrano, and Michael Sperber. 2004. Scheme Standardization. Jan 2004. non-archival http://www.r6rs.org/charter/charter- mar- 2006.txt (also at Internet Archive 26 Sept. 2019 06:53:41 ).Google ScholarGoogle Scholar
  21. Alan Bawden, William Clinger, Kent Dybvig, Matthew Flatt, Richard Kelsey, Manuel Serrano, Michael Sperber, Marc Feeley, and Jonathan Rees. 2010. Scheme Standardization. Nov 2010. non-archival http://www.scheme- reports.org/2009/ charter.html (also at Internet Archive 17 April 2019 12:12:45 ).Google ScholarGoogle Scholar
  22. Alan Bawden and Jonathan Rees. 1988. Syntactic closures. In Proceedings of the 1988 ACM Conference on Lisp and Functional Programming. ACM (July), 86–95.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Alan Bawden, Guy Steele, and Mitchell Wand. 2006. Scheme Language Steering Committee Report to the Community. Mar 2006. non-archival http://lambda- the- ultimate.org/node/1342 (also at Internet Archive 7 March 2020 14:08:49 ).Google ScholarGoogle Scholar
  24. Alan Bawden, Guy Steele, and Mitchell Wand. 2007a. R6RS Ratification. Aug 2007. non-archival http://www.r6rs.org/ ratification/ (also at Internet Archive 25 Sept. 2019 02:18:36 ).Google ScholarGoogle Scholar
  25. Alan Bawden, Guy Steele, and Mitchell Wand. 2007b. R6RS Ratification Vote. Aug 2007. non-archival http://www.r6rs. org/ratification/results.html (also at Internet Archive 6 June 2019 12:36:23 ).Google ScholarGoogle Scholar
  26. Alan Bawden, Guy Steele, and Mitchell Wand. 2009a. Steering Committee Election Results. 2 Mar 2009. non-archival http://www.r6rs.org/steering- committee/election/results.html (also at Internet Archive 25 Sept. 2019 02:19:22 ).Google ScholarGoogle Scholar
  27. Alan Bawden, Guy Steele, and Mitchell Wand. 2009b. Steering Committee Replacement. Jan 2009. non-archival http://www.r6rs.org/steering- committee/election/announcement.html (also at Internet Archive 25 Sept. 2019 02:18:56 ).Google ScholarGoogle Scholar
  28. Daniel G. Bobrow and Daniel L. Murphy. 1967. Structure of a LISP system using two-level storage. In Communications of the ACM, Vol. 10. (March), 155–159.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Ana Bove and Laura Arbilla. 1992. A confluent calculus of Macro expansion and evaluation. In 1992 ACM Conference on LISP and Functional Programming. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. S. Bradner. 1997. Key words for use in RFCs to Indicate Requirement Levels. Mar 1997. https://tools.ietf.org/html/rfc2119 (also at Internet Archive 26 June 2019 13:24:34 ).Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Gary Brooks. 1984. RRRS-AUTHORS email with Subject: Environments and Macros. 20 Oct 1984. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  32. P. J. Brown. 1974. Macro Processors and Techniques for Portable Software. Wiley.Google ScholarGoogle Scholar
  33. Eugene Burmako. 2013. Scala Macros: Let Our Powers Combine! On How Rich Syntax and Static Types Work with Metaprogramming. In SCALA ’13. non-archival http://scalamacros.org/papers.html (also at Internet Archive 24 June 2018 03:30:25 ).Google ScholarGoogle Scholar
  34. Eugene Burmako and Martin Odersky. 2012. Scala Macros, a Technical Report. In Third International Valentin Turchin Workshop on Metacomputation. non-archival http://scalamacros.org/papers.html (also at Internet Archive 24 June 2018 03:30:25 ).Google ScholarGoogle Scholar
  35. Clyde Camp. 1988. RRRS-AUTHORS email with Subject: Scheme Standardization. 6 Jan 1988. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  36. Luca Cardelli, Florian Matthes, and Martín Abadi. 1993. Extensible Grammars for Language Specialization. In Database Programming Languages (DBPL-4), Proceedings of the Fourth International Workshop on Database Programming Languages - Object Models and Languages, Manhattan, New York City, USA, 30 August - 1 September 1993 (Workshops in Computing), Catriel Beeri, Atsushi Ohori, and Dennis E. Shasha (Eds.). Springer, 11–31. Google ScholarGoogle ScholarCross RefCross Ref
  37. T. E. Cheatham, Jr. 1966. The introduction of definitional facilities into higher level programming languages. In AFIPS Proceedings—Fall Joint Computer Conference 29. 623–637.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Will Clinger. 1984a. RRRS-AUTHORS email with Subject: feature list for workshop (long message). 15 Oct 1984. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  39. Will Clinger. 1984b. RRRS-AUTHORS email with Subject: questions for workshop (long message). 15 Oct 1984. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  40. Will Clinger. 1984c. RRRS-AUTHORS email with Subject: TI position (long message). 17 Oct 1984. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  41. Will Clinger. 1985. RRRS-AUTHORS email with Subject: DRAFT of Revised Revised Report (LONG message). 18 Mar 1985. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ ftpdir/scheme- mail/Google ScholarGoogle Scholar
  42. Will Clinger. 1986. RRRS-AUTHORS email with Subject: Minutes from lunch 5 August 1986. 14 Aug 1986. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  43. Will Clinger. 1987. RRRS-AUTHORS email with Subject: Minutes of the Scheme meeting etc. 10 Jul 1987. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  44. William Clinger. 1988a. The June 1987 Meeting. ACM SIGPLAN Lisp Pointers I, 5 (Dec-Jan-Feb-Mar), 25–27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. William Clinger. 1988b. Standardization at Snowbird. ACM SIGPLAN Lisp Pointers II, 2 (Oct-Nov-Dec), 43–47. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. William Clinger. 1989. RRRS-AUTHORS email with Subject: planned changes to R3.95RS. 25 May 1989. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  47. William Clinger. 1991a. Hygienic macros through explicit renaming. ACM SIGPLAN Lisp Pointers IV, 4 (Oct-Nov-Dec), 25–28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. William Clinger. 1991b. Macros in Scheme. ACM SIGPLAN Lisp Pointers IV, 4 (December), 17–23. ftp://ftp.cs.indiana.edu/ pub/scheme- repository/doc/prop/macinsch.ps.gz (also at Internet Archive 19 Nov. 2018 09:05:25 ).Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. William Clinger. 1992. RRRS-AUTHORS email with Subject: draft minutes of June 1992 meeting. 9 Oct 1992. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  50. William Clinger. 1993. RRRS-AUTHORS email with Subject: proposals for R5RS (sorry). 11 Apr 1993. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  51. William Clinger, Hal Abelson, Norman Adams, David Bartley, Gary Brooks, Dan Friedman, Robert Halstead, Chris Hanson, Chris Haynes, Eugene Kohlbecker, Don Oxley, Kent Pitman, Jonathan Rees, Bill Rozas, Gerald Jay Sussman, and Mitchell Wand. 1985. The revised revised report on Scheme, or an uncommon Lisp. MIT AI Memo 848 (August). https://dspace.mit.edu/handle/1721.1/5600Google ScholarGoogle Scholar
  52. Will Clinger, R. Kent Dybvig, Michael Sperber, and Anton van Straaten. 2005. SRFI 76: R6RS Records. Sep 2005. https: //srfi.schemers.org/srfi- 76/ (also at Internet Archive 27 Nov. 2018 01:15:17 ).Google ScholarGoogle Scholar
  53. Will Clinger, Marc Feeley, Chris Hanson, Jonathan Rees, and Olin Shivers. 2009. Announcement of scheme-reports.org web site. Posted to scheme-reports. 20 Oct 2009. non-archival http://www.scheme- reports.org/2009/announcement.html (also at Internet Archive 17 April 2019 12:12:37 ).Google ScholarGoogle Scholar
  54. William Clinger and Jonathan Rees. 1991a. Macros That Work. In Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Orlando, Florida, USA) (POPL âĂŹ91). Association for Computing Machinery, New York, NY, USA (January), 155âĂŞ–162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. William Clinger and Jonathan Rees. 1991b. The revised 4 report on the algorithmic language Scheme. ACM Lisp Pointers 4, 3, 1–55.Google ScholarGoogle Scholar
  56. William D Clinger. 2006. Formal comment #90: Record layers are not orthogonal. Nov 2006. non-archival http: //www.r6rs.org/formal- comments/comment- 90.txt (also at Internet Archive 18 May 2013 01:48:12 ).Google ScholarGoogle Scholar
  57. William D Clinger. 2007a. Formal comment #267: syntactic sugar causes cancer of the exports. Apr 2007. non-archival http://www.r6rs.org/formal- comments/comment- 267.txt (also at Internet Archive 8 Aug. 2008 12:20:09 ).Google ScholarGoogle Scholar
  58. William D Clinger. 2007b. Rationale issues. Posted to r6rs-discuss. 27 Jun 2007. non-archival http://lists.r6rs.org/ pipermail/r6rs- discuss/2007- June/002889.html (also at Internet Archive 5 July 2008 18:03:01 ). Response to van Tonder [ 2007a ].Google ScholarGoogle Scholar
  59. William D Clinger. 2007c. Re: [r6rs-discuss] an essay on language design. Posted to r6rs-discuss. 25 Jul 2007. nonarchival http://lists.r6rs.org/pipermail/r6rs- discuss/2007- July/003125.html (also at Internet Archive 28 Aug. 2008 11:51:04 ). Repairs a truncated email that had been sent on 10 July.Google ScholarGoogle Scholar
  60. William D Clinger. 2007d. Re: [r6rs-discuss] an essay on language design. Posted to r6rs-discuss. 24 Jul 2007. Archived at Internet Archive: https://web.archive.org/web/20070915235512/http://lists.r6rs.org/pipermail/r6rs- discuss/2007- July. txt.gz This is a bitter complaint about two paragraphs of “tendentious nonsense” that were added to the R 5 .97 RS draft, which was up for ratification and would be ratified in August 2007.Google ScholarGoogle Scholar
  61. William D Clinger. 2007e. Vote against ratification of R6RS. Aug 2007. non-archival http://www.r6rs.org/ratification/ results.html#X101 (also at Internet Archive 6 June 2019 12:36:23 ).Google ScholarGoogle Scholar
  62. William D Clinger. 2008. [email protected]. In LISP50: Celebrating the 50th Anniversary of Lisp (Nashville, Tennessee) (LISP50). Association for Computing Machinery, New York, NY, USA, Article Article 7, 5 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. William D Clinger. 2009. SRFI 99: ERR5RS Records. Oct 2009. https://srfi.schemers.org/srfi- 99/ (also at Internet Archive 3 Aug. 2017 12:43:58 ).Google ScholarGoogle Scholar
  64. William D Clinger. 2015. R7RS Considered Unifier of Previous Standards. In Scheme and Functional Programming Workshop 2015. Archived at Internet Archive: https://web.archive.org/web/20160911102749/http://schemeworkshop.org/2015/ sfpw1- 2015- clinger.pdfGoogle ScholarGoogle Scholar
  65. William D Clinger. 2016. clarifying that field names are symbols. Posted to SRFI 99 discussion list. 21 Jun 2016. https://srfiemail.schemers.org/srfi- 99/msg/3905499/ (also at Internet Archive 7 March 2020 15:17:22 ).Google ScholarGoogle Scholar
  66. William D Clinger. 2017a. apparent bug in sample implementation of SRFI 148. Posted to SRFI 148 discussion list. 18 Jul 2017. non-archival https://srfi- email.schemers.org/srfi- 148/msg/6084267/ (also at Internet Archive 7 March 2020 18:15:45 ).Google ScholarGoogle Scholar
  67. William D Clinger. 2017b. Re: apparent bug in sample implementation of SRFI 148. Posted to SRFI 148 discussion list. 19 Jul 2017. non-archival https://srfi- email.schemers.org/srfi- 148/msg/6090613/ (also at Internet Archive 7 March 2020 18:18:52 ).Google ScholarGoogle Scholar
  68. William D Clinger. 2017c. Re: apparent bug in sample implementation of SRFI 148. Posted to SRFI 148 discussion list. 20 Jul 2017. non-archival https://srfi- email.schemers.org/srfi- 148/msg/6091649/ (also at Internet Archive 7 March 2020 18:21:56 ).Google ScholarGoogle Scholar
  69. William D Clinger. 2017d. Re: apparent bug in sample implementation of SRFI 148. Posted to SRFI 148 discussion list. 20 Jul 2017. non-archival https://srfi- email.schemers.org/srfi- 148/msg/6091691/ (also at Internet Archive 7 March 2020 18:20:35 ).Google ScholarGoogle Scholar
  70. William D Clinger. 2017e. Re: apparent bug in sample implementation of SRFI 148. Posted to SRFI 148 discussion list. 20 Jul 2017. non-archival https://srfi- email.schemers.org/srfi- 148/msg/6092367/ (also at Internet Archive 7 March 2020 18:25:07 ).Google ScholarGoogle Scholar
  71. William D Clinger and Lars Thomas Hansen. 1994. Lambda, the ultimate label, or a simple optimizing compiler for Scheme. In Proceedings of the 1994 ACM conference on LISP and Functional Programming, Vol. VII. Association for Computing Machinery, New York, NY, USA (July), 128–139. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Ludovic Courtès. 2007a. R6RS Formal Comment #264: Versioned names for base libraries considered harmful. 14 Jun 2007. non-archival http://www.r6rs.org/formal- comments/comment- 264.txt (also at Internet Archive 4 July 2008 13:45:40 ).Google ScholarGoogle Scholar
  73. Ludovic Courtès. 2007b. Versioned standard libraries. Posted to r6rs-discuss. 24 Sep 2007. non-archival http: //lists.r6rs.org/pipermail/r6rs- discuss/2007- September/003321.html (also at Internet Archive 28 Aug. 2008 19:26:42 ).Google ScholarGoogle Scholar
  74. John Cowan. 2016. R7RS Small Errata (unofficial). Nov 2016. non-archival https://small.r7rs.org/wiki/R7RSSmallErrata/ (also at Internet Archive 31 Dec. 2019 22:51:41 ).Google ScholarGoogle Scholar
  75. John Cowan. 2017. RedEdition Version 8. 28 Aug 2017. non-archival https://small.r7rs.org/wiki/RedEdition/ (also at Internet Archive 8 March 2020 22:52:40 ).Google ScholarGoogle Scholar
  76. Ryan Culpepper and Matthias Felleisen. 2004. Taming Macros. In Generative Programming and Component Engineering (GPCE 2004). (October). Google ScholarGoogle ScholarCross RefCross Ref
  77. Ryan Culpepper, Sam Tobin-Hochstadt, and Matthew Flatt. 2007. Advanced Macrology and the Implementation of Typed Scheme. In 2007 Workshop on Scheme and Functional Programming. (September).Google ScholarGoogle Scholar
  78. Pavel Curtis. 1989. RRRS-AUTHORS email with Subject: Programmer-defined data types. 18 Aug 1989. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  79. Pavel Curtis and James Rauen. 1990. A module system for Scheme. In Proceedings of the 1990 ACM conference on LISP and Functional Programming (Nice, France) (LFP âĂŹ90). Association for Computing Machinery, New York, NY, USA (Jun), 13–19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. Tim Disney, Nathan Faubion, David Herman, and Cormac Flanagan. 2014. Sweeten your JavaScript: hygienic macros for ES5. In DLS’14, Proceedings of the 10th ACM Symposium on Dynamic Languages, part of SLASH 2014, Portland, OR, USA, October 20-24, 2014. 35–44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Timothy Charles Disney. 2015. Hygienic Macros for JavaScript. Ph.D. Dissertation. UC Santa Cruz.Google ScholarGoogle Scholar
  82. Kent Dybvig. 1985. RRRS-AUTHORS email with Subject: Chez Scheme. 4 Feb 1985. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  83. Kent Dybvig. 2005. SRFI 93: R6RS Syntax-Case Macros. Sep 2005. https://srfi.schemers.org/srfi- 93/ (also at Internet Archive 27 Nov. 2018 01:15:15 ).Google ScholarGoogle Scholar
  84. Kent Dybvig, Will Clinger, Matthew Flatt, Mike Sperber, and Anton van Straaten. 2006. R6RS Status Report. Feb 2006. non-archival https://schemers.org/Documents/Standards/Charter/status- mar- 2006.html (also at Internet Archive 27 Nov. 2018 01:12:56 ).Google ScholarGoogle Scholar
  85. R. Kent Dybvig. 1987. The Scheme Programming Language. Prentice Hall.Google ScholarGoogle Scholar
  86. R. Kent Dybvig. 1992. Writing Hygienic Macros in Scheme with Syntax-Case. Technical Report 356. Indiana University Computer Science Department (June). https://www.cs.indiana.edu/ftp/techreports/TR356.pdfGoogle ScholarGoogle Scholar
  87. R. Kent Dybvig. 1993. RRRS-AUTHORS email with Subject: Re: proposals for R5RS (sorry). 12 Apr 1993. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  88. R. Kent Dybvig. 1996a. RRRS-AUTHORS email with Subject: compromise record-type proposal. 26 Apr 1996. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  89. R. Kent Dybvig. 1996b. RRRS-AUTHORS email with Subject: Re: Generative record types. 24 Apr 1996. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  90. R. Kent Dybvig. 1996c. RRRS-AUTHORS email with Subject: Re: Record proposal. 29 Apr 1996. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  91. R. Kent Dybvig. 2000. From Macrogeneration to Syntactic Abstraction. Higher Order Symbol. Comput. 13, 1âĂŞ-2 (April), 57âĂŞ63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. R. Kent Dybvig. 2007. Re: [r6rs-discuss] an essay on language design. Posted to r6rs-discuss. 24 Jul 2007. Archived at Internet Archive: https://web.archive.org/web/20070915235512/http://lists.r6rs.org/pipermail/r6rs- discuss/2007- July.txt. gz This short note promises to correct wording that had been attacked by Clinger [ 2007d ].Google ScholarGoogle Scholar
  93. R. Kent Dybvig, Daniel P. Friedman, and Christopher T. Haynes. 1986. Expansion-Passing style: Beyond Conventional Macros. In Proceedings of the 1986 ACM Conference on LISP and Functional Programming (Cambridge, Massachusetts, USA) (LFP âĂŹ86). Association for Computing Machinery, New York, NY, USA, 143âĂŞ150. Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. R. Kent Dybvig, Daniel P. Friedman, and Christopher T. Haynes. 1988. Expansion-Passing Style: A General Macro Mechanism. LISP and Symbolic Computation 1, 1 (June). Google ScholarGoogle ScholarCross RefCross Ref
  95. R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. 1993. Syntactic abstraction in Scheme. Lisp and Symbolic Computation 5, 4 (December).Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. R. Kent Dybvig and Oscar Waddell. 2000. Portable syntax-case. Aug 2000. non-archival https://www.cs.indiana.edu/syntaxcase/old- psyntax.html (also at Internet Archive 14 April 2016 07:30:20 ).Google ScholarGoogle Scholar
  97. Sebastian Erdweg, Tijs van der Storm, and Yi Dai. 2014. Capture-Avoiding and Hygienic Program Transformations. In ECOOP 2014 - Object-Oriented Programming - 28th European Conference, Uppsala, Sweden, July 28 - August 1, 2014. Proceedings. 489–514. Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. Marc Feeley. 2004a. The R6RS Status Report. In Proceedings of the Fifth Workshop on Scheme and Functional Programming. https://www.cs.indiana.edu/ftp/techreports/TR600.pdf (also at Internet Archive 5 July 2017 10:28:33 ).Google ScholarGoogle Scholar
  99. Marc Feeley. 2004b. The Revised R6RS Status Report. In Proceedings of the Fifth Workshop on Scheme and Functional Programming. (Sep). https://schemers.org/Documents/Standards/Charter/2004- 10- 13.pdf (also at Internet Archive 27 Nov. 2018 01:12:56 ). There are two versions of the proceedings for that workshop, differing mainly by whether they include Feeley’s original R6RS status report or this revision of that status report.Google ScholarGoogle Scholar
  100. Marc Feeley. 2007. Implementors’ intentions concerning R6RS. Posted to r6rs-discuss. 26 Oct 2007. Archived at Internet Archive: https://web.archive.org/web/20110727195419/http://lists.r6rs.org/pipermail/r6rs- discuss/2007- October/003351. htmlGoogle ScholarGoogle Scholar
  101. Marc Feeley. 2010. Volunteering for Scheme language standardization working groups ***deadline January 8***. Forwarded to r6rs-discuss by Jonathan Rees. 5 Jan 2010. http://scheme- reports.org/mail/scheme- reports/msg02360.html (also at Internet Archive 7 March 2020 13:49:56 ).Google ScholarGoogle Scholar
  102. Matthias Felleisen, Robert Bruce Findler, and Matthew Flatt. 2009. Semantics Engineering with PLT Redex. MIT Press, Cambridge, MA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay A. McCarthy, and Sam TobinHochstadt. 2018. A programmable programming language. Commun. ACM 61, 3, 62–71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. Matthew Flatt. 2002. Composable and Compilable Macros: You Want it When?. In International Conference on Functional Programming (ICFP’2002).Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. Matthew Flatt. 2016. Binding as sets of scopes. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2016, St. Petersburg, FL, USA, January 20 - 22, 2016. 705–717. Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. Matthew Flatt, Ryan Culpepper, David Darais, and Robert Bruce Findler. 2012. Macros that Work Together - Compiletime bindings, partial expansion, and definition contexts. J. Funct. Program. 22, 2, 181–216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  107. Matthew Flatt and Kent Dybvig. 2006. SRFI 83: R6RS Library Syntax. Sep 2006. https://srfi.schemers.org/srfi- 83/ (also at Internet Archive 11 Feb. 2019 12:01:20 ).Google ScholarGoogle Scholar
  108. Andy Freeman. 1988. RRRS-AUTHORS email with Subject: Re: Standardization. 6 Feb 1988. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  109. Murdoch Gabbay and Andrew M. Pitts. 2002. A New Approach to Abstract Syntax with Variable Binding. Formal Asp. Comput. 13, 3-5, 341–363. Google ScholarGoogle ScholarDigital LibraryDigital Library
  110. Dick Gabriel. 1987. RRRS-AUTHORS email with Subject: Some Remarks on Standardization (by someone who has been there). 22 Dec 1987. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit. edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  111. Dick Gabriel. 1988. RRRS-AUTHORS email with Subject: Clarifications. 30 Jan 1988. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  112. Richard P. Gabriel and Kent M. Pitman. 1988. Technical Issues of Separation in Function Cells and Value Cells. Lisp and Symbolic Computation 1, 1 (Jun), 81–101. Google ScholarGoogle ScholarCross RefCross Ref
  113. Steven E. Ganz, Amr Sabry, and Walid Taha. 2001. Macros as Multi-Stage Computations: Type-Safe, Generative, Binding Macros in MacroML. In Proceedings of the Sixth ACM SIGPLAN International Conference on Functional Programming (ICFP ’01), Firenze (Florence), Italy, September 3-5, 2001. 74–85. Google ScholarGoogle ScholarDigital LibraryDigital Library
  114. Josef Martin Gasbichler. 2006. Fully-parameterized, first-class modules with hygienic macros. Ph.D. Dissertation. University of Tübingen, Germany. non-archival http://w210.ub.uni- tuebingen.de/dbt/volltexte/2006/2423/index.htmlGoogle ScholarGoogle Scholar
  115. Abdulaziz Ghuloum and R. Kent Dybvig. 2007. Implicit Phasing for R6RS Libraries. In Proceedings of the 2007 International Conference on Functional Programming, Vol. 42. Association for Computing Machinery, New York, NY, USA (Oct), 303–313. Google ScholarGoogle ScholarDigital LibraryDigital Library
  116. Abdulaziz Ghuloum and R. Kent Dybvig. (no date). Portable syntax-case. non-archival http://www.cs.indiana.edu/ chezscheme/r6rs- libraries (also at Internet Archive 26 April 2017 09:42:10 ).Google ScholarGoogle Scholar
  117. Albert Gräf. 2018. The Pure Manual (subsection on Macro Hygiene). 15 April 2018. non-archival https://agraef.github.io/ pure- docs/pure.html#macro- hygiene (also at Internet Archive 26 Dec. 2018 19:18:05 ).Google ScholarGoogle Scholar
  118. Paul Graham. 1993. On Lisp: Advanced Techniques for Common Lisp. Prentice-Hall. Text at non-archival http://www. paulgraham.com/onlisp.html (also at Internet Archive 1 Feb. 2020 10:38:36 ).Google ScholarGoogle ScholarDigital LibraryDigital Library
  119. Timothy Griffin. 1988. Notational definition-a formal account. In Proceedings of the Third Annual Symposium on Logic in Computer Science (LICS ’88), Edinburgh, Scotland, UK, July 5-8, 1988. 372–383. Google ScholarGoogle ScholarCross RefCross Ref
  120. Chris Hanson. 1984. RRRS-AUTHORS email with Subject: Scheme meeting. 13 Oct 1984. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  121. Chris Hanson. 1991. A Syntactic Closures Macro Facility. ACM SIGPLAN Lisp Pointers IV, 4 (December).Google ScholarGoogle Scholar
  122. Timothy P. Hart. 1963. MACRO Definitions for LISP. Technical Report 57. (Oct). https://dspace.mit.edu/handle/1721.1/6111Google ScholarGoogle Scholar
  123. Chris Haynes. 1988a. RRRS-AUTHORS email with Subject: Scheme standardization meeting. 17 May 1988. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  124. Chris Haynes. 1988b. RRRS-AUTHORS email with Subject: standardization. 5 Jan 1988. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  125. Chris Haynes. 1990. RRRS-AUTHORS email with Subject: Minutes of the 4th Scheme standarization meeting. 31 Jan 1990. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ ftpdir/scheme- mail/Google ScholarGoogle Scholar
  126. David Herman. 2010. A Theory of Typed Hygienic Macros. Ph.D. dissertation. Northeastern University, Boston, Massachusetts (May).Google ScholarGoogle ScholarDigital LibraryDigital Library
  127. David Herman and Mitchell Wand. 2008. A Theory of Hygienic Macros. In Programming Languages and Systems, 17th European Symposium on Programming, ESOP 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings. 48–62. Google ScholarGoogle ScholarCross RefCross Ref
  128. Robert Hieb, R. Kent Dybvig, and Carl Bruggeman. 1992. Syntactic Abstraction in Scheme. Technical Report TR-355. Indiana University Computer Science Department (June). ftp://ftp.cs.indiana.edu/pub/scheme- repository/doc/pubs/iucstr355.ps. gzGoogle ScholarGoogle Scholar
  129. IEEE. 2008. IEEE 1178-1990-IEEE Standard for the Scheme Programming Language. https://standards.ieee.org/standard/1178-1990.htmlGoogle ScholarGoogle Scholar
  130. Aubrey Jaffer. 2007. SRFI 96: SLIB Prerequisites. Jun 2007. https://srfi.schemers.org/srfi- 96/ (also at Internet Archive 3 Aug. 2017 11:04:51 ).Google ScholarGoogle Scholar
  131. Takashi Kato. 2014. Implementing R7RS on an R6RS Scheme system. In Scheme and Functional Programming Workshop 2014. Archived at Internet Archive: https://web.archive.org/web/20190829133853/http://www.schemeworkshop.org/ 2014/papers/Kato2014.pdfGoogle ScholarGoogle Scholar
  132. Andrew W. Keep and R. Kent Dybvig. 2012. A sufficiently smart compiler for procedural records. In Proceedings of the 2012 Annual Workshop on Scheme and Functional Programming (Copenhagen, Denmark) (Scheme âĂŹ12). Association for Computing Machinery (Sep), 36âĂŞ–46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  133. Daniel Keep. (no date). The Little Book of Rust Macros, Captures and Expansion Redux. non-archival https://danielkeep. github.io/tlborm/book/mbe- min- captures- and- expansion- redux.html (also at Internet Archive 3 Nov. 2019 03:14:53 ).Google ScholarGoogle Scholar
  134. Richard Kelsey. 1989. Compilation by Program Transformation. Ph.D. Dissertation. Yale University (May).Google ScholarGoogle Scholar
  135. Richard Kelsey. 1999. SRFI 9: Defining Record Types. Sep 1999. https://srfi.schemers.org/srfi- 9/ (also at Internet Archive 26 Nov. 2018 07:02:14 ).Google ScholarGoogle Scholar
  136. Richard Kelsey, William Clinger, and Jonathan Rees. 1998. The revised 5 report on the algorithmic language Scheme. ACM SIGPLAN Notices 33, 9 (September), 26–76.Google ScholarGoogle Scholar
  137. Richard Kelsey and Paul Hudak. 1989. Realistic compilation by program transformation (detailed summary). In POPL ’89 Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. (Jan), 281–292.Google ScholarGoogle ScholarDigital LibraryDigital Library
  138. Oleg Kiselyov. 2001. Re-writing abstractions, or Lambda: the ultimate pattern macro. Posted to comp.lang.functional and comp.lang.scheme. December 2001. non-archival http://okmij.org/ftp/Computation/rewriting- rule- lambda.txt (also at Internet Archive 8 Aug. 2019 23:59:12 ).Google ScholarGoogle Scholar
  139. Oleg Kiselyov. 2002. How to write seemingly unhygienic and referentially opaque macros with syntax-rules. In Workshop on Scheme and Functional Programming (2002). (October). non-archivalGoogle ScholarGoogle Scholar
  140. Steve Klabnik and Carol Nichols. 2018. The Rust Programming Language. No Starch Press (Jun). non-archival https: //doc.rust- lang.org/book/ (also at Internet Archive 29 Feb. 2020 15:32:06 ).Google ScholarGoogle Scholar
  141. Eugene Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. 1986. Hygienic macro expansion. In Proceedings of the 1986 ACM Conference on LISP and Functional Programming.Google ScholarGoogle ScholarDigital LibraryDigital Library
  142. Eugene E. Kohlbecker and Mitchell Wand. 1987. Macro-by-example: Deriving syntactic transformations from their specifications. In Fourteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of programming languages. (January).Google ScholarGoogle Scholar
  143. Eugene E. Kohlbecker, Jr. 1986. Syntactic Extensions in the Programming Language Lisp. Ph.D. Dissertation. Indiana University. https://help.luddy.indiana.edu/techreports/TRNNN.cgi?trnum=TR199 Archived at Internet Archive: https: //web.archive.org/web/20130522065120/http://repository.readscheme.org/ftp/papers/kohlbecker_phdthesis.pdfGoogle ScholarGoogle Scholar
  144. David Kranz. 1988. ORBIT: an optimizing compiler for Scheme. Ph.D. Dissertation. Yale University (Feb). https://cpsc.yale. edu/sites/default/files/files/tr632.pdfGoogle ScholarGoogle Scholar
  145. Shriram Krishnamurthi. 1996. RRRS-AUTHORS email with Subject: Generative record types. 23 Apr 1996. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  146. Shriram Krishnamurthi. 2001. Linguistic Reuse. Ph.D. Dissertation. Rice University. https://scholarship.rice.edu/handle/ 1911/17993Google ScholarGoogle Scholar
  147. Shriram Krishnamurthi, Matthias Felleisen, and Bruce F. Duba. 2000a. From Macros to Reusable Generative Programming. Technical Report TR 00-364. http://www.ccs.neu.edu/scheme/pubs/tr00- 364.ps.gz (also at Internet Archive 10 Dec. 2005 14:42:23 ).Google ScholarGoogle Scholar
  148. Shriram Krishnamurthi, Matthias Felleisen, and Bruce F. Duba. 2000b. From Macros to Reusable Generative Programming. In Generative and Component-Based Software Engineering. GCSE 1999. Lecture Notes in Computer Science, Vol. 1799. 105–120. Google ScholarGoogle ScholarCross RefCross Ref
  149. B. M. Leavenworth. 1966. Syntax macros and extended translation. Commun. ACM 9, 11 (Nov), 790–793.Google ScholarGoogle ScholarDigital LibraryDigital Library
  150. Juergen Lorenz. 2009-2020. Mini-tutorial on explicit (and implicit) renaming macros in CHICKEN. non-archival https://wiki.call- cc.org/explicit- renaming- macros#implicit- renaming- macros Archived at https://web.archive.org/web/ 20191026053510/https://wiki.call- cc.org/explicit- renaming- macrosGoogle ScholarGoogle Scholar
  151. M. Donald MacLaren. 1969. Macro processing in EPS. SIGPLAN 4, 8 (Aug), 32–36.Google ScholarGoogle Scholar
  152. Masinter, van Roggen, and Barrett. 1990. Issue LISP-SYMBOL-REDEFINITION Writeup. Jun 1990. http://clhs.lisp.se/Issues/ iss214_w.htm (also at Internet Archive 6 Sept. 2015 05:31:59 ).Google ScholarGoogle Scholar
  153. John McCarthy. 1978. History of Lisp. In History of Programming Languages. ACM (June), 173–185.Google ScholarGoogle Scholar
  154. John McCarthy. 1981. History of LISP. In History of Programming Languages, Richard L Wexelblat (Ed.). Academic Press, 173–197.Google ScholarGoogle Scholar
  155. John McCarthy, Paul W. Abrahams, Daniel J. Edwards, Timothy P. Hart, and Michael I. Levin. 1962. Lisp 1.5 Programmer’s Manual. MIT Press.Google ScholarGoogle Scholar
  156. James Miller. 1988. RRRS-AUTHORS email with Subject: Standards. 28 Feb 1988. Archived at Internet Archive: https: //web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  157. John C. Mitchell. 2002. Concepts in Programming Languages. Cambridge University Press.Google ScholarGoogle Scholar
  158. Joel Moses. 1970. The function of F UNCTION in LISP or why the F UNARG problem should be called the environment problem. ACM SIGSAM Bulletin 15 (July), 13–27. http://dspace.mit.edu/handle/1721.1/5854Google ScholarGoogle ScholarDigital LibraryDigital Library
  159. Fabian Muehlboeck. 2013. Checking binding hygiene statically. Master’s thesis. Northeastern University, Boston, MA. http://hdl.handle.net/2047/d20003134Google ScholarGoogle Scholar
  160. Pierre Neron, Andrew P. Tolmach, Eelco Visser, and Guido Wachsmuth. 2015. A Theory of Name Resolution. In Programming Languages and Systems - 24th European Symposium on Programming, ESOP 2015, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015, London, UK, April 11-18, 2015. Proceedings. 205–231. Google ScholarGoogle ScholarCross RefCross Ref
  161. Marc Nieper-Wißkirchen. 2016. SRFI 136: Extensible record types. Feb 2016. https://srfi.schemers.org/srfi- 136/ (also at Internet Archive 3 Aug. 2017 10:45:33 ).Google ScholarGoogle Scholar
  162. Marc Nieper-Wißkirchen. 2017. SRFI 148: Eager syntax-rules. Aug 2017. https://srfi.schemers.org/srfi- 148/ (also at Internet Archive 2 Aug. 2017 22:33:00 ).Google ScholarGoogle Scholar
  163. Marc Nieper-Wißkirchen. 2018. SRFI 150: Hygienic ERR5RS Record Syntax (reduced). Jan 2018. https://srfi.schemers.org/srfi150/ (also at Internet Archive 3 Aug. 2017 10:47:29 ).Google ScholarGoogle Scholar
  164. David M. R. Park, Daniel P. Friedman, David S. Wise, and Guy L Steele, Jr (Eds.). 1982. Proceedings of the 1982 ACM Symposium on LISP and Functional Programming, LFP 1980, August 15-18, 1982, Pittsburgh, PA, USA. ACM. https: //dl.acm.org/citation.cfm?id=800068Google ScholarGoogle ScholarDigital LibraryDigital Library
  165. Kent Pitman. 1983. The Revised MacLisp Manual (the PitMANUAL, draft #14 ed.). MIT. http://www.maclisp.info/pitmanual/ (also at Internet Archive 18 Feb. 2008 22:55:59 ).Google ScholarGoogle Scholar
  166. Justin Pombrio, Shriram Krishnamurthi, and Mitchell Wand. 2017. Inferring scope through syntactic sugar. PACMPL 1, ICFP, 44:1–44:28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  167. Francois Pottier. 2007. Static Name Control for FreshML. LICS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  168. Vaughan R. Pratt. 1973. Top Down Operator Precedence. In Conference Record of the ACM Symposium on Principles of Programming Languages, Boston, Massachusetts, USA, October 1973, Patrick C. Fischer and Jeffrey D. Ullman (Eds.). ACM Press, 41–51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  169. Christian Queinnec and Julian Padget. 1991a. Modules, macros and Lisp. In Computer Science Research and Applications, Ricardo Baeza-Yates and Udi Manber (Eds.). Plenum Publishing Corporation, USA United States (1 10), 109–122. Google ScholarGoogle ScholarCross RefCross Ref
  170. Christian Queinnec and Julian Padget. 1991b. A proposal for a modular Lisp with macros and dynamic evaluation. In Journées de Travail sur l’Analyse Statique en Programmation Équationnelle, Fonctionnelle et Logique. BIGRE: Bulletin d’information du Groupe de recherche sur les outils de conception et d’Ãľcriture des systÃĺmes opÃľratoires (1 10), 1–8. https: //researchportal.bath.ac.uk/en/publications/a- proposal- for- a- modular- lisp- with- macros- and- dynamic- evaluationGoogle ScholarGoogle Scholar
  171. Jon Rafkind and Matthew Flatt. 2012. Honu: syntactic extension for algebraic notation through enforestation. In GPCE ’12 Proceedings of the 11th International Conference on Generative Programming and Component Engineering (Dresden, Germany) ( GPCE âĂŹ12). Association for Computing Machinery (Sep), 122âĂŞ131. Google ScholarGoogle ScholarDigital LibraryDigital Library
  172. John D. Ramsdell. 1987. RRRS-AUTHORS email with Subject: A vote against standardization. 24 Dec 1987. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  173. Jonathan Rees. 1993. Implementing lexically scoped macros. ACM SIGPLAN Lisp Pointers.Google ScholarGoogle Scholar
  174. Jonathan Rees. (no date). The T Project. non-archival http://mumble.net/~jar/tproject/ (also at Internet Archive 28 Nov. 2019 02:31:52 ).Google ScholarGoogle Scholar
  175. Jonathan Rees and William Clinger. 1986. The revised 3 report on the algorithmic language Scheme. ACM SIGPLAN Notices 21, 12 (December), 37–79.Google ScholarGoogle ScholarDigital LibraryDigital Library
  176. Jonathan Rees and William Clinger. 2013a. Scheme Working Group 1. non-archival http://www.scheme- reports.org/ 2015/working- group- 1.html (also at Internet Archive 3 July 2019 11:41:55 ).Google ScholarGoogle Scholar
  177. Jonathan Rees and William Clinger. 2013b. Scheme Working Group 2. non-archival http://www.scheme- reports.org/ 2015/working- group- 2.html (also at Internet Archive 31 Dec. 2019 22:51:39 ).Google ScholarGoogle Scholar
  178. Jonathan Rees, Olin Shivers, William Clinger, Marc Feeley, and Chris Hanson. 2010a. Charter for working group 1. 20 Jan 2010. non-archival http://www.scheme- reports.org/2009/working- group- 1- charter.html (also at Internet Archive 17 April 2019 12:12:40 ).Google ScholarGoogle Scholar
  179. Jonathan Rees, Olin Shivers, William Clinger, Marc Feeley, and Chris Hanson. 2010b. Charter for working group 2. 3 Mar 2010. non-archival http://www.scheme- reports.org/2009/working- group- 2- charter.html (also at Internet Archive 26 Oct. 2019 05:20:46 ).Google ScholarGoogle Scholar
  180. Jonathan A Rees. 1987a. RRRS-AUTHORS email with Subject: a modest macro proposal. 28 Mar 1987. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  181. Jonathan A Rees. 1987b. RRRS-AUTHORS email with Subject: macros. 7 Apr 1987. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  182. Jonathan A Rees. 1987c. RRRS-AUTHORS email with Subject: macros. 10 Apr 1987. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  183. Jonathan A Rees. 1988a. RRRS-AUTHORS email with Subject: DO in Scheme. 16 Feb 1988. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  184. Jonathan A Rees. 1988b. RRRS-AUTHORS email with Subject: opaque type proposal. 26 May 1988. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  185. Jonathan A. Rees and Norman I. Adams, IV. 1982. T: a dialect of Lisp or, Lambda: the ultimate software tool. In Proceedings of the 1982 ACM Symposium on LISP and Functional Programming (Pittsburgh, Pennsylvania, USA) (LFP âĂŹ82). Association for Computing Machinery (Aug), 114–122. Google ScholarGoogle ScholarDigital LibraryDigital Library
  186. Guillermo J. Rozas. 1996. RRRS-AUTHORS email with Subject: Re: Generative record types. 24 Apr 1996. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  187. ISO SC22/WG16. 1997. Programming Language ISLISP: ISLISP Working Draft 20.3 (Public Domain). http://islisp.info/ Documents/PDF/islisp- 1997- 03- 31- pd- v20.pdfGoogle ScholarGoogle Scholar
  188. Scala. (no date). The Scala Programming Language. non-archival https://www.scala- lang.org/ (also at Internet Archive 30 June 2019 22:36:28 ).Google ScholarGoogle Scholar
  189. Alex Shinn. 2011. initial results of implementor intention poll. Posted to scheme-reports. 23 Oct 2011. non-archival http://www.scheme- reports.org/mail/scheme- reports/msg00372.html (also at Internet Archive 9 March 2020 17:08:27 ).Google ScholarGoogle Scholar
  190. Alex Shinn. 2017. Re: apparent bug in sample implementation of SRFI 148. Posted to SRFI 148 discussion list. 20 Jul 2017. non-archival https://srfi- email.schemers.org/srfi- 148/msg/6102883/ (also at Internet Archive 7 March 2020 18:27:32 ).Google ScholarGoogle Scholar
  191. Alex Shinn, John Cowan, and Arthur A Gleckler. 2013. Revised 7 report on the algorithmic language Scheme. July 2013. non-archival https://bitbucket.org/cowan/r7rs/raw/4c27517de187142ad2cf4bcd8cb9199ae1e48c09/rnrs/r7rs- official.pdf (also at Internet Archive 31 Dec. 2019 22:51:38 ).Google ScholarGoogle Scholar
  192. Olin Shivers. (no date). History of T. non-archival http://www.paulgraham.com/thist.html (also at Internet Archive 23 Feb. 2020 06:29:59 ).Google ScholarGoogle Scholar
  193. Olin Shivers, William Clinger, Marc Feeley, Chris Hanson, and Jonathan Rees. 2009. Scheme Steering Committee Position Statement. 20 Aug 2009. non-archival http://scheme- reports.org/2009/position- statement.html (also at Internet Archive 21 July 2019 21:27:35 ).Google ScholarGoogle Scholar
  194. Michael Sperber. 2012. Formal Response #456: Adoption of R6RS. Posted to scheme-reports. 13 Oct 2012. non-archival http://www.scheme- reports.org/mail/scheme- reports/msg00945.html (also at Internet Archive 9 March 2020 17:32:16 ).Google ScholarGoogle Scholar
  195. Michael Sperber, William Clinger, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten. 2007. Revised 5 .97 report on the algorithmic language Scheme—Standard Libraries. 30 Jun 2007. non-archival http://www.r6rs.org/versions/r5.97rslib.pdf (also at Internet Archive 28 Sept. 2018 12:20:57 ). This draft was ratified with only minor changes.Google ScholarGoogle Scholar
  196. Michael Sperber, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten. 2009a. Revised 6 report on the algorithmic language Scheme. Journal of Functional Programming 19, S1 (August), 1–301. http://www.r6rs.org/final/r6rs.pdf (also at Internet Archive 29 Dec. 2019 12:53:33 ). HTML version at non-archival http://www.r6rs.org/Google ScholarGoogle ScholarDigital LibraryDigital Library
  197. Michael Sperber, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten. 2009b. Revised 6 report on the algorithmic language Scheme—Standard Libraries. Journal of Functional Programming 19, S1 (August), 1–301. non-archival http://www.r6rs.org/final/r6rs- lib.pdf (also at Internet Archive 29 Dec. 2019 12:53:33 ). HTML version at non-archival http://www.r6rs.org/Google ScholarGoogle ScholarDigital LibraryDigital Library
  198. Paul Stansifer. 2016. Flexible binding-safe programming. Ph.D. Dissertation. Northeastern University. https://repository. library.northeastern.edu/files/neu:cj82mb52hGoogle ScholarGoogle Scholar
  199. Paul Stansifer and Mitchell Wand. 2014. Romeo: a system for more flexible binding-safe programming. In Proceedings of the 19th ACM SIGPLAN international conference on Functional programming, Gothenburg, Sweden, September 1-3, 2014. 53–65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  200. Paul Stansifer and Mitchell Wand. 2016. Romeo: A system for more flexible binding-safe programming. J. Funct. Program. 26, e13. Google ScholarGoogle ScholarCross RefCross Ref
  201. Paul Steckler and Mitchell Wand. 1994. Selective Thunkification. In International Static Analysis Symposium. 162–178. Google ScholarGoogle ScholarCross RefCross Ref
  202. Guy Lewis Steele, Jr. 1977. RABBIT: a compiler for Scheme. Master’s thesis. MIT (May). Published as MIT AI Memo 474 [ Steele 1978 ].Google ScholarGoogle Scholar
  203. Guy Lewis Steele, Jr. 1978. RABBIT: a compiler for Scheme. Technical Report 474. (May). https://dspace.mit.edu/handle/1721. 1/6913 . Also at ftp://publications.ai.mit.edu/ai- publications/pdf/AITR- 474.pdf . MIT AI Memo 474.Google ScholarGoogle Scholar
  204. Guy L. Steele, Jr. 1982. An Overview of Common Lisp. In Proceedings of the 1982 ACM Symposium on LISP and Functional Programming (Pittsburgh, Pennsylvania, USA) (LFP âĂŹ82). Association for Computing Machinery (Aug), 98–107. Google ScholarGoogle ScholarDigital LibraryDigital Library
  205. Guy L. Steele, Jr. 1990. Common Lisp the Language, 2nd Edition. Digital Press. https://www.cs.cmu.edu/Groups/AI/html/ cltl/clm/clm.htmlGoogle ScholarGoogle Scholar
  206. Guy L. Steele, Jr., Scott E. Fahlman, Richard P. Gabriel, David A. Moon, and Daniel L. Weinreb. 1984. Common Lisp the Language. Digital Press.Google ScholarGoogle Scholar
  207. Guy L. Steele, Jr. and Richard P. Gabriel. 1993a. The evolution of Lisp. In HOPL-II The second ACM SIGPLAN conference on History of programming languages. ACM (April), 231–270.Google ScholarGoogle Scholar
  208. Guy L. Steele, Jr. and Richard P. Gabriel. 1993b. The evolution of Lisp. non-archival https://www.dreamsongs.com/Files/ HOPL2- Uncut.pdf (also at Internet Archive 20 Dec. 2019 13:43:27 ). “Uncut” draft of Steele and Gabriel [ 1993a ].Google ScholarGoogle Scholar
  209. Guy Lewis Steele, Jr. and Gerald Jay Sussman. 1978. The revised report on Scheme, a dialect of Lisp. MIT AI Memo 452 (January). https://dspace.mit.edu/handle/1721.1/6283Google ScholarGoogle Scholar
  210. Gerald Jay Sussman and Guy Lewis Steele, Jr. 1975. Scheme: an interpreter for extended lambda calculus. Technical Report 349. (Dec). https://dspace.mit.edu/handle/1721.1/5794 MIT AI Memo 349. See also the journal version [ Sussman and Steele 1998 ].Google ScholarGoogle Scholar
  211. Gerald Jay Sussman and Guy Lewis Steele, Jr. 1998. Scheme: an interpreter for extended lambda calculus, Vol. 11. (Dec), Higher-Order and Symbolic Computation 11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  212. Walid Taha and Patricia Johann. 2003. Staged Notational Definitions. In Generative Programming and Component Engineering, Second International Conference, GPCE 2003, Erfurt, Germany, September 22-25, 2003, Proceedings. 97–116. Google ScholarGoogle ScholarCross RefCross Ref
  213. Warren Teitelman. 1974. INTERLISP Reference Manual. Xerox PARC and BBN. http://www.softwarepreservation.org/ projects/LISP/interlisp/Interlisp- Oct_1974.pdf/viewGoogle ScholarGoogle Scholar
  214. André van Tonder. 2005a. SRFI 57: Records. Mar 2005. https://srfi.schemers.org/srfi- 57/ (also at Internet Archive 3 Aug. 2017 01:24:35 ).Google ScholarGoogle Scholar
  215. André van Tonder. 2005b. SRFI 72: Hygienic Macros. Sep 2005. https://srfi.schemers.org/srfi- 72/ (also at Internet Archive 3 Aug. 2017 13:09:43 ).Google ScholarGoogle Scholar
  216. André van Tonder. 2007a. r6rs-discuss email of 26 Jun 2007. Subject: Rationale issues. 26 Jun 2007. non-archival http://lists.r6rs.org/pipermail/r6rs- discuss/2007- June/002825.html (also at Internet Archive 5 July 2008 18:17:28 ).Google ScholarGoogle Scholar
  217. André van Tonder. 2007b. Formal comment #276: Rationale 15.1. 27 Jun 2007. non-archival http://www.r6rs.org/formalcomments/comment- 276.txt (also at Internet Archive 5 July 2008 20:20:05 ).Google ScholarGoogle Scholar
  218. André van Tonder. (no date). R6RS Libraries and Macros. non-archival http://www.het.brown.edu/people/andre/macros/ (also at Internet Archive 26 Sept. 2019 06:39:25 ).Google ScholarGoogle Scholar
  219. R. Mark Volkmann. 2009. Clojure—Functional Programming for the JVM. March 2009. https://objectcomputing.com/resources/publications/sett/march- 2009- clojure- functional- programming- for- the- jvm (also at Internet Archive 7 March 2020 20:42:35 ).Google ScholarGoogle Scholar
  220. Oscar Waddell. 1999. Extending the Scope of Syntactic Abstraction. Ph.D. Dissertation. Indiana University Computer Science Department (August). non-archival http://www.cs.indiana.edu/~owaddell/papers/thesis.ps.gzGoogle ScholarGoogle Scholar
  221. Oscar Waddell and R. Kent Dybvig. 1999. Extending the Scope of Syntactic Abstraction. In Conference Record of POPL’99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. (January).Google ScholarGoogle Scholar
  222. Ken Wakita, Kanako Homizu, and Akira Sasaki. 2014. Hygienic Macro System for JavaScript and Its Light-Weight Implementation Framework. In Proceedings of ILC 2014 on 8th International Lisp Conference (Montreal, QC, Canada) (ILC âĂŹ14). Association for Computing Machinery, 12âĂŞ21. Google ScholarGoogle ScholarDigital LibraryDigital Library
  223. Mitchell Wand. 1984a. RRRS-AUTHORS email with Subject: Revised invitation list. 16 Oct 1984. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  224. Mitchell Wand. 1984b. RRRS-AUTHORS email with Subject: Scheme meeting. 10 Oct 1984. Archived at Internet Archive: https://web.archive.org/web/20100413124637/https://groups.csail.mit.edu/mac/ftpdir/scheme- mail/Google ScholarGoogle Scholar
  225. Gerald M. Weinberg. 1985. The Psychology of Computer Programming. John Wiley and Sons.Google ScholarGoogle ScholarDigital LibraryDigital Library
  226. Daniel Weinreb and David Moon. 1981. Lisp Machine Manual (third ed.). MIT. Second edition at http://www. softwarepreservation.org/projects/LISP/MIT/Weinreb_Moon- Lisp_Machine_Manual_Jan_1979.pdf/viewGoogle ScholarGoogle Scholar
  227. Joseph Weizenbaum. 1968. The Funarg Problem Explained. http://www.softwarepreservation.org/projects/LISP/MIT/ Weizenbaum- F UNARG_Problem_Explained- 1968.pdfGoogle ScholarGoogle Scholar
  228. David Bartley. 1984a. Sep 1984. Email of 14 September 1984, sent to members of the agenda committee.Google ScholarGoogle Scholar
  229. David Bartley. 1984b. TI-CSL Position on “Standardizing” SCHEME. Oct 1984. Email of 17 October 1984.Google ScholarGoogle Scholar
  230. Matthias Blume. 1995. Refining Hygienic Macros for Modules and Separate Compilation. Technical Report ATR Technical Report TR-H-171. http://ttic.uchicago.edu/~blume/papers/hygmac.pdfGoogle ScholarGoogle Scholar
  231. John Clements. 2020. Personal communication.Google ScholarGoogle Scholar
  232. William Clinger and Felix S Klock, II. 2007. ANN: Larceny v0.95 “First Safety”. Posted to the comp.lang.scheme newsgroup. 8 Nov 2007. non-archival https://groups.google.com/d/msg/comp.lang.scheme/fUVX1SYurOQ/MHq4- 6DFofoJGoogle ScholarGoogle Scholar
  233. William D Clinger. 1984a. Aug 1984. A long note, dated 28 August 1984, sent to the six members of the agenda committee before the 1984 meeting at Brandeis, listing known differences between T, Scheme 84, Scheme 312, and MIT Scheme.Google ScholarGoogle Scholar
  234. William D Clinger. 1984b. Sep 1984. Email of September 1984, responding to [na Bartley 1984a ].Google ScholarGoogle Scholar
  235. William D Clinger. 1984c. Oct 1984. Agenda for the October 1984 meeting at Brandeis.Google ScholarGoogle Scholar
  236. William D Clinger. 1984d. Oct 1984. Email to Mitchell Wand on 27 Oct 1984 listing answers to questions considered at the workshop.Google ScholarGoogle Scholar
  237. William D Clinger. 1998. my notes from the Scheme workshop at ICFP98. Posted to comp.lang.scheme. 19 Oct 1998.Google ScholarGoogle Scholar
  238. John Cowan. 2019. Tangerine Edition final results available. Posted to scheme-reports-wg1. 2 Feb 2019. non-archival https://groups.google.com/d/msg/scheme- reports- wg1/Vk8oqyUoLHg/pWW14lcuGAAJGoogle ScholarGoogle Scholar
  239. John Cowan, Will Clinger, Marc Nieper-Wißkirchen, and Alex Shinn. 2016. R7RS-large discussion: Miscellaneous. Posted to scheme-reports-wg2 (Google Groups). Jun 2016. non-archival https://groups.google.com/d/topic/scheme- reportswg2/oKuhgwaM45w/discussion This thread was dominated by the controversy described in Section 14.1 .Google ScholarGoogle Scholar
  240. Justin Ethier. 2013. 10 Sep 2013. non-archival https://stackoverflow.com/questions/18713254/is- there- a- digest- fordifferent- rnrs- scheme- standards Answer given at Stack Overflow on 10 Sep 2013 to the question “Is there a digest for different ’RnRS’ Scheme standards?”.Google ScholarGoogle Scholar
  241. Carol Fessenden, William Clinger, Daniel P Friedman, and Christopher Haynes. 1983. Scheme 311 version 4 reference manual. Technical Report 137. Indiana University Computer Science Department (Feb).Google ScholarGoogle Scholar
  242. John K. Foderaro. 1980. The Franz Lisp Manual: a document in four movements.Google ScholarGoogle Scholar
  243. Daniel P. Friedman, Christopher Haynes, Eugene Kohlbecker, and Mitchell Wand. 1984. Scheme 84 Reference Manual Version 0. Technical Report 153. (Feb). This version of TR 153 was superseded almost a year later by an “interim” manual that was also published as TR 153.Google ScholarGoogle Scholar
  244. Daniel P. Friedman, Christopher Haynes, Eugene Kohlbecker, and Mitchell Wand. 1985. Scheme 84 Interim Reference Manual. Technical Report 153. (Jan). This version of TR 153 was published almost a year after the previous version of TR 153, Version 0.Google ScholarGoogle Scholar
  245. Abdulaziz Ghuloum. 2007. [ANN] Initial release of Ikarus—the compiler of choice for R6RS hackers. Posted to the comp.lang.scheme newsgroup. 31 Oct 2007. non-archival https://groups.google.com/d/msg/comp.lang.scheme/ TrR5TmBUDAo/sknYDNQlVu8JGoogle ScholarGoogle Scholar
  246. Lars Thomas Hansen. 1992. The Impact of Programming Style on the Performance of Scheme Programs. Master’s thesis. University of Oregon (Aug).Google ScholarGoogle Scholar
  247. Chris Hanson. 1984. Oct 1984. Email of 4 October 1984, responding to [na Bartley 1984a ] and [na Clinger 1984b ].Google ScholarGoogle Scholar
  248. Chris Hanson. 1986-2019. MIT/GNU Scheme. non-archival https://www.gnu.org/software/mit- scheme/Google ScholarGoogle Scholar
  249. Secretariat ISO/JTC1/SC22. 1988. Draft Report of the first meeting of SC22/WG16-Lisp held in Paris France on 1988-02-24/25. Apr 1988. SC22 N494, cross referencing SC22 N453.Google ScholarGoogle Scholar
  250. Eugene Kohlbecker. 1984. Position Statement on Macros. Dated 19 October 1984, marked DRAFT, and apparently never published or posted to any mailing list.Google ScholarGoogle Scholar
  251. Steve Lawler. 2004. R4Rs [ sic] vs. R5RS. Posted to a newsgroup. 2 Jun 2004. non-archival http://computer- programmingforum.com/40- scheme/e431f99fab9fd6fe.htm As far as I can gather, the big differences b/n R4 and R5 are the addition of hygienic macros. . .Google ScholarGoogle Scholar
  252. Lightship Software. 1985-1990. MacScheme. Lightship Software.Google ScholarGoogle Scholar
  253. Marco Maggi. 2016a. Hard choices, R6RS, harder to write code. 5 Dec 2016. non-archival http://marcomaggi.github.io/ weblog/weblog- 2016/Dec- 05.html#Dec- 05 These changes will make some fully compatible r6rs code not to compile anymore or raise runâĂŞtime errors. Life is hard.Google ScholarGoogle Scholar
  254. Marco Maggi. 2016b. On naming Vicare. 7 Dec 2016. non-archival http://marcomaggi.github.io/weblog/weblog- 2016/Dec07.html#Dec- 07 But the future of Vicare lies with the typed language, which has incompatibilities with the r6rs language that was the official one in Vicare.Google ScholarGoogle Scholar
  255. MIT. 1981. MIT Scheme, Version 1.Google ScholarGoogle Scholar
  256. Ronald B. Ohlander. 1984. Workshop on Common Lisp. Invitation mailed to ‘key language designers, hardware manufacturers, and research groups’. 16 Aug 1984.Google ScholarGoogle Scholar
  257. Al Petrofsky. 1991. How to write seemingly unhygienic macros using syntax-rules. Posted to the comp.lang.scheme newsgroup. 19 Nov 1991. https://groups.google.com/d/msg/comp.lang.scheme/wyYJ5PwSxSM/cZ9Lrj3ROFQJGoogle ScholarGoogle Scholar
  258. Al Petrofsky. 1992. Holey macros! (was Re: choice for embedding Scheme implementation?). Posted to the comp.lang.scheme newsgroup. 22 May 1992. non-archival https://groups.google.com/d/msg/comp.lang.scheme/KM3P9QAOsqQ/ kWiOThjr7IwJGoogle ScholarGoogle Scholar
  259. Kent Pitman. 1984. Oct 1984. Email of 16 October 1984, listing questions to be resolved at the Brandeis meeting.Google ScholarGoogle Scholar
  260. Christian Queinnec and Julian Padget. 1990. A deterministic model for modules and macros. Technical Report 90-36. http://pagesperso- systeme.lip6.fr/Christian.Queinnec/Papers/modmac2.ps.gzGoogle ScholarGoogle Scholar
  261. Jonathan Rees. 1989. Modular Macros. Master’s thesis. MIT.Google ScholarGoogle Scholar
  262. Jonathan A. Rees, Norman I. Adams, IV, and James R Meehan. 1984. The T Manual (4th ed.). Technical Report. Yale University Computer Science (Jan).Google ScholarGoogle Scholar
  263. Brian Reistad. 1992. Macros That Work in Modula-2. 5 Oct 1992. Undergraduate research project at the University of Oregon.Google ScholarGoogle Scholar
  264. Grant Rettke. 2008a. Re: Was there a schism between R4RS and R5RS? Posted to comp.lang.scheme. 9 Oct 2008. nonarchival https://groups.google.com/d/msg/comp.lang.scheme/KXVg8WRDI- M/fdEdFzQW_KQJ Timeline of macro research from R4RS to R5RS.Google ScholarGoogle Scholar
  265. Grant Rettke. 2008b. Was there a schism between R4RS and R5RS? Posted to comp.lang.scheme. 6 Oct 2008. non-archival https://groups.google.com/d/msg/comp.lang.scheme/KXVg8WRDI- M/KLIGBcFpzFAJ R4RS only suggested macros, though, and didn’t include them in the standard. Why then, did they get added to the standard in R5RS?. . . macros seem like a “big” addition.Google ScholarGoogle Scholar
  266. Alex Shinn. 2010. welcome to working group 1. Posted to scheme-reports-wg1. 9 Feb 2010. non-archival https: //groups.google.com/d/msg/scheme- reports- wg1/Dh6avGU4rqI/F7Xw_qkpa4wJGoogle ScholarGoogle Scholar
  267. Jens Axel Soegaard. 2008. Re: Was there a schism between R4RS and R5RS? Posted to comp.lang.scheme. 6 Oct 2008. non-archivalGoogle ScholarGoogle Scholar
  268. Paul Stansifer. 2016. GitHub comment. 24 May 2016. non-archival https://github.com/rust- lang/rfcs/pull/1561 Gives an example of a macro-defining macro in Rust.Google ScholarGoogle Scholar
  269. Texas Instruments. 1987. PC Scheme source code.Google ScholarGoogle Scholar
  270. Texas Instruments. 1990. PC Scheme User Guide and Software (trade edition ed.). MIT Press.Google ScholarGoogle Scholar

Index Terms

  1. Hygienic macro technology

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image Proceedings of the ACM on Programming Languages
      Proceedings of the ACM on Programming Languages  Volume 4, Issue HOPL
      June 2020
      1524 pages
      EISSN:2475-1421
      DOI:10.1145/3406494
      Issue’s Table of Contents

      Copyright © 2020 Owner/Author

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 12 June 2020
      • Online AM: 7 May 2020
      Published in pacmpl Volume 4, Issue HOPL

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
    • Article Metrics

      • Downloads (Last 12 months)612
      • Downloads (Last 6 weeks)47

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!