(from FORmula TRANslator)
One of the original programming languages for problems of computational mathematics, developed in 1954–1956 for the IBM 704 machine, and in the version Fortran II becoming the first widespread algorithmic language in the world.
Later Fortran came to mean a family of programming languages derived from Fortran II, with direct or indirect claims to the role of its successor, and keeping the name Fortran. Most of them were constructed as extensions of one of the two standard ones (1962–1964): Basic Fortran and Fortran IV, and subsequently came together.
Fortran provides means of representing input and output of arithmetic, logical and text data. Arithmetic data include integers, real (with ordinary and enhanced precision) and usually also complex numbers. There is the traditional set of operations and relations defined on arithmetic values. These values can be kept in memory as scalar variables or as elements of homogeneous arrays.
A program consists of a "main program" and a collection of subprograms (procedures, cf. Procedure), which can be compiled separately. A change in the order of execution of the text is brought about by means of simple and computable jumps, conditional operators, loops, and procedure calls.
Subprograms pass information to each other through their parameters and common blocks of memory. Since recursive calls are forbidden, and the array bounds are constant, a part of the action on the access to elements of arrays can be prepared during compiling, which significantly speeds up the calculation for a compiled program.
One could say that the main feature of Fortran consists not in the language itself, but in the unique role that it has secured for itself in world programming. From a "mathematical machine code" for the IBM 704 it has turned, by means of an evolution reminiscent of that of natural languages, into the most widespread programming language. The availability of at least one version of Fortran has become obligatory for every general-purpose computer.
In this evolution Fortran has retained a number of machine-code features, which are important for the convenience of programming or using a program, such as composite constants (data) and separate translation. They have led to the accumulation of huge libraries of Fortran subprograms on numerical analysis, statistics, machine graphics, engineering calculations, etc.
At the same time Fortran has kept a highly archaic syntax. Grouping of operators (for example in loops) is achieved by labels, which not only obscures the program, but also weakens the syntactic control. For example, if in a typical loop
$$ \textrm{ DO } 2I = 1,100 $$
$$ 2 A ( I, J) = 0 $$
one omits either comma, or changes the first one to a full stop, no error is detected. This reduces the reliability of Fortran programs and constitutes the most important defect of the language. It is partly overcome in new standards (for example, in Fortran 77).
[1] | D.D. MacCracken, W.S. Dorn, "Numerical methods with Fortran-IV programming, case studies" , Wiley (1972) |
[2] | F. Grund, "Fortan-IV Programmierung" , Deutsch. Verlag Wissenschaft. (1972) |
[3] | H. Katzan, "Fortran 77" , v. Nostrand (1978) |
[a1] | J. Backus, "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs" Comm. ACM , 21 : 8 (1978) pp. 613–641 |
[a2] | J. Backus, "The history of FORTRAN I, II and III" ACM SIGPLAN NOTICES , 13 : 8 (1978) pp. 165–180 |