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.
Similar content being viewed by others
References
Abelson, Harold, Sussman, Gerald Jay, and Sussman, Julie.Structure and Interpretation of Computer Programs. MIT Press (1985).
Adams, Norman and Rees, Jonathan. Object-oriented programming in scheme. InACM Symp. on Lisp and Functional Programming, Snowbird, Utah (July 1988) 277–288.
Friedman, Daniel, Haynes, Christopher, and Kohlbecker, Eugene. Programming with continuations. In Pepper, P. editor,Program Transformation and Programming Environments, Springer-Verlag (1984) 263–274.
Halfant, Matthew and Sussman, Gerald J. Abstraction in numerical methods. InACM Symp. on Lisp and Functional Programming, Snowbird, Utah (July 1988) 1–7.
Haynes, Christopher, Friedman, Daniel, and Wand, Mitchell. Continuations and coroutines. InACM Symp. on Lisp and Functional Programming, ACM (1984) 293–298.
Lang, Kevin J. and Pearlmutter, Barak, A. Oaklisp: an object-oriented dialect of scheme.Lisp and Symbolic Computation, 1 1 (June 1988) 39–51.
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.
Moon, Davidet al. Maclisp Manual. Technical Report, Mass. Inst. of Technology, Artificial Intelligence Laboratory (1978).
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.
Rees, Jonathan, Adams, Norman, and Meehan, James.The T Manual. Technical Report, Yale University (January 1984). Fourth edition.
Roylance, Gerald. Expressing mathematical subroutines constructively. InACM Symp. on Lisp and Functional Programming, Snowbird, Utah (July 1988) 8–13.
Steele Jr., Guy Lewis.Common LISP The Language. Digital Press (1984).
Author information
Authors and Affiliations
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
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
Issue Date:
DOI: https://doi.org/10.1007/BF01813016