Telescoping languages: a compiler strategy for implementation of high-level domain-specific programming systems

As both machines and programs have become more complex, the programming process has become correspondingly more labor-intensive. This has created a software gap between the need for new software and the aggregate capacity of the current workforce to produce it. This problem has been compounded by the slow growth of programming productivity over the past two decades. One way to bridge this gap is to make it possible end users to develop programs in high-level domain-specific programming systems. The principal impediment to the success of these systems in the past has be the poor performance of the resulting applications. To address this problem, we have developed a new compiler technology that supports script-based telescoping languages, which can be built from base languages and domain-specific libraries. By exhaustively compiling the libraries in advance, we can ensure that the performance and portability of the applications produced by such systems are high, while the compile times for scripts are acceptable to the end user These qualities are essential if script-based systems are to be practical for development of production applications.

[1]  Mike Paterson,et al.  Linear unification , 1976, STOC '76.

[2]  K. Cooper,et al.  The impact of interprocedural analysis and optimization on the design of a software development environment , 1985, SLIPE '85.

[3]  Ken Kennedy,et al.  Interprocedural constant propagation , 1986, SIGP.

[4]  Ken Kennedy,et al.  A Practical Environment for Scientific Programming , 1987, Computer.

[5]  Ken Kennedy,et al.  Software support for irregular and loosely synchronous problems , 1992 .

[6]  Ken Kennedy,et al.  The ParaScope parallel programming environment , 1993, Proc. IEEE.

[7]  S.L. Johnsson CMSSL: a scalable scientific software library , 1993, Proceedings of Scalable Parallel Libraries Conference.

[8]  David A. Padua,et al.  A MATLAB to Fortran 90 translator and its effectiveness , 1996, ICS '96.

[9]  Stephen Wolfram,et al.  The Mathematica Book , 1996 .

[10]  Ken Kennedy Practical techniques to augment dependence analysis in the presence of symbolic terms , 1997 .

[11]  Brian D. Hahn,et al.  Essential MATLAB for Scientists and Engineers , 1997 .

[12]  J.C. Browne,et al.  A Common Data Management Infrastructure for Adaptive Algorithms for PDE Solutions , 1997, ACM/IEEE SC 1997 Conference (SC'97).

[13]  James C. Browne,et al.  A common data manage-ment infrastructure for parallel adaptive algorithms for PDE solutions , 1997 .

[14]  Ken Kennedy,et al.  Compilers, languages, and libraries , 1998 .

[15]  Jack J. Dongarra,et al.  Automatically Tuned Linear Algebra Software , 1998, Proceedings of the IEEE/ACM SC98 Conference.

[16]  Dragan Mirkovic,et al.  An adaptive software library for fast Fourier transforms , 2000, ICS '00.

[17]  Seth D. Bergmann,et al.  Compilers , 1973, CSC '73.