Workshop on the Foundations of Aspect-Oriented Languages (FOAL) @ AOSD (2006) 47-56
Unless explicitly prevented, aspects can apply to themselves and can therefore change their own behaviour. This self-adaptation can lead to syntactically correct programs that express antinomies, i.e., that are meaningless (have no intuitive semantics). Drawing the parallel to mathematical logic, we suggest adopting the classical solution presented by Russell and Tarski, i.e., the separation of language into different levels. We propose a simple static type system for AOP that is based on such stratification and that not only helps avoid certain common programming errors, but also reflects on its inherent nature.