The Essence Of Strategic Programming

Program-Transformation.Org: The Program Transformation Wiki

RalfLaemmel, EelcoVisser and JoostVisser.


Strategic programming is generic programming with the use of strategies. A strategy is a generic data-processing action which can traverse into heterogeneous data structures while mixing uniform and type-specific behaviour. With strategic programming, one gains full control over the application of basic actions, most notably full traversal control. Using a combinator style, traversal schemes can be defined, and actual traversals are obtained by passing the problem-specific ingredients as parameters to suitable schemes. The prime application domain for strategic programming is program transformation and analysis. In this paper, we provide a language-independent definition that generalises over existing incarnations of this idiom in term rewriting, functional programming, and object-oriented programming.

Draft paper (October 15, 2002)

(older versions are obsolete)

Bibtex entry

   author = "Ralf L{\"a}mmel and Eelco Visser and Joost Visser",
   title = "{The Essence of Strategic Programming}",
   year = 2002,
   month = oct # 15,
   note = "18 p.; Draft; Available at \url{}"