Adaptive Programming is the special case of Aspect-Oriented Programming where one of the aspects is expressible in terms of graphs and where the other aspects or components refer to the graphs using traversal strategies. The following table shows four aspects which are the key aspects of Adaptive Programming. Each aspect has its own aspect description language. Traversals are expressed in terms of a navigation strategy language and visitors by adding keywords like before and after to Java. The four aspects are high-level aspects and can be viewed as aspect language mechanisms which can be used to program a variety of aspects.
High coupling implies larger program size.
We may view visitor objects as a high-level aspect language to deal with the behavior modification aspect which has many different incarnations. They are used to describe behavior modifications. Certain kind of exception handling is elegantly expressed with visitors. So visitors are useful for expressing various kinds of aspects which have the flavor of behavior modification. It should be noted that visitors are also used to express the core aspect in the form of behavior modifications to traversals.