Modular Reasoning in Aspect-Oriented Languages

2014-10-13T16:13:28Z (GMT) by Tim Molderez
<p>This PhD thesis presents an approach that enables modular reasoning in aspect-oriented programming languages.</p> <p> </p> <p>Contributions:</p> <p>Chapter 2 - The syntax and semantics of ContractAJ, a minimal aspect-oriented language with support for contracts.</p> <p>Chapter 3 - A two-part approach to enable modular reasoning in ContractAJ: First, if the advice substitution principle is satisfied, obliviousness can be preserved without causing surprising behaviour. Second, if it is necessary to become aware of an advice, a simple specification clause can be used to restore modular reasoning.</p> <p>Chapter 4 - Static and dynamic contract enforcement tools to ensure our approach to modular reasoning is used correctly.</p> <p>Chapter 5 - A compositional may/must analysis to infer frame conditions, which describe which variables will remain unchanged in a method/advice. This analysis is used to study existing AspectJ applications to determine how often advice modify more variables than allowed by modular reasoning.</p>