ACM Home Page
Please provide us with feedback. Feedback
Shallow binding in Lisp 1.5
Full text PdfPdf (492 KB)
Source
Communications of the ACM archive
Volume 21 ,  Issue 7  (July 1978) table of contents
Pages: 565 - 569  
Year of Publication: 1978
ISSN:0001-0782
Author
Henry G. Baker, Jr.  Massachusetts Institute of Technology, Cambridge
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 34,   Citation Count: 29
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/359545.359566
What is a DOI?

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

Collaborative Colleagues:
Henry G. Baker, Jr.: colleagues