FORTRAN
IBM launched the FORTRAN project during the summer of 1954, an acronym for FORmula TRANslating, under the leadership of John Backus. At that time, programming IBM’s new computer, the 704, was an uphill battle. Nearly two-thirds of scientific project budgets were consumed in the mere preparation of programs. Worse still, planning, writing, and debugging swallowed up more than 90% of the total project time.
Faced with this reality, Backus’s team nurtured the clear ambition to create a language that would resemble mathematical notation while automatically generating efficient machine code. The bold objective was to reduce the time spent on coding and debugging by at least 80%.
The system’s development stretched over two and a half years. A team of 18 people worked tirelessly on it. Their efforts culminated in 1957 with a complete system comprising two fundamental elements: the FORTRAN language and its translator, called the executive routine.
FORTRAN disrupted conventions with its innovations. Arithmetic expressions were now written naturally, close to classical mathematical notation. The asterisk (*) symbolized multiplication while the double asterisk (**) represented exponentiation. The system generated optimized machine code, avoiding redundant calculations and selecting the best instructions for each operation.
The language was packed with novel features. The DO and IF statements controlled execution flow. Multidimensional arrays could be easily manipulated through subscripted variables. The READ, PRINT, and FORMAT statements handled input-output flexibly. Programmers could define their own functions, promoting code reuse and better program structure.
The technical prowess of the FORTRAN translator lay in its ability to produce machine code nearly as efficient as that manually written by seasoned programmers. This performance resulted from fine-grained analysis of the source code and innovative optimization techniques. The translator’s architecture was divided into six distinct sections, each fulfilling a precise function in the translation chain.
A concrete example illustrates the system’s efficiency. After a day of training and a few consultations of the manual, a programmer completed an application in just four hours, using 47 FORTRAN instructions. Compilation on the 704 took six minutes and generated approximately 1000 machine instructions. The programmer spotted and corrected an error in the code without resorting to complex debugging techniques. This program would have required three days of manual coding, not counting debugging time.
Success came quickly. FORTRAN established itself as the reference in scientific programming. After its first standardization in 1966, the language was widely adopted, easy to teach, and relatively machine-independent. It demonstrated the advantages of subroutines and separate compilation.
The 1970s saw new languages emerge that revealed certain limitations of FORTRAN. A new version, Fortran 77, was standardized in 1978. Despite welcome improvements, this update did not meet all the expectations of a community hungry for more profound changes. Other languages like Pascal, Ada, Modula 2, C, and C++ began to gain ground in scientific and academic circles.
It wasn’t until 1991 that Fortran 90 emerged, a major evolution. This version introduced a plethora of modern features: free-form source allowing longer variable names, revised control structures, precise specification of numerical precision, treatment of arrays as entities in their own right, dynamic memory allocation with pointers and recursion, user-defined data types, modules with operator overloading and generic procedures.
Fortran 95, finalized in 1996, brought more modest but significant improvements such as the FORALL statement for parallel processing, user-defined pure and elemental subroutines, as well as various optimizations concerning pointers and derived types.
A leap forward occurred with Fortran 2003, which integrated object-oriented programming. This version included inheritance of derived types, polymorphism allowing variables to change type during execution, type-bound procedures, and interoperability with the C language. Input-output capabilities were enhanced, and support for IEEE arithmetic exceptions appeared.
The latest evolution, Fortran 2008, further enriched the language with support for parallel programming via coarray arrays, an increase in the maximum array rank to fifteen dimensions, new features to improve performance such as the DO CONCURRENT construct, and the addition of numerous intrinsic mathematical functions for scientific computing.
From a pioneering language designed to simplify the programming of scientific computers, FORTRAN has transformed into a modern tool that integrates contemporary programming paradigms while remaining faithful to its primary vocation: offering scientists and engineers an efficient means of expressing their calculations. Its longevity stems from its ability to evolve while maintaining backward compatibility, thereby preserving the massive investments made in existing code. Fortran 77 code remains a valid subset of recent versions, making it possible to gradually modernize organizational applications without rebuilding everything from scratch.
This exceptional robustness finds a striking illustration in the Voyager space probes. More than 45 years after their launch, 24 billion kilometers from Earth, they still operate with their original FORTRAN code. In 2023, NASA teams achieved a technical feat by successfully deploying patches to this code, testifying to the extraordinary longevity of the language under extreme conditions.