1-1 A Brief History of FORTRAN/Fortran
***************************************
(Thanks to John Nebel for the nice description of a FORTRAN's user
point of view)
A note on names
---------------
Both forms of the language name, FORTRAN and Fortran, are used.
In this text, older versions (before and including 1977) of the
language will be referred to as FORTRAN, post-1977 ones will be
referred to as 'Fortran 90', 'Fortran 95' etc.
The development of FORTRAN I
----------------------------
The first FORTRAN compiler was a milestone in the history of computing,
at that time computers had very small memories (on the order of 15KB,
it was common then to count memory capacities in bits), they were slow
and had very primitive operating systems (if they had them at all).
At those days it seemed that the only practical way is to program in
assembly language.
The pioneers of FORTRAN didn't invent the idea of writing programs in a
High Level Language (HLL) and compiling the source code to object code
with an optimizing compiler, but they produced the first successful HLL.
They designed an HLL that is still widely used, and an optimizing compiler
that produced very efficient code, in fact the FORTRAN I compiler held
the record for optimizing code for 20 years!
This wonderful first FORTRAN compiler was designed and written from
scratch in 1954-57 by an IBM team lead by John W. Backus and staffed with
super-programmers like Sheldon F. Best, Harlan Herrick, Peter Sheridan,
Roy Nutt, Robert Nelson, Irving Ziller, Richard Goldberg, Lois Haibt
and David Sayre. By the way, Backus was also system co-designer of the
computer that run the first compiler, the IBM 704.
The new invention caught quickly, no wonder, programs computing nuclear
power reactor parameters took now hours instead of weeks to write, and
required much less programming skill. Another great advantage of the new
invention was that programs now became portable. Fortran won the battle
against Assembly language, the first in a series of battles to come,
and was adopted by the scientific and military communities and used
extensively in the Space Program and military projects.
The phenomenal success of the FORTRAN I team, can be attributed in part
to the friendly non-authoritative group climate. Another factor may be
that IBM management had the sense to shelter and protect the group,
even though the project took much more time than was first anticipated.
FORTRAN II, III, IV and FORTRAN 66
----------------------------------
FORTRAN II (1958) was a significant improvement, it added the capability
for separate compilation of program modules, assembly language modules
could also be 'linked loaded' with FORTRAN modules.
FORTRAN III (1958) was never released to the public. It made possible
using assembly language code right in the middle of the FORTRAN code.
Such "inlined" assembly code can be more efficient, but the advantages
of an HLL are lost (e.g. portability, ease of use).
FORTRAN IV (1961) was a 'clean up' of FORTRAN II, improving things
like the implementation of the COMMON and EQUIVALENCE statements,
and eliminating some machine-dependant language irregularities.
A FORTRAN II to FORTRAN IV translator was used to retain backward
compatibility with earlier FORTRAN programs.
On May 1962 another milestone was traversed, an ASA committee started
developing a standard for the FORTRAN language, a very important step
that made it worthwhile for vendors to produce FORTRAN systems for
every new computer, and made FORTRAN an even more popular HLL.
The new ASA standard was published in 1966, and was known accordingly
as FORTRAN 66, it was the first HLL standard in the world.
FORTRAN 77 standard
-------------------
Formally outdated many years ago, compilers for FORTRAN 77 are still
used today, mainly to re-compile legacy code.
FORTRAN 77 added:
o DO loops with a decreasing control variable (index).
o Block if statements IF ... THEN ... ELSE ... ENDIF.
Before F77 there were only IF GOTO statements.
o Pre-test of DO loops. Before F77 DO loops were always
executed at least once, so you had to add an IF GOTO
before the loop if you wanted the expected behaviour.
o CHARACTER data type. Before F77 characters were always
stored inside INTEGER variables.
o Apostrophe delimited character string constants.
o Main program termination without a STOP statement.
The next Fortran standard (fortran 90) was published too many years
after Fortran 77 was out, allowing other programming languages to
evolve and compete with Fortran. For example, the system-programming
language C, and its evolved variant C++, became more popular in the
traditional strongholds of Fortran: the scientific and engineering
worlds, in spite of being non-computationally oriented.
The delay in publishing a new standard can be attributed in part
to political reasons as testified by Brian Meek in:
The Fortran Saga
Fortran 90 standard
-------------------
A new standard has been designed and widely implemented in recent years.
It is unofficially called Fortran 90, and adds many powerful extensions
to FORTRAN 77. The language in its present form is competitive with
computer languages created later (e.g. C).
Fortran 90 added:
o Free format source code form (column independent)
o Modern control structures (CASE & DO WHILE)
o Records/structures - called "Derived Data Types"
o Powerful array notation (array sections, array operators, etc.)
o Dynamic memory allocation
o Operator overloading
o Keyword argument passing
o The INTENT (in, out, inout) procedure argument attribute
o Control of numeric precision and range
o Modules - packages containing variable and code
Fortran 95 standard
-------------------
Fortran 95 added some minor improvements to the Fortran 90 standard.
Fortran from a user point of view
---------------------------------
... yes, it was FORTRAN on the IBM 7094. [I] Have written volumes
of Fortran code and have suffered through "it ought to be written
in assembly language", "it ought to be written in PL/1", "it ought
to be written in COBOL", "it ought to be written in Pascal", "it
ought to be written in C", etc. depending on what generation of
programmers was doing the criticizing.
A few years ago, in the COBOL era, one of the users resorted to
replying to questioners by showing them some function they liked
and asking "you tell me, what language was that written in?"
... It was good to see someone else cognizant of the language's
obvious merits.
Bibliography on FORTRAN history
-------------------------------
Annals of History of Computing, 6, 1, January, 1984 (whole issue).
Programming Systems and Languages (S. Rosen ed.), McGraw Hill,
1967, pp 29-47 (this is Backus's original paper).
History of Programming Languages (R.L. Wexelblat ed.),
Academic Press, 1981, pp 25-74.
A summary appears in vol. 5 of the Encyclopedia of Science
and Technology, Academic Press, 1986, under 'Fortran'.
and in Chapter 1 of Fortran 90 Explained (Oxford, 1990).
+-------------------------------------------------+
| FORTRAN IS THE COMPUTING LANGUAGE OF CHOICE |
+-------------------------------------------------+
Return to contents page