Strategy Construction in the Higher-Order Framework of TL

When viewed from a strategic perspective, a labeled rule base in a rewriting system can be seen as a restricted form of strategic expression (e.g., a collection of rules strictly composed using the left-biased choice combinator). This paper describes higher-order mechanisms capable of dynamically constructing strategic expressions that are similar to rule bases. One notable difference between these strategic expressions and rule bases is that strategic expressions can be constructed using arbitrary binary combinators (e.g., left-biased choice, right-biased choice, sequential composition, or user defined). Furthermore, the data used in these strategic expressions can be obtained through term traversals.A higher-order strategic programming framework called TL is described. In TL it is possible to dynamically construct strategic expression of the kind mentioned in the previous paragraph. A demonstration follows showing how the higher-order constructs available in TL can be used to solve several problems common to the area of program transformation.

[1]  Steve Roach,et al.  Transformation-oriented programming: A development methodology for high assurance software , 2003, Adv. Comput..

[2]  Maarten M. Fokkinga,et al.  Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire , 1991, FPCA.

[3]  Ralf Lämmel,et al.  Dealing with large bananas , 2000 .

[4]  Mahadevan Subramaniam,et al.  The transient combinator, higher-order strategies, and the distributed data problem , 2004, Sci. Comput. Program..

[5]  Hans Petter Langtangen,et al.  Modern Software Tools for Scientific Computing , 1997, Birkhäuser Boston.

[6]  Eelco Visser,et al.  A core language for rewriting , 1998, WRLA.

[7]  Eelco Visser Scoped Dynamic Rewrite Rules , 2001, Electron. Notes Theor. Comput. Sci..

[8]  Johan Jeuring,et al.  Merging Monads and Folds for Functional Programming , 1995, Advanced Functional Programming.

[9]  Terence J. Harmer,et al.  The TAMPR Program Transformation System: Simplifying the Development of Numerical Software , 1997, SciTools.

[10]  C. Kirchner,et al.  Introduction to the Rewriting Calculus , 1999 .

[11]  Claude Kirchner,et al.  An overview of ELAN , 1998, WRLA.

[12]  Steve Roach,et al.  Dependable software through higher-order strategic programming. , 2004 .

[13]  Peter G. Harrison,et al.  Functional Programming , 1988 .

[14]  Paul Klint,et al.  Term rewriting with traversal functions , 2003, TSEM.

[15]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[16]  Eelco Visser,et al.  Building program optimizers with rewriting strategies , 1998, ICFP '98.