[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/1291151.1291197acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

Implicit phasing for R6RS libraries

Published: 01 October 2007 Publication History

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.
[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.
[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.
[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.
[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.
[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.
[7]
Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice Hall, second edition, 1988.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[15]
Felix Winkelmann. CHICKEN User's Manual, 2007.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

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
  • 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
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. binding phases
  2. hygienic macros
  3. libraries
  4. macro expansion
  5. scheme

Qualifiers

  • Article

Conference

ICFP07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 333 of 1,064 submissions, 31%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 23 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2016)MacroficationProceedings of the 25th European Symposium on Programming Languages and Systems - Volume 963210.5555/3089528.3089553(644-671)Online publication date: 2-Apr-2016
  • (2016)Macrofication: Refactoring by Reverse Macro ExpansionProgramming Languages and Systems10.1007/978-3-662-49498-1_25(644-671)Online publication date: 2016
  • (2014)Sweeten your JavaScriptACM SIGPLAN Notices10.1145/2775052.266109750:2(35-44)Online publication date: 14-Oct-2014
  • (2014)Sweeten your JavaScriptProceedings of the 10th ACM Symposium on Dynamic languages10.1145/2661088.2661097(35-44)Online publication date: 20-Oct-2014
  • (2013)Submodules in racketACM SIGPLAN Notices10.1145/2637365.251721149:3(13-22)Online publication date: 27-Oct-2013
  • (2013)A nanopass framework for commercial compiler developmentACM SIGPLAN Notices10.1145/2544174.250061848:9(343-350)Online publication date: 25-Sep-2013
  • (2013)Submodules in racketProceedings of the 12th international conference on Generative programming: concepts & experiences10.1145/2517208.2517211(13-22)Online publication date: 27-Oct-2013
  • (2013)A nanopass framework for commercial compiler developmentProceedings of the 18th ACM SIGPLAN international conference on Functional programming10.1145/2500365.2500618(343-350)Online publication date: 25-Sep-2013
  • (2022)Myths and mythconceptions: what does it mean to be a programming language, anyhow?Proceedings of the ACM on Programming Languages10.1145/34809474:HOPL(1-44)Online publication date: 4-Apr-2022
  • (2020)Verilog HDL and its ancestors and descendantsProceedings of the ACM on Programming Languages10.1145/33863374:HOPL(1-90)Online publication date: 12-Jun-2020
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media