Shadow Programming: Reasoning About Programs Using Lexical Join Point Information

* Final gross prices may vary according to local VAT.

Get Access


The expressiveness of AspectJ’s dynamic join point model has been shown in many useful applications, while the static join point model (also called lexical shadows) has been studied less. We propose a notion of shadow programming that exposes a program’s adapted lexical shadow information to compile time language constructs to enable customized static analysis and more expressive join point selection mechanisms. In particular, within the framework of the AspectJ language and compiler, we have designed and implemented two compile time language constructs, called Statically Executable Advice and Pointcut Evaluator respectively, to show how the lexical shadow information can be used.