roary-kirk
Uploaded by
9 SLIDES
222 VUES
90LIKES

Enhancing Java with AspectJ: A Comprehensive Analysis of Aspect-Oriented Programming

DESCRIPTION

This presentation provides a deep dive into AspectJ, an aspect-oriented programming extension of Java developed at Xerox PARC. Focusing on the foundational work of research groups at Oxford and McGill universities, we examine how AspectJ supports the integration of crosscutting concerns in software architecture. Key insights include the tools and methodologies for transforming object-oriented Java into aspect-oriented Java, using techniques like Soot for bytecode manipulation and optimization. We explore both the strengths and limitations of AspectJ, as well as future directions for research and development in aspect-oriented software design.

1 / 9

Télécharger la présentation

Enhancing Java with AspectJ: A Comprehensive Analysis of Aspect-Oriented Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. abc Compiler Zak Fry

  2. Who and Where • Programming Tools Group at Oxford University, UK • Oege de Moor • Sable Research Group at McGill University, Quebec • Laurie Hendren

  3. 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

  4. 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

  5. Representations • AspectJ AST • Java AST • Aspect Info • Instructions for weaver • Jimple • Skeleton • Regular IR • Woven IR • Final IR

  6. 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

  7. 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

  8. Limitations • Slower than competitor ajc • Requires ALL aspects to be in source • No separate compilation

  9. Future Work • Mostly individual extensions corresponding to individual projects • Monitoring synchronized blocks • Monitoring shared field access • Etc…

More Related