|
ABSTRACT
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.
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.
| |
1
|
M. Baldauf and S. Dustdar. A survey on context-aware systems. Technical Report TUV-1841-2004-24, Technical University of Vienna, 2004.
|
 |
2
|
Alexandre Bergel , Stéphane Ducasse , Oscar Nierstrasz, Classbox/J: controlling the scope of change in Java, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
| |
3
|
|
| |
4
|
Keith Cheverst, Christos Efstratiou, Nigel Davies, and Adrian Friday. Architectural ideas for the support of adaptive context-aware applications. In Workshop on Infrastructure for Smart Devices - How to Make Ubiquity an Actuality, Bristol, UK, September 2000.
|
 |
5
|
Curtis Clifton , Gary T. Leavens , Craig Chambers , Todd Millstein, MultiJava: modular open classes and symmetric multiple dispatch for Java, Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.130-145, October 2000, Minneapolis, Minnesota, United States
|
| |
6
|
Pascal Costanza. How to make Lisp more special. In Proceedings of International Lisp Conference, Stanford, CA, USA, June 2005.
|
 |
7
|
|
 |
8
|
David R. Morse , Stephen Armstrong , Anind K. Dey, The what, who, where, when, why and how of context-awareness, CHI '00 extended abstracts on Human factors in computing systems, April 01-06, 2000, The Hague, The Netherlands
[doi> 10.1145/633292.633518]
|
| |
9
|
|
| |
10
|
Matthew Flatt. PLT MzScheme: Language manual, 2007. Version 372.
|
| |
11
|
|
| |
12
|
Martin Gasbichler and Michael Sperber. Processes vs. user-level threads in scsh. In 3rd Workshop on Scheme and Functional Programming, October 2002.
|
 |
13
|
|
| |
14
|
J. Kephart. A vision of autonomic computing. In Onward! Track at OOPSLA 2002, pages 13-36, Seattle, WA, USA, 2002.
|
| |
15
|
|
| |
16
|
Shriram Krishnamurthi. Programming Languages: Application and Interpretation. 2007. Version 2007-04-26.
|
| |
17
|
|
| |
18
|
|
 |
19
|
Todd Millstein, Practical predicate dispatch, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
 |
20
|
|
| |
21
|
|
 |
22
|
|
| |
23
|
Éric Tanter, Kris Gybels, Marcus Denker, and Alexandre Bergel. Context-aware aspects. In Welf Löwe and Mario Südholt, editors, Proceedings of the 5th International Symposium on Software Composition (SC 2006), volume 4089 of Lecture Notes in Computer Science, pages 227-242, Vienna, Austria, March 2006. Springer-Verlag.
|
| |
24
|
Aaron Mark Ucko. Predicate dispatching in the Common Lisp Object System. Technical Report AITR-2001-006, Massachusetts Institute of Technology, Artificial Intelligence Laboratory, Cambridge, MA, 2001.
|
 |
25
|
|
 |
26
|
|
 |
27
|
|
| |
28
|
Daniel Weinreb and David Moon. Flavors: Message passing in the Lisp machine. A.I. Memo 602, Massachussetts Institute of Technology, Artificial Intelligence Laboratory, 1980.
|
 |
29
|
|
|