|
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
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
Galley, S., and Pfister, G. The MDL Language. Programming Technology Division SYS. 11.01. Proj. MAC, M.I.T., Cambridge, Mass., Sept. 1975.
|
| |
3
|
Greenblatt, R. The Lisp Machine. A.I. Working Paper 79, M.I.T. A.I. Lab., Cambridge, Mass., Nov. 1974.
|
| |
4
|
Henhapl, W., and Jones, C.B. A run-time mechanism for referencing variables. Inform. Processing Letters 1 (1971), 14-16.
|
| |
5
|
|
| |
6
|
|
| |
7
|
Moon, D. MACLISP Reference Manual, Revision 0. Proj. MAC, M.I.T., Cambridge, Mass., 1974.
|
| |
8
|
Moses, J. The function of FUNCTION in LISP. Memo 199, M.I.T.A.I. Lab., Cambridge, Mass., June 1970.
|
| |
9
|
|
| |
10
|
Teitelman, W. InterLISP Reference Manual. Xerox Palo Alto Res. Ctr., Palo Alto, Calif., 1974.
|
CITED BY 29
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kazuhiro Fuchi , Robert Kowalski , Koichi Furukawa , Kazunori Ueda , Ken Kahn , Takashi Chikayama , Evan Tick, Launching the new era, Communications of the ACM, v.36 n.3, p.49-100, March 1993
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Julian Padget , Jérôme Chailloux , Thomas Christaller , Ramon DeMantaras , Jeff Dalton , Matthieu Devin , John Fitch , Timm Krumnack , Eugen Neidl , Eric Papon , Stephen Pope , Christian Queinnec , Luc Steels , Herbert Stoyan, Desiderata for the standardization of LISP, Proceedings of the 1986 ACM conference on LISP and functional programming, p.54-66, August 1986, Cambridge, Massachusetts, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tyng-Ruey Chuang , Benjamin Goldberg, Real-time deques, multihead Turing machines, and purely functional programming, Proceedings of the conference on Functional programming languages and computer architecture, p.289-298, June 09-11, 1993, Copenhagen, Denmark
|
|
|
R. R. Kessler , J. C. Peterson , H. Carr , G. P. Duggan , J. Knell, EPIC - a retargetable, highly optimizing Lisp compiler, ACM SIGPLAN Notices, v.21 n.7, p.118-130, July 1986
|
|
|
G. Stefan , A. Paun , V. Bistriceanu , A. Birnbaum, DIALISP - a LISP machine, Proceedings of the 1984 ACM Symposium on LISP and functional programming, p.123-128, August 06-08, 1984, Austin, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Akihiko Tozawa , Michiaki Tatsubori , Tamiya Onodera , Yasuhiko Minamide, Copy-on-write in the PHP language, Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, January 21-23, 2009, Savannah, GA, USA
|
|