2003 · 113 citations · 23 references
ComputingComputer ScienceOperating SystemsProgramming LanguagesSystems ProgrammingApplication Programming InterfacesReflectionRuntime EnvironmentsRuntime SystemsAspect-oriented ModelingAspect-oriented ProgrammingEvaluation BenchmarksRuntime SemanticsTemporal Dimensions
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.
23
The structure of the “THE”-multiprogramming system
Edsger W. Dijkstra · Communications of the ACM · 1968 · 1.1K citations · Full text
Design pattern implementation in Java and aspectJ
Jan Hannemann, Gregor Kiczales · 2002 · 575 citations
Computing, Computer Science, Design +16
Tzilla Elrad, Robert E. Filman, Atef Bader · Communications of the ACM · 2001 · 532 citations