Advertisement

LISP and Symbolic Computation

, Volume 7, Issue 4, pp 315–335 | Cite as

A tractable Scheme implementation

  • Richard A. Kelsey
  • Jonathan A. Rees
Article

Abstract

Scheme 48 is an implementation of the Scheme programming language constructed with tractability and reliability as its primary design goals. It has the structural properties of large, compiler-based Lisp implementations: it is written entirely in Scheme, is bootstrapped via its compiler, and provides numerous language extensions. It controls the complexity that ordinarily attends such large Lisp implementations through clear articulation of internal modularity and by the exclusion of features, optimizations, and generalizations that are of only marginal value.

Keywords

byte-code interpreters virtual machines modularity Scheme partial evaluation layered design 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    William Clinger. The Scheme 311 Compiler: An exercise in denotational semantics. InProc. 1984 ACM Symposium on Lisp and Functional Programming, pages 356–364, August 1984.Google Scholar
  2. 2.
    William Clinger and Jonathan Rees. Macros that work. InConf. Rec. 18 ACM Symposium on Principles of Programming Languages, 1991.Google Scholar
  3. 3.
    William Clinger and Jonathan Rees. Revised4 report on the algorithmic language Scheme.ACM Lisp Pointers, 4(3):1–55, 1991.Google Scholar
  4. 4.
    Pavel Curtis and James Rauen. A module system for Scheme. InProc. 1990 ACM Symposium on Lisp and Functional Programming, pages 13–19, 1990.Google Scholar
  5. 5.
    Chris Hanson. Efficient stack allocation for tail recursive languages. InProc. 1990 ACM Symposium on Lisp and Functional Programming, 1990.Google Scholar
  6. 6.
    IEEE Std 1178-1990.IEEE Standard for the Scheme Programming Language. Institute of Electrical and Electronic Engineers, Inc., New York, NY, 1991.Google Scholar
  7. 7.
    Richard Kelsey. Tail-recursive stack disciplines for an interpreter. Technical Report NU-CCS-93-03, Northeastern University College of Computer Science, Boston, MA, 1992.Google Scholar
  8. 8.
    Richard Kelsey and Paul Hudak. Realistic compilation by program transformation. InConf. Rec. 16 ACM Symposium on Principles of Programming Languages, pages 281–292, 1989.Google Scholar
  9. 9.
    Peter Lee.Topics in Advanced Language Implementation. MIT Press, Cambridge, MA, 1991.Google Scholar
  10. 10.
    David B. MacQueen. Modules for Standard ML. InProc. 1984 ACM Symposium on Lisp and Functional Programming, pages 198–207, 1984.Google Scholar
  11. 11.
    Jonathan Rees and Bruce Donald. Program mobile robots in Scheme. InProceedings of the 1992 IEEE International Conference on Robotics and Automation, pages 2681–2688, 1992.Google Scholar
  12. 12.
    Guy L. Steele.Common Lisp: the Language. Digital Press, Burlington MA, second edition, 1990.Google Scholar
  13. 13.
    D. Tarditi, A. Acharya, and P. Lee. No assembly required: Compiling Standard ML to C. Technical report, School of Computer Science, Carnegie Mellon University, 1991.Google Scholar
  14. 14.
    l R. Wilson, Micheal S Lam, and Thomas G. Moher. Effective “static-graph” reorganization to improve locality in garbage collected systems. InProceedings of the Sigplan 1988 Conference on Programming Language Design and Implementation, 1991.Google Scholar
  15. 15.
    Paul R. Wilson and Thomas G. Moher. Design of the opportunistic garbage collector. InProceedings of the Sigplan 1989 Conference on Object-Oriented Programming: Systems, Languages, and Applications, 1989.Google Scholar

Copyright information

© Kluwer Academic Publishers 1994

Authors and Affiliations

  • Richard A. Kelsey
    • 1
  • Jonathan A. Rees
    • 2
  1. 1.NEC Research InstituteUSA
  2. 2.MIT and Cornell UniversityUSA

Personalised recommendations