skip to main content
article
Free Access

Shallow binding in Lisp 1.5

Published:01 July 1978Publication History
Skip Abstract Section

Abstract

Shallow binding is a scheme which allows the value of a variable to be accessed in a bounded amount of computation. An elegant model for shallow binding in Lisp 1.5 is presented in which context-switching is an environment tree transformation called rerooting. Rerooting is completely general and reversible, and is optional in the sense that a Lisp 1.5 interpreter will operate correctly whether or not rerooting is invoked on every context change. Since rerooting leaves assoc [v, a] invariant, for all variables v and all environments a, the programmer can have access to a rerooting primitive, shallow[], which gives him dynamic control over whether accesses are shallow or deep, and which affects only the speed of execution of a program, not its semantics. In addition, multiple processes can be active in the same environment structure, so long as rerooting is an indivisible operation. Finally, the concept of rerooting is shown to combine the concept of shallow binding in Lisp with Dijkstra's display for Algol and hence is a general model for shallow binding.

References

  1. 1 Bobrow, D.G., and Wegbreit, B. A model and stack implementation of multiple environments. Comm. A CM 16, 10(Oct. 1973), 591-603. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 Galley, S., and Pfister, G. The MDL Language. Programming Technology Division SYS. 11.01. Proj. MAC, M.I.T., Cambridge, Mass., Sept. 1975.Google ScholarGoogle Scholar
  3. 3 Greenblatt, R. The Lisp Machine. A.I. Working Paper 79, M.I.T. A.I. Lab., Cambridge, Mass., Nov. 1974.Google ScholarGoogle Scholar
  4. 4 Henhapl, W., and Jones, C.B. A run-time mechanism for referencing variables. Inform. Processing Letters 1 (1971), 14-16.Google ScholarGoogle ScholarCross RefCross Ref
  5. 5 Knuth, D. The Art of Computer Programming, Vol. 1: Fundamental Algorithms. Addison-Wesley, Reading, Mass., 1968, p. 417. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 McCarthy, J., Abrahams, P., Edwards, D., Hart, T., and Levin, M. LISP 1.5 Programmer's Manual. M.I.T. Press, Cambridge, Mass., 1965, especially pp. 12-13, 70-71. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 Moon, D. MACLISP Reference Manual, Revision 0. Proj. MAC, M.I.T., Cambridge, Mass., 1974.Google ScholarGoogle Scholar
  8. 8 Moses, J. The function of FUNCTION in LISP. Memo 199, M.I.T.A.I. Lab., Cambridge, Mass., June 1970.Google ScholarGoogle Scholar
  9. 9 Randell, B., and Russell, LJ. ALGOL 60 Implementation. Academic Press, London and New York, 1964, pp. 65-68, 75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Teitelman, W. InterLISP Reference Manual. Xerox Palo Alto Res. Ctr., Palo Alto, Calif., 1974.Google ScholarGoogle Scholar

Index Terms

  1. Shallow binding in Lisp 1.5

    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

    Full Access

    • Published in

      cover image Communications of the ACM
      Communications of the ACM  Volume 21, Issue 7
      July 1978
      86 pages
      ISSN:0001-0782
      EISSN:1557-7317
      DOI:10.1145/359545
      Issue’s Table of Contents

      Copyright © 1978 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: 1 July 1978

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader