Download abc Compiler

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
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…