|
ABSTRACT
Behavioral reflection is a powerful approach for adapting the behavior of running applications. In this paper we present and motivate partial behavioral reflection, an approach to more efficient and flexible behavioral reflection. We expose the spatial and temporal dimensions of such reflection, and propose a model of partial behavioral reflection based on the notion of hooksets. In the context of Java, we describe a reflective architecture offering appropriate interfaces for static and dynamic configuration of partial behavioral reflection at various levels, as well as Reflex, an open reflective extension for Java implementing this architecture. Reflex is the first extension that fully supports partial behavioral reflection in a portable manner, and that seamlessly integrates load-time and runtime behavioral reflection. The paper shows preliminary benchmarks and examples supporting the approach. The examples, dealing with the observer pattern and asynchronous communication via transparent futures, also show the interest of partial behavioral reflection as a tool for open dynamic Aspect-Oriented Programming.
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
|
|
| |
2
|
L. Bergmans. The composition filters object model. In Proceedings of the RICOT symposium on Enabling Objects for Industry, June 1994.
|
| |
3
|
Gordon S. Blair , Geoff Coulson , Lynne Blair , Mike Clarke , Fabio Costa , Hector Duran , Nikos Parlavantzas , Katia Saikoski , Anders Andersen, A Principled Approach to Supporting Adaptation in Distributed Mobile Environments, Proceedings of the International Symposium on Software Engineering for Parallel and Distributed Systems, p.3, June 10-11, 2000
|
| |
4
|
|
| |
5
|
|
| |
6
|
D. Caromel, W. Klauser, and J. Vayssière. Towards seamless computing and metacomputing in Java. Concurrency Practice and Experience, 10(11-13):1043--1061, Sept. 1998.
|
| |
7
|
|
| |
8
|
K. Cheverst, C. Efstratiou, N. Davies, and A. 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, Sept. 2000.
|
 |
9
|
Shigeru Chiba, A metaobject protocol for C++, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.285-299, October 15-19, 1995, Austin, Texas, United States
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
M. Dahm. Byte code engineering. In C. Cap, editor, Proceedings of JIT'99, Berlin, pages 267--277, 1999.
|
| |
14
|
|
| |
15
|
|
 |
16
|
|
| |
17
|
|
| |
18
|
|
| |
19
|
|
| |
20
|
S. Ducasse. Evaluating message passing control techniques in Smalltalk. Journal of Object-Oriented Programming, June:39--50, 1999.
|
 |
21
|
|
| |
22
|
|
 |
23
|
B. Foote , R. E. Johnson, Reflective facilities in Smalltalk-80, Conference proceedings on Object-oriented programming systems, languages and applications, p.327-335, October 02-06, 1989, New Orleans, Louisiana, United States
|
| |
24
|
|
| |
25
|
|
| |
26
|
B. Gowing and V. Cahill. Meta-object protocols for C++: The Iguana approach. In Kiczales {30}, pages 137--152.
|
 |
27
|
|
 |
28
|
Jan Hannemann , Gregor Kiczales, Design pattern implementation in Java and aspectJ, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
 |
29
|
Mamdouh H. Ibrahim, Reflection and metalevel architectures in object-oriented programming (workshop session), Proceedings of the European conference on Object-oriented programming addendum : systems, languages, and applications: systems, languages, and applications, p.73-80, October 1990, Ottawa, Canada
[doi> 10.1145/319016.319050]
|
| |
30
|
G. Kiczales, editor. Reflection'96, San Francisco, CA, USA, Apr. 1996.
|
| |
31
|
G. Kiczales. The future of reflection. Invited talk at the Third International Conference on Metalevel Architectures and Advanced Separation of Concerns (Reflection 2001), Sept. 2001.
|
| |
32
|
|
| |
33
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
34
|
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Aksit and S. Matsuoka, editors, Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP'97), volume 1241 of Lecture Notes in Computer Science, pages 220--242, Jyväskylä, Finland, June 1997. Springer-Verlag.
|
| |
35
|
|
| |
36
|
|
| |
37
|
T. Ledoux and M. N. Bouraqadi-Sadani. Adaptability in Mobile Agent Systems using Reflection. RM'2000, Workshop on Reflective Middleware, Apr. 2000.
|
 |
