skip to main content
10.1145/1159803.1159805acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article

The development of Chez Scheme

Published:16 September 2006Publication History

ABSTRACT

Chez Scheme is now over 20 years old, the first version having been released in 1985. This paper takes a brief look back on the history of Chez Scheme's development to explore how and why it became the system it is today.

References

  1. Harold Abelson, Gerald Jay Sussman, and Julie Sussman. Structure and interpretation of computer programs. MIT Press, Cambridge, MA, USA, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Michael Ashley and R. Kent Dybvig. An efficient implementation of multiple return values in Scheme. In Proceedings of the 1994 ACM Conference on Lisp and Functional Programming, pages 140--149, June 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. G.M. Birtwhistle, O.J. Dahl, B. Myhrhaug, and K. Nygaard. Simula Begin. Chartwell-Bratt Ltd, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Carl Bruggeman, Oscar Waddell, and R. Kent Dybvig. Representing control in the presence of one-shot continuations. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 99--107, May 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Robert G. Burger and R. Kent Dybvig. Printing floating-point numbers quickly and accurately. In Proceedings of the SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 108--116, May 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Robert G. Burger and R. Kent Dybvig. An infrastructure for profiledriven dynamic recompilation. In Proceedings of the IEEE Computer Society 1998 International Conference on Computer Languages, pages 240--251, May 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Robert G. Burger, Oscar Waddell, and R. Kent Dybvig. Register allocation using lazy saves, eager restores, and greedy shuffling. In Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation, pages 130--138, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cadence Research Systems, Bloomington, Indiana. Chez Scheme System Manual, August 1989.Google ScholarGoogle Scholar
  9. Cadence Research Systems, Bloomington, Indiana. Chez Scheme System Manual, Rev. 2.0, December 1990.Google ScholarGoogle Scholar
  10. Cadence Research Systems. Chez Scheme System Manual, Rev. 2.5, October 1994.Google ScholarGoogle Scholar
  11. Luca Cardelli. Compiling a functional language. In LFP '84: Proceedings of the 1984 ACM Symposium on LISP and functional programming, pages 208--217, New York, NY, USA, 1984. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gregory J. Chaitin. Register allocation & spilling via graph coloring. In SIGPLAN '82: Proceedings of the 1982 SIGPLAN symposium on Compiler construction, pages 98--105, New York, NY, USA, 1982. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Rex A. Dwyer and R. Kent Dybvig. A SCHEME for distributed processes. Computer Science Department Technical Report #107, Indiana University, Bloomington, Indiana, April 1981.Google ScholarGoogle Scholar
  14. R. Kent Dybvig. C-Scheme. MasterÆs thesis, Indiana University Computer Science Department Technical Report #149, 1983.Google ScholarGoogle Scholar
  15. R. Kent Dybvig. The Scheme Programming Language. Prentice-Hall, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Kent Dybvig. Three Implementation Models for Scheme. PhD thesis, University of North Carolina Technical Report #87-011, Chapel Hill, April 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Kent Dybvig. Writing hygienic macros in scheme with syntaxcase. Technical Report 356, Indiana University, June 1992.Google ScholarGoogle Scholar
  18. R. Kent Dybvig. The Scheme Programming Language. Prentice Hall, second edition, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Kent Dybvig. Chez Scheme UserÆs Guide. Cadence Research Systems, 1998.Google ScholarGoogle Scholar
  20. R. Kent Dybvig. The Scheme Programming Language. MIT Press, third edition, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. R. Kent Dybvig. Chez Scheme Version 7 UserÆs Guide. Cadence Research Systems, 2005.Google ScholarGoogle Scholar
  22. R. Kent Dybvig, Carl Bruggeman, and David Eby. Guardians in a generation-based garbage collector. In Proceedings of the SIGPLAN '93 Conference on Programming Language Design and Implementation, pages 207--216, June 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. Kent Dybvig, David Eby, and Carl Bruggeman. DonÆt stop the BiBOP: Flexible and efficient storage management for dynamicallytyped languages. Technical Report 400, Indiana Computer Science Department, March 1994.Google ScholarGoogle Scholar
  24. R. Kent Dybvig, Daniel P. Friedman, and Christopher T. Haynes. Expansion-passing style: Beyond conventional macros. In Proceedings of the 1986 ACM Conference on LISP and Functional Programming, pages 143--150, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. R. Kent Dybvig, Daniel P. Friedman, and Christopher T. Haynes. Expansion-passing style: A general macro mechanism. Lisp and Symbolic Computation, 1 1):53--75, 1988.Google ScholarGoogle ScholarCross RefCross Ref
  26. R. Kent Dybvig and Robert Hieb. A variable-arity procedural interface. In Proceedings of the 1988 ACM Conference on Lisp and Functional Programming, pages 106--115, July 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. R. Kent Dybvig and Robert Hieb. Engines from continuations. Computer Languages, 14(2):109--123, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. R. Kent Dybvig and Robert Hieb. A new approach to procedures with variable arity. Lisp and Symbolic Computation, 3(3):229--244, September 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. R. Kent Dybvig, Robert Hieb, and Carl Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation, 5(4):295--326, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. R. Kent Dybvig, Robert Hieb, and Tom Butler. Destination-driven code generation. Technical Report 302, Indiana Computer Science Department, February 1990.Google ScholarGoogle Scholar
  31. R. Kent Dybvig and Bruce T. Smith. Chez Scheme Reference Manual, Version 1. 0. Cadence Research Systems, Chapel Hill, North Carolina, May 1985.Google ScholarGoogle Scholar
  32. Robert E. Filman and Daniel P. Friedman. Coordinated computing: tools and techniques for distributed software. McGraw-Hill, Inc., New York, NY, USA, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. John K. Foderaro, Keith L. Sklower, and Kevin Layer. The Franz LISP Manual. University of California, Berkeley, 1983.Google ScholarGoogle Scholar
  34. Per Brinch Hansen. Distributed processes: a concurrent programming concept. Communications of the ACM, 21(11):934--941, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Christopher T. Haynes and Daniel P. Friedman. Abstracting timed preemption with engines. Computer Languages, 12(2):109--121, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Robert Hieb, R. Kent Dybvig, and Carl Bruggeman. Representing control in the presence of first-class continuations. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 66--77, June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Robert Hieb, R. Kent Dybvig, and Carl Bruggeman. Syntactic abstraction in scheme. Technical Report 355, Indiana University, June 1992.Google ScholarGoogle Scholar
  38. Suresh Jagannathan and Andrew Wright. Flow-directed inlining. In Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 193--205, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. B.W. Kernighan and D.M. Ritchie. The C Programming Language. Prentice-Hall, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Brian W. Kernighan and Dennis M. Ritchie. The M4 Macro Processor, 1979.Google ScholarGoogle Scholar
  41. Eugene Kohlbecker. Syntactic Extensions in the Programming Language Lisp. PhD thesis, Indiana University, Bloomington, August 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Eugene Kohlbecker, Daniel P. Friedman, Matthias Felleisen, and Bruce Duba. Hygienic macro expansion. In Proceedings of the 1986 ACM Conference on LISP and Functional Programming, pages 151--161, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Henry Lieberman and Carl Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419--429, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Gyula Mago. A cellular computer architecture for functional programming. In Proc. COMPCON Spring, IEEE Comp. Soc. Conf., pages 179--187, 1980.Google ScholarGoogle Scholar
  45. John McCarthy, Paul W. Abrahams, Daniel J. Edwards, Timothy P. Hart, and Michael I. Levin. LISP 1.5 ProgrammerÆs Manual. The MIT Press, Cambridge, Mass., 1966. second edition.Google ScholarGoogle Scholar
  46. Brian Randell and Lawford J. Russell. ALGOL 60 Implementation. Academic Press, London, 1964. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Jonathan A. Rees and Norman I. Adams IV. T: a dialect of lisp or lambda: The ultimate software tool. In LFP '82: Proceedings of the 1982 ACM symposium on LISP and functional programming, pages 114--122, New York, NY, USA, 1982. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Digital Research. CP/M Operating System Manual. Pacific Grove, CA, USA, 1976.Google ScholarGoogle Scholar
  49. Robert A. Saunders. The LISP system for the q-32 computer. In Edmund C. Berkeley and Daniel G. Bobrow, editors, The Programming Language LISP: Its Operation and Applications. Information International, Inc. and MIT Press, 1964.Google ScholarGoogle Scholar
  50. Patrick G. Sobalvarro. A lifetime-based garbage collector for LISP systems on general-purpose computers. B. S. Thesis, Massachusetts Institute of Technology, Electrical Engineering and Computer Science Department, Cambridge, MA., September 1988.Google ScholarGoogle Scholar
  51. Guy L. Steele Jr. Data representation in PDP-10 MACLISP. MIT AI Memo 421, Massachusetts Institute of Technology, September 1977.Google ScholarGoogle Scholar
  52. Guy L. Steele Jr. and Gerald J. Sussman. The revised report on Scheme, a dialect of Lisp. MIT AI Memo 452, Massachusetts Institute of Technology, January 1978.Google ScholarGoogle Scholar
  53. Guy L. Steele Jr. and Jon L. White. How to print floating-point numbers accurately. ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, 25(6):112--126, June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. David Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In SDE 1: Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments, pages 157--167, New York, NY, USA, 1984. ACM Press. Google ScholarGoogle ScholarCross RefCross Ref
  55. Oscar Waddell and R. Kent Dybvig. Fast and effective procedure inlining. In Proceedings of the Fourth International Symposium on Static Analysis, volume 1302 of Lecture Notes in Computer Science, pages 35--52. Springer-Verlag, September 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Oscar Waddell and R. Kent Dybvig. Extending the scope of syntactic abstraction. In Conference Record of the Twenty Sixth Annual ACM Symposium on Principles of Programming Languages, pages 203--213, January 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Oscar Waddell, Dipanwita Sarkar, and R. Kent Dybvig. Fixing letrec: A faithful yet efficient implementation of Scheme's recursive binding construct. Higher-order and and symbolic computation, 18(3/4):299--326, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The development of Chez Scheme

          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
          • Published in

            cover image ACM Conferences
            ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
            September 2006
            308 pages
            ISBN:1595933093
            DOI:10.1145/1159803
            • General Chair:
            • John Reppy,
            • Program Chair:
            • Julia Lawall
            • cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 41, Issue 9
              Proceedings of the 2006 ICFP conference
              September 2006
              296 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/1160074
              Issue’s Table of Contents

            Copyright © 2006 ACM

            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]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 16 September 2006

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            Overall Acceptance Rate333of1,064submissions,31%

            Upcoming Conference

            ICFP '24

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader