Motivation and Importance
It is becoming increasingly difficult to implement and optimize algorithms on modern processors, which rely on efficient use of the memory hierarchy, vector instructions, and parallelism to achieve high performance. Automated techniques are required to tune performance for a large set of constantly changing platforms (See Proc. of IEEE on Program Generation, Optimization, and Platform Adaptation, Vol. 93, No. 2, Feb. 2005). Moreover, given a wide choice of algorithms and implementations it is not clear which algorithm/implementation is best on a given platform, and this choice may depend on problem size and other properties of the input. With many possible algorithmic choices it is not possible to to implement and explore all possibilities without automated methods and with a large number of programs automated methods are crucial for correctness.
For problems with mathematical structure algebraic techniques and symbolic computation can be used to automatically derive algorithm and implementation choices (see "Computer Algebra and Signal Processing," J. Symbolic Computation, Vol. 37, 2004, "Problem-Solving Environments for Computational Science," Computing in Science and Engineering, vol. 4, no. 3, pp. 18-21, 1997, and the Theorema project for examples in signal processing, computational science and engineering, and the use of automated reasoning).