Fortran
FORTRAN (FORmula TRANslation -- also Fortran) is a programming language originally developed in the 1950s and still in use today. Although originally a procedural language, recent versions of Fortran have included some object-oriented features. It is mainly used for scientific computing and numerical analysis.
The first FORTRAN compiler was developed for the IBM 704 in 1954-57 by a team lead by John W. Backus whilst he was at IBM. This compiler was an optimizing compiler, because the authors were worried that no one would use the language if its performance was not comparable to assembly language.
Because of the heavy use by scientists doing numerical work the language grew in ways that encouraged compiler writers to produce compilers that generated high quality (fast) code. There are many high performance compiler vendors. Much work and research in compiler theory and design was motivated by the need to generate good code for Fortran programs.
Several revisions of the language have appeared, including the very well known FORTRAN IV (the same as FORTRAN 66), FORTRAN 77, and Fortran 90. The most recent formal standard for the language was published in 1997 and is known as Fortran 95. IBM's versions were never as popular as those developed by others, which was especially true of FORTRAN IV -- WATFOR, the version of FORTRAN IV developed at the University of Waterloo, Canada, was universally preferred because its reports of compilation errors were so much better than IBM's. The software for automatically generating flow charts from FORTRAN programs was also developed outside IBM.
Initially, the language relied on precise formatting of the source code and heavy use of statement numbers and goto statements.
Every version introduced 'modern' programming concepts, such as source code comments and output of text, IF-THEN-ELSE (in FORTRAN 77), recursion (in Fortran 90) and parallel constructs, while still attempting to maintain Fortran's 'lean' profile and high performance. Among the most popular specialized FORTRAN-based languages were SAS, for generating statistical reports, and SIMSCRIPT, for simulating processes involving queuing.
Vendors of high performance scientific computers (Burroughs, CDC, CRAY, IBM, Texas Instruments, ...) added extensions to FORTRAN to make use of special hardware features such as: instruction cache, CPU pipeline, vector arrays, etc. For example, one of IBM's FORTRAN compilers (H Extended IUP) had a level of optimization which reordered the machine code instructions to keep several internal arithmetic units busy at the same time. Another example is CFD, a special 'version' of FORTRAN designed specifically for the ILLIAC IV supercomputer, running at NASA's Ames Research Center. These extensions have either disappeared over time or had elements incorporated into the main standard; the major remaining extension is OpenMP, which is a cross-platform extension for shared memory programming. One new extension, CoArray Fortran, is intended to promote parallel programming.
As what was basically a first attempt at designing a high-level language, the language's syntax is regarded as arcane by many programmers who learned more modern languages. It is difficult to write a lexical analyser for, and one-character mistakes can lead to runtime errors rather than compilation errors if more recent constructs such are not used. Some of the earlier versions, particularly, lacked facilities that would be regarded as useful in modern machines, such as dynamic memory allocation. At the same time, the syntax of Fortran has been tuned to scientific and numerical work, and many of its deficiencies have been addressed in more recent verisons. For example, Fortran 95 has very short commands for performing mathematical operations on matrices and arrays which not only greatly improves program readability but also provides useful information to the compiler to enable it to vectorize operations. For these reasons, Fortran is not often used outside scientific and engineering numerical analysis, but remains the language of choice for high performance numerical computing.
Meaning and spelling of the name
The name "Fortran" is short for "Formula Translation". The language was formerly known as FORTRAN (and older variants of it still are). Since Fortran 90, the capitalization has been abandoned. The published formal standards use "Fortran".
Standards
The two standards below reflect the current Fortran implementations.
- ANSI X3.198-1992 (R1997). Title: Programming Language "Fortran" Extended. Informally known as Fortran 90. This standard was published by ANSI.
- ISO/IEC 1539-1:1997. Title: Information technology - Programming languages - Fortran - Part 1: Base language. Informally known as Fortran 95. There are a further 2 parts to this standard. Part 1 has been formally adopted by ANSI.
External links:
- Brian Meek: The Fortran (not the foresight) saga: the light and the dark, Fortran Forum, Vol 9 No 2, October 1990, pp 23-32. Online at http://www.kcl.ac.uk/kis/support/cit/staff/brian/forsaga.html. A good overview over the long and intricate Fortran history.