|
ABSTRACT
ContextL is an extension to the Common Lisp Object System that allows for Context-oriented Programming. It provides means to associate partial class and method definitions with layers and to activate and deactivate such layers in the control flow of a running program. When a layer is activated, the partial definitions become part of the program until this layer is deactivated. This has the effect that the behavior of a program can be modified according to the context of its use without the need to mention such context dependencies in the affected base program. We illustrate these ideas by providing different UI views on the same object while, at the same time, keeping the conceptual simplicity of object-oriented programming that objects know by themselves how to behave, in our case how to display themselves. These seemingly contradictory goals can be achieved by separating class definitions into distinct layers instead of factoring out the display code into different classes.
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
|
Daniel Bobrow and Ira Goldstein. Representing Design Alternatives. Proceedings of the Conference on Artificial Intelligence and the Simulation of Behavior. Amsterdam, July 1980.
|
| |
2
|
Daniel Bobrow, Linda DeMichiel, Richard Gabriel, Sonya Keene, Gregor Kiczales, David Moon. Common Lisp Object System Specification. Lisp and Symbolic Computation 1, 3-4 (January 1989), 245--394.
|
| |
3
|
Christoph Bockisch, Michael Haupt, Mira Mezini, Klaus Ostermann. Virtual Machine Support for Dynamic Join Points. AOSD 2004, Proceedings, ACM Press.
|
| |
4
|
Martin Büchi and Wolfgang Weck. Generic Wrappers. ECOOP 2000, Proceedings, Springer LNCS.
|
| |
5
|
Howard Cannon. Flavors -- A Non-Hierarchical Approach to Object-oriented Programming. Unpublished draft, 1979, 1992, 2003.
|
| |
6
|
Pascal Costanza, Günter Kniesel, Armin Cremers. Lava -- Spracherweiterungen für Delegation in Java. JIT '99 -- Java-Informations-Tage 1999. Springer, Informatik Aktuell, 1999.
|
| |
7
|
Pascal Costanza. Dynamically Scoped Functions as the Essence of AOP. ECOOP 2003 Workshop on Object-oriented Language Engineering for the Post-Java Era, Darmstadt, Germany, July 22, 2003. ACM Sigplan Notices 38, 8 (August 2003).
|
| |
8
|
Pascal Costanza. A Short Overview of AspectL. European Interactive Workshop on Aspects in Software (EIWAS'04), Berlin, Germany, September 23-24.
|
| |
9
|
Pascal Costanza. How to Make Lisp More Special. International Lisp Conference 2005, Stanford. Proceedings.
|
| |
10
|
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns. Addison-Wesley, 1995.
|
| |
11
|
Michael Gassanenko. Context-oriented Programming: Evolution of Vocabularies. Proceedings of the euroFORTH'93 Conference. Marianske Lazne, Czech Republic.
|
| |
12
|
Michael Gassenenko. Context-oriented Programming. euroFORTH'98, Schloss Dagstuhl, Germany.
|
| |
13
|
David Gelernter, Suresh Jagannathan, Thomas London. Environments as First Class Objects. POPL '87, Proceedings.
|
| |
14
|
William Harrison and Harold Ossher. Subject-oriented Programming -- A Critique of Pure Objects. OOPSLA '93, Proceedings, ACM Press.
|
| |
15
|
Robert Hirschfeld. AspectS -- Aspect-oriented Programming with Squeak. In M. Aksit, M. Mezini, R. Unland (eds.). Objects, Components, Architectures, Services, and Applications for a Networked World. Springer LNCS 2003, 2003.
|
| |
16
|
Robert Hirschfeld and Pascal Costanza. Extending Advice Activation in AspectS, European Interactive Workshop on Aspects in Software (EIWAS 2005), Brussels, Belgium, September 2005.
|
| |
17
|
Robert Hirschfeld, Katsuya Kawamura, Hendrik Berndt. Dynamic Service Adaptation for Runtime System Extensions. Wireless On-Demand Network Systems, First IFIP TC6 Working Conference, WONS 2004, Proceedings, Springer LNCS 2928.
|
| |
18
|
Roger Keays and Andry Rakotonirainy. Context-oriented Programming. International Workshop on Data Engineering for Wireless and Mobile Access, San Diego, USA, 2003. ACM Press.
|
| |
19
|
Gregor Kiczales, Jim des Rivières, Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, 1991.
|
| |
20
|
Gregor Kiczales. Towards a New Model of Abstraction in Software Engineering. Proceedings of the International Workshop on Reflection and Meta-Level Architectures, 1992.
|
| |
21
|
Günter Kniesel. Type-Safe Delegation for Run-Time Component Adaptation. ECOOP '99, Proceedings, Springer LNCS 1628.
|
| |
22
|
Glenn Krasner and Stephen Pope. A Cookbook for using the Model-View-Controller User Interface Paradigm in Smalltalk-80. Journal of Object-oriented Programming 1, 3 (August/September 1988).
|
| |
23
|
Henry Lieberman. Using Prototypical Objects to Implement Shared Behavior in Object-oriented Systems. OOPSLA '86, Proceedings.
|
| |
24
|
Hidehiko Masuhara and Gregor Kiczales. Modeling Crosscutting in Aspect-oriented Mechanisms. ECOOP 2003, Proceedings, Springer LNCS.
|
| |
25
|
Klaus Ostermann. Dynamically Composable Collaborations with Delegation Layers. ECOOP 2002, Proceedings, Springer LNCS.
|
| |
26
|
Lee Salzman and Jonathan Aldrich. Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model. ECOOP 2005, Proceedings, LNCS.
|
| |
27
|
Randall Smith and David Ungar. A Simple and Unifying Approach to Subjective Objects. Theory and Practice of Object Systems, 2, 3 1996.
|
| |
28
|
Randall Smith, John Maloney, David Ungar. The Self-4.0 User Interface: Manifesting a System-wide Vision of Concreteness, Uniformity, and Flexibility. OOPSLA '95 Conference Proceedings, Austin, Texas, October 1995.
|
| |
29
|
David Ungar and Randall Smith. Self: The Power of Simplicity. OOPSLA '87, Proceedings.
|
| |
30
|
Daniel Weinreb and David Moon. Flavors: Message Passing in the Lisp Machine. AI Memo 602, Massachusetts Institute of Technology, 1980.
|
CITED BY 8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Marcus Denker , Tudor Gîrba , Adrian Lienhard , Oscar Nierstrasz , Lukas Renggli , Pascal Zumkehr, Encapsulating and exploiting change with changeboxes, Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007, August 25-31, 2007, Lugano, Switzerland
|
|