A Syntactic Theory of Dynamic Binding
Higher-Order and Symbolic Computation
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Expressive scoping of dynamically-deployed aspects
Proceedings of the 7th international conference on Aspect-oriented software development
A semantics for context-oriented programming with layers
International Workshop on Context-Oriented Programming
A semantics for context-oriented programming with layers
International Workshop on Context-Oriented Programming
Beyond static and dynamic scope
DLS '09 Proceedings of the 5th symposium on Dynamic languages
The Cartesian approach to context
Proceedings of the 2nd International Workshop on Context-Oriented Programming
Closure joinpoints: block joinpoints without surprises
Proceedings of the tenth international conference on Aspect-oriented software development
Formalising security in ubiquitous and cloud scenarios
CISIM'12 Proceedings of the 11th IFIP TC 8 international conference on Computer Information Systems and Industrial Management
Hi-index | 0.00 |
Context-oriented programming treats execution context explicitly and provides means for context-dependent adaptation at runtime. This is achieved, for example, using dynamic layer activation and contextual dispatch, where the context consists of a layer environment of a stack of active layers. Layers can adapt existing behaviour using proceed to access earlier activated layers. A problem arises when a call to proceed is made from within a closure that escapes the layer environment in which it was defined. It is not clear how to interpret proceed when the closure is subsequently applied in a different environment, because the layers it implicitly refers to (such as the original layer and/or the remaining layers) may no longer be active. In this paper, we describe this problem in detail and present some approaches for dealing with it, though ultimately we leave the question open.