Abstract
The forthcoming Revised6 Report on Scheme differs from previous reports in that the language it describes is structured as a set of libraries. It also provides a syntax for defining new portable libraries. The same library may export both procedure and hygienic macro definitions, which allows procedures and syntax to be freely intermixed, hidden, and exported.
This paper describes the design and implementation of a portable version of R6RS libraries that expands libraries into a core language compatible with existing R5RS implementations. Our implementation is characterized by its use of inference to determine when the bindings of an imported library are needed, e.g., run time or compile time, relieving programmers of the burden of declaring usage requirements explicitly.
- R. Kent Dybvig. Chez Scheme Version 7 User's Guide. Cadence Research Systems, 2005.Google Scholar
- R. Kent Dybvig. Writing hygienic macros in Scheme with syntax-case. Technical Report TR 356, Indiana University, 1992. URL citeseer.ist.psu.edu/dybvig92writing.html.Google Scholar
- R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation, 5(4):295--326, 1992. URL citeseer.ist.psu.edu/article/dybvig93syntactic.html. Google Scholar
Digital Library
- R. Kent Dybvig, Abdulaziz Ghuloum, and André van Tonder. R5.91rs library and syntax-case reference implementations, 2006. URL http://www.r6rs.org/refimpl/r6rs-syntax-case.tar.gz.Google Scholar
- Matthew Flatt. Composable and compilable macros: You want it when? In ICFP '02: Proceedings of the seventh ACM SIGPLAN International Conference on Functional Programming, pages 72--83, 2002. URL http://doi.acm.org/10.1145/581478.581486. Google Scholar
Digital Library
- Richard Kelsey, William Clinger, and Jonathan Rees (Editors). Revised5 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 3(9):26--76, 1998. URL citeseer.ist.psu.edu/kelsey98revised.html. Google Scholar
Digital Library
- Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice Hall, second edition, 1988. Google Scholar
Digital Library
- Eugene Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic macro expansion. In LFP '86: Proceedings of the 1986 ACM Conference on LISP and Functional Programming, pages 151--161, New York, NY, USA, 1986. ACM Press. ISBN 0-89791-200-4. doi: http://doi.acm.org/10.1145/319838.319859. Google Scholar
Digital Library
- Michael Sperber, William Clinger, R. Kent Dybvig, Matthew Flatt, Anton van Straaten, Richard Kelsey, and Jonathan Rees. Revised (5.91) report on the algorithmic language Scheme, September 2006. URL http://www.r6rs.org/versions/r6rs_91.pdf. With H. Abelson, N. I. Adams, IV, D. H. Bartley, G. Brooks, R. B. Findler, D. P. Friedman, R. Halstead, C. Hanson, C. T. Haynes, E. Kohlbecker, J. Matthews, D. Oxley, K. M. Pitman, G. J. Rozas, G. L. Steele, Jr., G. J. Sussman, and M. Wand.Google Scholar
- Michael Sperber, William Clinger, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten. Revised (5.92) report on the algorithmic language Scheme, January 2007a. URL http://www.r6rs.org/versions/r6rs_92.pdf. With R. Kelsey, J. Rees, R. B. Findler, and J. Matthews.Google Scholar
- Michael Sperber, R. Kent Dybvig, Matthew Flatt, and Anton van Straaten. Revised (5.97) report on the algorithmic language Scheme, June 2007b. URL http://www.r6rs.org/versions/r5.97rs.pdf. With R. Kelsey, W. Clinger, J. Rees, R. B. Findler, and J. Matthews.Google Scholar
- Oscar Waddell. Extending the Scope of Syntactic Abstraction. PhD thesis, Indiana University Computer Science Department, August 1999. URL http://cs.indiana.edu/~owaddell/papers/thesis.ps.gz. Google Scholar
Digital Library
- Oscar Waddell and R. Kent Dybvig. Extending the scope of syntactic abstraction. In Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas, pages 203--213, New York, NY, 1999. URL citeseer.ist.psu.edu/waddell99extending.html. Google Scholar
Digital Library
- Oscar Waddell, Dipanwita Sarkar, and R. Kent Dybvig. Fixing letrec: A faithful yet efficient implementation of Scheme's recursive binding construct. Higher Order Symbol. Comput., 18(3-4):299--326, 2005. ISSN 1388-3690. doi: http://dx.doi.org/10.1007/s10990-005-4878-3. Google Scholar
Digital Library
- Felix Winkelmann. CHICKEN User's Manual, 2007.Google Scholar
Index Terms
Implicit phasing for R6RS libraries
Recommendations
Implicit phasing for R6RS libraries
ICFP '07: Proceedings of the 12th ACM SIGPLAN international conference on Functional programmingThe forthcoming Revised6 Report on Scheme differs from previous reports in that the language it describes is structured as a set of libraries. It also provides a syntax for defining new portable libraries. The same library may export both procedure and ...
SugarJ: library-based syntactic language extensibility
OOPSLA '11: Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applicationsExisting approaches to extend a programming language with syntactic sugar often leave a bitter taste, because they cannot be used with the same ease as the main extension mechanism of the programming language - libraries. Sugar libraries are a novel ...
SugarJ: library-based syntactic language extensibility
OOPSLA '11Existing approaches to extend a programming language with syntactic sugar often leave a bitter taste, because they cannot be used with the same ease as the main extension mechanism of the programming language - libraries. Sugar libraries are a novel ...







Comments