Partial Evaluation of Numerical Programs in Fortran.
Romana Baier, Robert Glück, Robert Zöchling · 1994
Abstract our results using the Fast Fourier Transformation, the N-body attraction problem, and the cubic splines interpolation as examples.We investigate the application of partial evaluation to numerically oriented computation in scientific and engineering applications. We present our results using the Fast Fourier Transformation, the N-body attraction problem, and the cubic splines interpolation as examples. All programs are written in Fortran 77, specialized using our Fortran partial evaluator, and compiled into executable machine code using a commercial Fortran compiler. The results demonstrate that existing partial evaluation technology is strong enough to improve the efficiency of a large class of numerical programs. However, using partial evaluation as a development tool in the ‘real world ’ still remains a challenging problem. Our work differs from most previous works in that we apply partial evaluation in a more realistic setting. We use Fortran that, after all, is the most widely used language for scientific and engineering applications [11], a commercial Fortran compiler, and the source code for the Fast Fourier Transformation was taken from a Fortran compiler benchmark. Furthermore, we implemented a partial evaluator for a subset of Fortran that is based on current partial evaluation technology [16]. This extends previous works on partial evaluation of imperative languages and of numerical computations. Why Fortran? We chose this imperative language for several reasons. There is still a large gap between the state-of-the-art of current research in partial evaluation and its potential significance. Due to the widespread use of Fortran over a period of more than 30 years, a vast body of expertise is available in the form of standard libraries representing an enormous amount of human effort and investment. It is unlikely that existing applications and libraries will be ported to other languages in order to take full advantage of partial evaluation. 1