Abstract
In the AspectJ family of aspect-oriented programming languages, the programmers sometimes make mistakes in pointcuts. This results in making advice unexecutable or advice executed at unexpected join points. We aim to solve this problem by proposing a type system for AspectJ aspects that detects contradictions within a pointcut and between pointcuts. This paper describes the definition of the types of pointcuts along with typing rules. We confirmed that the type system detects several non-trivial mistakes in pointcuts.