9 research outputs found

    Safe and Practical Decoupling of Aspects with Join Point Interfaces

    No full text
    In current aspect-oriented systems, aspects usually carry, through their pointcuts, explicit references to the base code. Those references are fragile and give up important software engineering properties such as modular reasoning and independent evolution of aspects and base code. In this work, we introduce a novel abstraction called Join Point Interfaces, which, by design, supports modular reasoning and independent evolution by decoupling aspects from base code and by providing a modular type-checking algorithm. Join point interfaces can be used both with implicit announcement through pointcuts, and with explicit announcement, using closure join points. Join point interfaces further offer polymorphic dispatch on join points, with an advice-dispatch semantics akin to multi-methods. In this work, we show how our proposal solves a large number of problems observed in previous related approaches. We have implemented join point interfaces as an open-source extension to AspectJ. A first study on existing aspect-oriented programs supports our initial design in general, but also highlights some limitations, which we then address by introducing parametric polymorphism and a more permissive quantification mechanism. As a result, join point interfaces are a safe and practical way of decoupling aspects

    Secure Software Engineering Group

    No full text
    Abstract. Parameterized runtime monitoring formalisms allow predicates to bind free variables to values during the program’s execution. Some runtime monitoring tools, like J-LO, increase the formalism’s expressiveness by allowing predicates to query variables already during the matching process. This is problematic because, if no special care is taken, the predicate’s evaluation may need to query a variable that has not yet been bound, rendering the entire formula meaningless. In this paper we present a syntactic checking algorithm that recognizes meaningless formulas in future-time linear temporal logic. The algorithm assures that a predicate accesses a potentially unbound variable only when the truth value of this predicate cannot possibly impact the truth value of the entire formula at the time the predicate is being evaluated. Our approach allows users to specify a wide range of meaningful parameterized logic formulas, while at the same time forbidding such formulas that would otherwise have an unclear semantics due to insu cient bindings. We have implemented the checking algorithm in the J-LO runtime verification tool.

    Phthalocyanines: Synthesis, Supramolecular Organization, and Physical Properties

    No full text
    corecore