38
|
Sheng Liang , Gilad Bracha, Dynamic class loading in the Java virtual machine, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.36-44, October 18-22, 1998, Vancouver, British Columbia, Canada
|
| |
39
|
P. Maes. Computional reflection. PhD thesis, Artificial intelligence laboratory, Vrije Universiteit, Brussels, Belgium, 1987.
|
| |
40
|
|
| |
41
|
H. Masuhara, S. Matsuoka, and A. Yonezawa. An object-oriented concurrent reflective language for dynamic resource management in highly parallel computing. In IPSJ SIG Notes, volume 94-PRG-18, 1994.
|
| |
42
|
|
| |
43
|
J. McAffer. Engineering the meta-level. In Kiczales {30}, pages 39--61.
|
 |
44
|
Philippe Mulet , Jacques Malenfant , Pierre Cointe, Towards a methodology for explicit composition of metaobjects, Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, p.316-330, October 15-19, 1995, Austin, Texas, United States
|
| |
45
|
A. Oliva and L. E. Buzato. The design and implementation of Guaraná. In Proceedings of the 5th USENIX Conference on Object-Oriented Technologies & Systems (COOTS'99), pages 203--216, San Diego, CA, USA, May 1999.
|
| |
46
|
Proceedings of the 10th International Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'95), Austin, Texas, USA, Oct. 1995. ACM Press.
|
| |
47
|
|
 |
48
|
|
| |
49
|
|
 |
50
|
|
| |
51
|
B. Redmond and V. Cahill. Iguana/J: Towards a dynamic and efficient reflective architecture for Java. ECOOP 2000 Workshop on Reflection and Metalevel Architectures, June 2000.
|
| |
52
|
|
| |
53
|
F. Rivard. Smalltalk: a reflective language. In Kiczales {30}, pages 21--38.
|
| |
54
|
F. Rivard. Évolution du comportement des objets dans les langages à classes réflexifs. PhD thesis, Université de Nantes, École des Mines de Nantes, June 1997. In French.
|
 |
55
|
|
| |
56
|
|
| |
57
|
E. Tanter and J. Piquer. Managing references upon object migration: Applying separation of concerns. In Proceedings of the XXI International Conference of the Chilean Computer Science Society (SCCC 2001), pages 264--272, Punta Arenas, Chile, Nov. 2001. IEEE Computer Society.
|
| |
58
|
|
| |
59
|
E. Tanter, M. Vernaillen, and J. Piquer. Towards transparent adaptation of migration policies. In 8th ECOOP Workshop on Mobile Object Systems (EWMOS 2002), Málaga, Spain, June 2002.
|
| |
60
|
|
| |
61
|
Z. Wu. Reflective Java and a reflective component-based transaction architecture. In J.-C. Fabre and S. Chiba, editors, Proceedings of the ACM OOPSLA'98 Workshop on Reflective Programming in Java and C++, Oct. 1998.
|
| |
62
|
R. Wuyts. A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation. PhD thesis, Vrije Universiteit Brussel, 2001.
|
| |
63
|
A. Yonezawa and S. Matsuoka, editors. Proceedings of the 3rd International Conference on Metalevel Architectures and Advanced Separation of Concerns, volume 2192 of Lecture Notes in Computer Science, Kyoto, Japan, Sept. 2001. Springer-Verlag.
|
CITED BY 15
|
|
|
|
|
|
|
|
|
|
|
Rémi Douence , Didier Le Botlan , Jacques Noyé , Mario Südholt, Concurrent aspects, Proceedings of the 5th international conference on Generative programming and component engineering, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
Stijn Mostinckx , Tom Van Cutsem , Stijn Timbermont , Éric Tanter, Mirages: behavioral intercession in a mirror-based architecture, Proceedings of the 2007 symposium on Dynamic languages, October 22-22, 2007, Montreal, Quebec, Canada
|
|
|
Johan Fabry , Éric Tanter , Theo D'Hondt, ReLAx: implementing KALA over the reflex AOP kernel, Proceedings of the 2nd workshop on Domain specific aspect languages, p.3-es, March 12-12, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|