|
ABSTRACT
Static scoping embodies a strong encapsulation mechanism for hiding the details of program units. Yet, it does not allow the sharing of variable bindings (locations) across independent program units. Facilities such as module and object systems that require cross references of variables therefore must be added as special features. In this paper we present an alternative: quasi-static scoping. Quasi-static scoping is more flexible than static scoping, but has the same encapsulation mechanism. The user can control when and in what scope to resolve a quasi-static variable, i.e., to associate it with a variable binding. To demonstrate its versatility, we add quasi-static scoping to Scheme and show how to build the aforementioned facilities at the user-level. We also show that quasi-static scoping can be implemented efficiently.
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.
 |
2
|
|
 |
3
|
|
 |
4
|
H. Abelson , R. K. Dybvig , C. T. Haynes , G. J. Rozas , N. I. Adams, IV , D. P. Friedman , E. Kohlbecker , G. L. Steele, Jr. , D. H. Bartley , R. Halstead , D. Oxley , G. J. Sussman , G. Brooks , C. Hanson , K. M. Pitman , M. Wand , William Clinger , Jonathan Rees, Revised report on the algorithmic language scheme, ACM SIGPLAN Lisp Pointers, v.IV n.3, p.1-55, July, 1991
[doi> 10.1145/382130.382133]
|
 |
5
|
|
| |
6
|
E. W. Dijkstra. Algol 60 translation. Supplement AL- GOL Bulletin 1 O, 1960.
|
| |
7
|
|
| |
8
|
|
| |
9
|
S. Jagannathan. RReflective building blocks for modular systems. To appear in the IMSA '92 International Workshop on RReflection and Mete-Level Architecture.
|
 |
10
|
|
| |
11
|
K. J. Lang and B. A. Pearlmutter. OaklJsp: An objectoriented dialect of Scheme. Lisp and Symbolic Computation, 1(1):39-51, 1988.
|
| |
12
|
|
| |
13
|
|
 |
14
|
|
| |
15
|
K. Nermark. Simulation of object-oriented concepts and mechanisms in Scheme. Technical Report tt 90- 01, Institute of Electronic Systems, Aalborg University, January 1990.
|
| |
16
|
|
| |
17
|
G. D. Plotkin. Call-by-name, call-by-v~ue and the )t-calculus. Theoretical Computer Science, 1:125-159, 1975.
|
| |
18
|
|
CITED BY 7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gavin Bierman , Michael Hicks , Peter Sewell , Gareth Stoyle , Keith Wansbrough, Dynamic rebinding for marshalling and update, with destruct-time ?, ACM SIGPLAN Notices, v.38 n.9, p.99-110, September 2003
|
|
|
Peter Sewell , Gareth Stoyle , Michael Hicks , Gavin Bierman , Keith Wansbrough, Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction, Journal of Functional Programming, v.18 n.4, p.437-502, July 2008
|
|