A closer look at export and import statements
Computer Languages
Object-oriented programming in scheme
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
A unified system of parameterization for programming languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
The definition of Standard ML
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
Free variables and first-class environments
Lisp and Symbolic Computation
The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
Protection in programming languages
Communications of the ACM
Revised report on the algorithmic language scheme
ACM SIGPLAN Lisp Pointers
Compiling a functional language
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Metalevel building blocks for modular systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Enriching the lambda calculus with contexts: toward a theory of incremental program construction
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Sharing code through first-class environments
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Dynamic rebinding for marshalling and update, with destruct-time ?
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction
Journal of Functional Programming
A class-based object calculus of dynamic binding: reduction and properties
SC'06 Proceedings of the 5th international conference on Software Composition
Hi-index | 0.00 |
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.