The TAMPRProgram Transformation System

Program-Transformation.Org: The Program Transformation Wiki
The TAMPR Program Transformation System: Simplifying the Development of Numerical Software

by J. M. Boyle, T. J. Harmer and V. L. Winter

In E. Arge, A.M. Bruaset and H.P. Langtangen (eds.) Modern Software Tools in Scientific Computing pp 353-372, Birkhäuser, 1997


Summary

TAMPR stands for Transformation Assisted Multiple Program Realisation System. The TAMPR system, which has been in use since the seventies, is designed for the derivation of efficient implementations from a specification through transformations, in particular in the domain of numerical programming.

A TAMPR specification consists of a series of rewrite rules. The TAMPR rewrite engine applies rewrite rules exhaustively to reach a canonical form. The problem of non-termination caused by rules that are each others inverses is solved in TAMPR by organizing a large transformation into a sequence of consecutive canonicalizations under different sets of rewrite rules. Typically such a sequence starts with several preparatory steps that bring the program in the right form, followed by the pivotal step which achieves the actual transformation, followed by some post-processing.

In the paper this is illustrated with the transformation from a polynomial in y:

  (x^2 + 2x + 1)y^2 + (x^2 - 9)y - (20x^2 + 18x - 18)
to the equivalent polynomial in x
  (y^2 + y - 20)x^2 + (2y^2 - 18)x + (y^2 - 9y + 18)
This is achieved by means of the following pipeline of canonicalizations:
  sum-of-monomonials;   
  x-commuted-to-right;
  like-powers-collected;
  x-factored-out
(Note that the paper uses a different notation for this.) The sum-of-monomonials transforms the polynomial into
  x^2y^2 + 2xy^2 + y^2 + x^2y -9y -20x^2 - 18x + 18
By commuting the multiplications, the x-commuted-to-right canonical form is achieved:
  y^2x^2 + 2y^2x + y^2 + yx^2 -9y -20x^2 - 18x + 18
The like-powers-collected canonical form commutes the additions to bring monomonials with the same power of $x$ together:
  y^2x^2 + yx^2 - 20x^2 + 2y^2x - 18x + y^2 -9y + 18
Finally, by factoring out the powers of x, the desired form is reached.


EelcoVisser - 07 May 2001

CategoryReview, CategoryTransformation | Contributions by EelcoVisser