abc compiler
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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…