Results 1 - 10
of
131
Composition, Reuse and Interaction Analysis of Stateful Aspects
- AOSD 2004
, 2004
"... Aspect-Oriented Programming promises separation of concerns at the implementation level. However, aspects are not always orthogonal and aspect interaction is a fundamental problem. In this paper, we extend previous work on a generic framework for the formal definition and interaction analysis of sta ..."
Abstract
-
Cited by 160 (13 self)
- Add to MetaCart
Aspect-Oriented Programming promises separation of concerns at the implementation level. However, aspects are not always orthogonal and aspect interaction is a fundamental problem. In this paper, we extend previous work on a generic framework for the formal definition and interaction analysis of stateful aspects. We propose three important extensions which enhance expressivity while preserving static analyzability of interactions. First, we provide support for variables in aspects in order to share information between different execution points. This allows the definition of more precise aspects and to avoid detection of spurious conflicts. Second, we introduce generic composition operators for aspects. This enables us to provide expressive support for the resolution of conflicts among interacting aspects. Finally, we o#er a means to define applicability conditions for aspects. This makes interaction analysis more precise and paves the way for reuse of aspects by making explicit requirements on contexts in which aspects must be used.
JAsCo: an Aspect-Oriented approach tailored for Component Based Software Development
, 2003
"... In this paper we introduce a novel aspect oriented implementation language, called JAsCo. JAsCo is tailored for component based development and the Java Beans component model in particular. The JAsCo language introduces two concepts: aspect beans and connectors. An aspect bean describes behavior tha ..."
Abstract
-
Cited by 133 (22 self)
- Add to MetaCart
In this paper we introduce a novel aspect oriented implementation language, called JAsCo. JAsCo is tailored for component based development and the Java Beans component model in particular. The JAsCo language introduces two concepts: aspect beans and connectors. An aspect bean describes behavior that interferes with the execution of a component by using a special kind of inner class, called a hook. The specification of a hook is context independent and therefore reusable. A connector on the other hand, is used for deploying one or more hooks within a specific context. To implement the JAsCo language, we propose a new “aspect-enabled ’ component model, which contains build-in traps that enable to interfere with the normal execution of a component. The JAsCo component model is backward-compatible with the Java Beans component model. Furthermore, the JAsCo component model allows very flexible aspect application, adaptation and removal at run-time. The necessary tool support for the JAsCo approach has been implemented. In addition, we present a performance assessment of our current implementation. 1.
A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming
- ACM Transactions on Programming Languages and Systems
, 2002
"... AspectJ, is the use of advice to incrementally modify the behavior of a program. An advice declaration specifies an action to be taken whenever some condition arises during the execution of the program. The condition is specified by a formula called a pointcut designator or pcd. The events during ex ..."
Abstract
-
Cited by 133 (2 self)
- Add to MetaCart
AspectJ, is the use of advice to incrementally modify the behavior of a program. An advice declaration specifies an action to be taken whenever some condition arises during the execution of the program. The condition is specified by a formula called a pointcut designator or pcd. The events during execution at which advice may be triggered are called join points. In this model of aspectoriented programming, join points are dynamic in that they refer to events during the execution of the program.
A Compilation and Optimization Model for Aspect-Oriented Programs
- IN COMPILER CONSTRUCTION, VOLUME 2622 OF SPRINGER LECTURE NOTES IN COMPUTER SCIENCE
, 2003
"... This paper presents a semantics based compilation model for an aspect oriented programming language based on its operational se mantics. Using partial evaluation,th model can explain several issues in compilation processes, including how to find places in program text to in sert aspect code and how ..."
Abstract
-
Cited by 117 (9 self)
- Add to MetaCart
This paper presents a semantics based compilation model for an aspect oriented programming language based on its operational se mantics. Using partial evaluation,th model can explain several issues in compilation processes, including how to find places in program text to in sert aspect code and how to remove unnecessary run time checks. It also illustrates optimization of calling context sensitive pointcuts (cflow), im plemented in real compilers.
Expressive pointcuts for increased modularity
- IN: ECOOP
"... In aspect-oriented programming, pointcuts are used to describe cross-cutting structure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular reasoning. We present an analysis which shows that current pointcut languages sup ..."
Abstract
-
Cited by 104 (11 self)
- Add to MetaCart
(Show Context)
In aspect-oriented programming, pointcuts are used to describe cross-cutting structure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular reasoning. We present an analysis which shows that current pointcut languages support lo-calization of crosscutting concerns but are problematic with respect to infor-mation hiding. To cope with the problem, we present a pointcut language that exploits information from different models of program semantics, such as the execution trace, the syntax tree, the heap, static type system, etc., and supports abstraction mechanisms analogous to functional abstraction. We show how this raises the abstraction level and modularity of pointcuts and present first steps toward an efficient implementation by means of a static analysis technique.
Modeling crosscutting in aspect-oriented mechanisms
- European Conference on Object-Oriented Programming (ECOOP), 2003
"... Abstract. Modeling four aspect-oriented programming mechanisms shows the way in which each supports modular crosscutting. Comparing the models produces a clear three part characterization of what is required to support crosscutting structure: a common frame of reference that two (or more) programs c ..."
Abstract
-
Cited by 104 (3 self)
- Add to MetaCart
(Show Context)
Abstract. Modeling four aspect-oriented programming mechanisms shows the way in which each supports modular crosscutting. Comparing the models produces a clear three part characterization of what is required to support crosscutting structure: a common frame of reference that two (or more) programs can use to connect with each other and each provide their semantic contribution. 1
Virtual Machine Support for Dynamic Join Points. In: AOSD’04,
, 2004
"... ABSTRACT A widespread implementation approach for the join point mechanism of aspect-oriented languages is to instrument areas in code that match the static part of pointcut designators, inserting dynamic checks for that part of matching that depends on run-time conditions, if needed. For performan ..."
Abstract
-
Cited by 99 (16 self)
- Add to MetaCart
(Show Context)
ABSTRACT A widespread implementation approach for the join point mechanism of aspect-oriented languages is to instrument areas in code that match the static part of pointcut designators, inserting dynamic checks for that part of matching that depends on run-time conditions, if needed. For performance reasons, such dynamic checks should be avoided whenever possible. One way to do so is to postpone weaving of advice calls until run-time, when conditions determining the emergence of join points hold. This calls for fluid code---code that adapts itself to the join point emergence at run-time, and suggests that AOP concepts should be integrated into the execution model underlying a VM. In this paper, we present first steps toward such an integration in Steamloom, an extension of IBM's Jikes Research Virtual Machine. Steamloom is fairly restricted, but our initial experimental results indicate that aspect-aware VMs and fluid code are promising w.r.t performance. While the focus in this paper is on performance, there are other advantages of aspect-aware VMs to be investigated in the future.
A Theory of Aspects
- In ACM International Conference on Functional Programming
, 2003
"... This paper de ne the semantics of MinAML, an idealized aspect-oriented programming language, by giving a typedirected translation from its user-friendly external language to its compact, well-de ned core language. We argue that our framework is an eective way to give semantics to aspectoriented pr ..."
Abstract
-
Cited by 88 (13 self)
- Add to MetaCart
This paper de ne the semantics of MinAML, an idealized aspect-oriented programming language, by giving a typedirected translation from its user-friendly external language to its compact, well-de ned core language. We argue that our framework is an eective way to give semantics to aspectoriented programming languages in general because the translation eliminates shallow syntactic dierences between related constructs and permits de nition of a clean, easy-tounderstand, and easy-to-reason-about core language.
Harmless advice
- University of Pennsylvania, Computer and Information Science Department, Levine Hall
, 2005
"... This paper defines an object-oriented language with harmless aspect-oriented advice. A piece of harmless advice is a computation that, like ordinary aspect-oriented advice, executes when control reaches a designated control-flow point. However, unlike ordinary advice, harmless advice is designed to ..."
Abstract
-
Cited by 84 (9 self)
- Add to MetaCart
(Show Context)
This paper defines an object-oriented language with harmless aspect-oriented advice. A piece of harmless advice is a computation that, like ordinary aspect-oriented advice, executes when control reaches a designated control-flow point. However, unlike ordinary advice, harmless advice is designed to obey a weak noninterference property. Harmless advice may change the termination behavior of computations and use I/O, but it does not otherwise influence the final result of the mainline code. The benefit of harmless advice is that it facilitates local reasoning about program behavior. More specifically, programmers may ignore harmless advice when reasoning about the partial correctness properties of their programs. In addition, programmers may add new pieces of harmless advice to pre-existing programs in typical “after-the-fact ” aspect-oriented style without fear they will break important data invariants used by the mainline code. In order to detect and enforce harmlessness, the paper defines a novel type and effect system related to information-flow type systems. The central technical result is that well-typed harmless advice does not interfere with the mainline computation. The paper also presents an implementation of the language and a case study using harmless advice to implement security policies. 1.
Partial Behavioral Reflection: Spatial and Temporal Selection of Reification
, 2003
"... 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 e#cient and flexible behavioral reflection. We expose the spatial and temporal dimensions of such reflection, and p ..."
Abstract
-
Cited by 84 (14 self)
- Add to MetaCart
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 e#cient 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 o#ering 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.