DJ: Dynamic Adaptive Programming in Java
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:

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"

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


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 ( is in Postscript)

DJ home page

Related paper: DJ and AOP

Aspect-Oriented Programming (AOP)