Some computer science issues in ubiquitous computing
Communications of the ACM - Special issue on computer augmented environments: back to the real world
A tractable Scheme implementation
Lisp and Symbolic Computation
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Implicit context: easing software evolution and reuse
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Essentials of programming languages (2nd ed.)
Essentials of programming languages (2nd ed.)
The what, who, where, when, why and how of context-awareness
CHI '00 Extended Abstracts on Human Factors in Computing Systems
Reflective Middleware Solutions for Context-Aware Applications
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Computer
A semantics for advice and dynamic join points in aspect-oriented programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Views: customizable abstractions for contextaware applications in MANETs
SELMAS '05 Proceedings of the fourth international workshop on Software engineering for large-scale multi-agent systems
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Common Lisp: The Language
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Semantics and scoping of aspects in higher-order languages
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
Highly dynamic behaviour adaptability through prototypes with subjective multimethods
Proceedings of the 2007 symposium on Dynamic languages
An operational semantics for scheme1
Journal of Functional Programming
Context-oriented programming: beyond layers
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Expressive scoping of dynamically-deployed aspects
Proceedings of the 7th international conference on Aspect-oriented software development
SC'06 Proceedings of the 5th international conference on Software Composition
Context-oriented programming in ContextL: state of the art
Celebrating the 50th Anniversary of Lisp
Object spaces for safe image surgery
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Read-only execution for dynamic languages
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Putting events in context: aspects for event-based distributed programming
Proceedings of the tenth international conference on Aspect-oriented software development
Worlds: controlling the scope of side effects
Proceedings of the 25th European conference on Object-oriented programming
Using first-class contexts to realize dynamic software updates
Proceedings of the International Workshop on Smalltalk Technologies
Interruptible context-dependent executions: a fresh look at programming context-aware applications
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Abstracting context in event-based software
Transactions on Aspect-Oriented Software Development IX
Design principles for internal domain-specific languages: a pattern catalog illustrated by Ruby
Proceedings of the 17th Conference on Pattern Languages of Programs
Hi-index | 0.01 |
Context-oriented programming proposes to treat execution context explicitly and to provide means for context-dependent adaptation at runtime. There are many mechanisms that can be used to make either variable bindings or application code adapt dynamically, like dynamically-scoped variables, dynamic layer activation, and contextual dispatch. There are no means however, to make actual values be context-dependent. This means that side effects engendered by dynamically-activated adaptations are potentially global. We propose contextual values: values that actually depend on the context in which they are looked at and modified. We explore how contextual values can be provided, either as a simple library or directly into the language through different designs, for which we provide the operational semantics in the form of Scheme interpreters. Being able to scope side effects to certain contexts is a step forward for context-oriented programming, and can have interesting applications in other areas like security and dynamic software evolution.