AUTHOR = "Ahmed Abdelmeged and Therapon Skotiniotis and Panagiotis Manolios and Karl Lieberherr",
TITLE = "{Traversal Graphs: Characterization and Efficient Implementation}",
YEAR = "2008",
INSTITUTION = "CCIS/PRL, Northeastern University, Boston",
MONTH = "July",
NUMBER =  "NU-CCIS-08-02"


Adaptive Programming (AP) provides programmers with a graph abstraction of their OO program's structure (called a class graph) and encapsulates traversals and computation along traversals as adaptive methods. An adaptive method consists of a selector specification, called a strategy, that selects paths in the class graph, and a behavior definition with advice on nodes that are executed while traversing the selected paths.

Any AP implementation faces the following problem: given a strategy, S and a class graph G compute the set of paths in G that satisfy S. We represent the set of valid paths in G as a graph, dubbed a traversal graph.

In this paper we give the first characterization of, and a new algorithm for computing, traversal graphs. We describe our new algorithm that is more efficient -- the size of the generated traversal graph is in the worst case as large as the traversal graph generated by previous approaches -- and more general -- our algorithm is defined over general graphs rather than on the class graph directly. We apply our algorithm in an AP setting by transforming class graphs to general graphs. We further show that our algorithm generates a traversal graph that satisfies our characterization.