DJ: Dynamic Adaptive Programming in Java
Abstract:
Following the Law of Demeter, a programming style rule for loose
coupling between the structure and behavior concerns, can result in a
large number of small methods scattered throughout the program, which
can make it hard to understand the high-level picture of what a
program does.  Adaptive programming with traversal strategies and
adaptive visitors in DemeterJ avoids this problem while even better
supporting this loose coupling of concerns.  DJ is a pure-Java package
for adaptive programming that allows traversal strategies to be
constructed and interpreted dynamically at run-time.  Traversal
strategies can be used with adaptive visitors or in a generic
programming style by adapting them to the Java Collections framework.
The DJ package makes heavy use of Java reflection and we give the
highlights of this implementation.

Bibtex entry:

@TECHREPORT{DJ-reflection,
AUTHOR       = "Doug Orleans and Karl Lieberherr",
TITLE        = "{DJ: Dynamic Adaptive Programming in Java}",
INSTITUTION  = "College of Computer Science, Northeastern University",
YEAR         = 2001,
MONTH        = "March",
NUMBER       = "{NU-CCS-2001-02}",
ADDRESS      = "Boston, MA",
PAGES = "1-10"
}

@InProceedings{OrleansLieberherrReflection01,
author =         "Doug Orleans and Karl Lieberherr",
title =          "DJ: Dynamic Adaptive Programming in Java",
booktitle =     "{Reflection 2001: Meta-level Architectures and Separation of Crosscutting Concerns }",
year =   "2001",
address =        "Kyoto, Japan",
month =  "September",
publisher = "Springer Verlag",
note = "8 pages".
}

Abstract:

The paper as published by Springer Verlag is a streamlined version of the paper below. The official conference version is available from the Springer Website.

Powerpoint viewgraphs and sound files for presentation in Kyoto

Paper in various formats (dj.ps is in Postscript)

DJ home page

Related paper: DJ and AOP

Aspect-Oriented Programming (AOP)