abc Compiler

Download Report

Transcript abc Compiler

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…