Over the last years, several proposals have advocated that a notion of interface between the base code and aspect code is necessary for reasoning about aspect-oriented programming (AOP), and for overcoming pointcut fragility. However, existing work that are AOP based, have not shown how one can specify these interfaces to facilitate modular reasoning and specify control effects, such when advice does not proceed. The main contribution of this work is a new form of interface for AOP that we call crosscut programming interface with design rules, or XPIDR. XPIDRs extend the notion of crosscut programming interfaces (XPIs) with expressive design rules that allow modular understanding and enforcement of control flow effects. We also show that since our approach with XPIDRs do not require any new AOP construct, they can be adopted in a straightforward manner by the AOP community.
展开▼