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.
Bibtex entry
@unpublished{LVV02,
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{http://www.cwi.nl/~ralf}"
}