5. FIDIL: A Language for Scientific Programming
Paul N. Hilfinger, Philip Colella · Society for Industrial and Applied Mathematics eBooks · 1989
1 Introduction One fundamental goal of research in programming language design is to provide a better fit between problems and programming notation. In scientific computation, this quest is sometimes described as one of reducing the “semantic distance” between abstract mathematical descriptions of numerical methods and programs that implement them—in effect, of making abstract mathematical descriptions into programs. In its most ideal form, such a goal is generations beyond the current state of the art. However, there are intermediate points along the way to which we might aspire. In this paper, we describe one of them. Currently, most numerical scientific programming is done in Fortran. This language has served its purpose well, but the basic operators, quantities, and definitional facilities that it supports are rather limited. Under the “Fortran model” of computation, programs consist of sequences of individual arithmetic operations on numbers contained in named scalar variables or in individual elements of arrays. Fortran provides a certain amount of abstraction in the form of subprograms, but these are sufficiently clumsy to use and define that in practice their application is limited (at least when measured against the practice in other programming languages). Despite these oft-cited limitations, the scientific community has largely adapted itself to Fortran, and has developed a large body of software in the form of libraries and application code.