Several semantics for adaptive programming have been developed. PXL: Palsberg, Xiao, Lieberherr ftp://ftp.ccs.neu.edu/pub/people/lieber/semantics-ad-soft-annot.ps TOPLAS, March 1995 PPL: Palsberg, Patt-Shamir, Lieberherr ftp://ftp.ccs.neu.edu/pub/people/lieber/compile-adapt-2.ps ESOP, 1996 HS: Huersch, Seiter ftp://ftp.ccs.neu.edu/pub/research/demeter/documents/papers/HS96-evolution.ps ISOTAS, 1996 SPL Seiter, Palsberg, Lieberherr http://www.ccs.neu.edu/home/lieber/theses-index.html Linda Seiter's thesis, 1996. LP Lieberherr, Patt-Shamir http://www.ccs.neu.edu/research/demeter/biblio/strategies.html Traversal strategies 1997. Implemented in Demeter/Java. The semantics PXL, PPL, HS and SPL are compared in Linda Seiter's thesis (see chapter 3). The current "official" traversal semantics are PXL and PPL and LP which both use the same path concept. They are both two-pass semantics as pointed out by Mitch Wand. On pass 1, the traversal algorithm generates a list of objects (roughly speaking, the preorder list of objects to be visited). On pass 2, these objects are visited and their wrappers executed. PXL and PPL and LP are implemented in Demeter/C++ and Demeter/Java but using a one-pass approach: visitors (wrappers) are called during traversal. PXL and PPL use a slightly different path concept than HS and SPL. However, PPL shows that the two lead to the same traversals. But HS deals with inheritance differently than PXL. HS and SPL are one-pass semantics. The best semantics would be to take the path concept from PXL and substitute it for the path concept in HS and SPL. ============= The semantics of shape developed by C.B. Jay might be useful for better semantics of AP. @ARTICLE{jay:shape-96, AUTHOR = "Barry Jay", TITLE = "{Shape in Computing}", JOURNAL = "ACM Computing Surveys" , YEAR = 1996, VOLUME = 28 , NUMBER = 2, PAGES = "355-357 } Shape-polymorphism is related to structure-shy programming.