This work claims that strategies in Demeter are not first class. However, in DJ, http://www.ccs.neu.edu/research/demeter/DJ/ they are first class: they can be named and passed around in variables. We need to summarize this work in the Demeter seminar. It is very close to our vision. How can we improve DJ and DemeterJ and DAJ (Demeter AspectJ) based on ideas in this paper? -- Karl =========== The Essence of Strategic Programming Authors Ralf Laemmel and Eelco Visser and Joost Visser http://www.cwi.nl/~ralf/lvv02/ ralf@cs.vu.nl Strategic programming is an idiom for generic programming where the concept of a strategy plays a central role. A strategy is a generic, data-processing action. Strategies are first-class citizens as witnessed by a combinator style. Two important characteristics of strategies are that they can traverse into compound data, and that they can be customized by type-specific actions. We provide a general definition of strategic programming, and we demonstrate how this idiom can be realized inside several programming language paradigms. An extended version of this paper can be found at http://www.program-transformation.org/Transform/TheEssenceOfStrategicProgramming relevant OOPLSA paper: J. Visser. Visitor combination and traversal control. ACM SIGPLAN Notices, OOPSLA 2001 Conference Proceedings, 36(11):270{282, Nov. 2001.