Affiliation:
1. Massachusetts Institute of Technology, Cambridge
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.
Publisher
Association for Computing Machinery (ACM)
Cited by
37 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Snapshottable Stores;Proceedings of the ACM on Programming Languages;2024-08-15
2. Gale-Shapley Verified;Journal of Automated Reasoning;2024-06
3. Compiler and runtime support for continuation marks;Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation;2020-06-06
4. Copy-on-write in the PHP language;ACM SIGPLAN Notices;2009-01-21
5. Delimited dynamic binding;ACM SIGPLAN Notices;2006-09-16