Skip to main content
Log in

Free variables and first-class environments

  • Published:
LISP and Symbolic Computation

Abstract

A simple set of extensions to theSCHEME language removes the need for a distinguished top level interaction environment by providing first-class environments. These extensions also provide a powerful mechanism for code packaging and may be used to implement simple object-oriented systems. In addition, a mechanism is presented that implements compiled references to free variables as efficiently as in languages likeC, provided the code does not directly manipulate first-class environments. The mechanism requires a simple static analysis performed by the compiler and meshes with a slower mechanism used by both interpreted code and compiled code that manipulates first-class environments.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Abelson, Harold, Sussman, Gerald Jay, and Sussman, Julie.Structure and Interpretation of Computer Programs. MIT Press (1985).

  2. Adams, Norman and Rees, Jonathan. Object-oriented programming in scheme. InACM Symp. on Lisp and Functional Programming, Snowbird, Utah (July 1988) 277–288.

  3. Friedman, Daniel, Haynes, Christopher, and Kohlbecker, Eugene. Programming with continuations. In Pepper, P. editor,Program Transformation and Programming Environments, Springer-Verlag (1984) 263–274.

  4. Halfant, Matthew and Sussman, Gerald J. Abstraction in numerical methods. InACM Symp. on Lisp and Functional Programming, Snowbird, Utah (July 1988) 1–7.

  5. Haynes, Christopher, Friedman, Daniel, and Wand, Mitchell. Continuations and coroutines. InACM Symp. on Lisp and Functional Programming, ACM (1984) 293–298.

  6. Lang, Kevin J. and Pearlmutter, Barak, A. Oaklisp: an object-oriented dialect of scheme.Lisp and Symbolic Computation, 1 1 (June 1988) 39–51.

    Google Scholar 

  7. Miller, James.MultiScheme: A Parallel Processing System Based on MIT Scheme. PhD thesis, Mass. Inst. of Technology (August 1987). Available as MIT LCS/TR/402.

  8. Moon, Davidet al. Maclisp Manual. Technical Report, Mass. Inst. of Technology, Artificial Intelligence Laboratory (1978).

  9. Rees, Jonathan and (editors), William Clinger. Revised3 report on the algorithmic language scheme.ACM Sigplan Notices, 21, 12 (December 1986). Also available as MIT AI Memo 818a.

  10. Rees, Jonathan, Adams, Norman, and Meehan, James.The T Manual. Technical Report, Yale University (January 1984). Fourth edition.

  11. Roylance, Gerald. Expressing mathematical subroutines constructively. InACM Symp. on Lisp and Functional Programming, Snowbird, Utah (July 1988) 8–13.

  12. Steele Jr., Guy Lewis.Common LISP The Language. Digital Press (1984).

Download references

Author information

Authors and Affiliations

Authors

Additional information

Author's new affiliation is Digital Equipment Corporation, Cambridge Research Facility

The authors want to express their gratitude to Christopher Hanson of the MIT Scheme Team for his help with an early version of this paper and his invaluable comments on several subsequent drafts. Prof. Harold Abelson of MIT provided encouragement and also contributed a number of helpful comments.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Miller, J.S., Rozas, G.J. Free variables and first-class environments. Lisp and Symbolic Computation 4, 107–141 (1991). https://doi.org/10.1007/BF01813016

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01813016

Keywords

Navigation