Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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…