skip to main content
article

Implicit phasing for R6RS libraries

Published:01 October 2007Publication History
Skip Abstract Section

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.

References

  1. R. Kent Dybvig. Chez Scheme Version 7 User's Guide. Cadence Research Systems, 2005.Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle Scholar
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice Hall, second edition, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle Scholar
  10. 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 ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. Felix Winkelmann. CHICKEN User's Manual, 2007.Google ScholarGoogle Scholar

Index Terms

  1. Implicit phasing for R6RS libraries

      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 ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 42, Issue 9
        Proceedings of the ICFP '07 conference
        September 2007
        331 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1291220
        Issue’s Table of Contents
        • cover image ACM Conferences
          ICFP '07: Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
          October 2007
          346 pages
          ISBN:9781595938152
          DOI:10.1145/1291151

        Copyright © 2007 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 October 2007

        Check for updates

        Qualifiers

        • article

      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!