I am happy to announce that my latest research paper has been accepted for publication at AOSD 2009. The paper is titled Dependent advice: A general approach to optimizing history-based aspects (paper here), and that’s really what it is about. If you know my past work, then you also know that my work is concerned with evaluating runtime monitors based on tracematches at compile time. The purpose of Dependent Advice (an extension to ordinary AspectJ advice) is to generalize this idea. With dependent advice, one can apply the same powerful whole-program optimizations to normal aspects that previously one could only apply to tracematches. Sounds exciting? So how does it work?