Search:
  • research
  • teaching
  • events
  • services
  • people
  • wiki
  • home
  • sitemap
  • contact
  • research
    • ACE
    • Condor
    • ConTraCT
    • Cultivate
    • Darwin
    • Gilgul
    • JMangler
    • JTransformer
    • LogicAJ
    • PatchWork
    • PDT
    • SVF
    • Tailor
      • Object Replacement
      • Object-Based Inheritance
      • Transformation of Java classes
      • Interference Analysis for Program Transformations
      • Formal Foundations for Program Transformations
      • Aspect-Oriented Programming
      • Refactoring Tools
    • Teaching XP
    • All Publications

Aspect-oriented programming


  • programming language: LogicAJ
  • models: generic aspect languages, dynamically scoped functions
  • motivated by: interference analysis for, and formal foundations of, conditional program transformations

Generic Aspect Language

With LogicAJ, we have successfully shown that the notion of conditional program transformations can also be used as a foundation for aspect-oriented programming languages. The important results inlude:

  • The feature set of AspectJ can be completely mapped to a set of conditional program transformations.
  • The notion of conditional program transformations can serve as a foundation for a well-defined extension of AspectJ with generic aspects. Generic aspects allow the declaration of introductions and advices whose join points are determined as late as run time. This enables reusable implementations of design patterns such as Decorator and Abstract Factory that can usually only be described in a literary form.

Dynamically Scoped Functions

We have identified the problem of vanishing aspects that can result from implicit assumptions about interactions between methods defined in a class that do not necessarily hold in subclasses. This problem can be resolved by way of constructs in aspect languages that reason about the control flow in a program, like cflow in AspectJ.

An alternative route can be taken by modeling essential aspect-oriented features on the basis of dynamically scoped functions. This is ongoing work that will be further explored in the near future.