abc Compiler
E N D
Presentation Transcript
abc Compiler Zak Fry
Who and Where • Programming Tools Group at Oxford University, UK • Oege de Moor • Sable Research Group at McGill University, Quebec • Laurie Hendren
Language and Platform • AspectJ Compiler • Aspect Oriented (compliment to OOP) Extension of Java developed by Xerox PARC • Standalone with Eclipse support for generated code • Visualization support for crosscutting concerns
Architecture and Design • Polyglot – frontend that aids in adding AspectJ to Java • Soot – backend that deals with bytecode and aids in finding aspects/weaving • Inputs: .java and .class files • Outputs: AO .java and .class files
Representations • AspectJ AST • Java AST • Aspect Info • Instructions for weaver • Jimple • Skeleton • Regular IR • Woven IR • Final IR
Uses and Strengths • AspectJ and Aspect Oriented research • Conversion of OO Java to AO Java • Studying, Analyzing, Improving AO techniques • Strengths • Polyglot - Easy to extend or change aspect output • Soot (Jimple) – ease of translation between bytecode, Jimple, Java source • Optimization is much higher than competition
Benchmarks • EAJ – redefinition of “adding variables to pointcuts” – shows ease of adding functionality to abc (AOSD 2005) • Large study April 2006 of many AspectJ programs • Also: runtime verification, tracematches
Limitations • Slower than competitor ajc • Requires ALL aspects to be in source • No separate compilation
Future Work • Mostly individual extensions corresponding to individual projects • Monitoring synchronized blocks • Monitoring shared field access • Etc…