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 naming
 ----------------
 Both forms of the name, FORTRAN and Fortran, are in use. 

 In this text, the 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 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 it possible 
 to use assembly language code right in the middle of 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
 -------------------
 Many compilers used today still conform to this standard.

 FORTRAN 77 added: 

    DO loops with a decreasing control variable (index). 
    Block if statements IF ... THEN ... ELSE ... ENDIF
      (before F77 there were only IF GOTO). 
    Pretest of DO loops, before F77 DO loops were always 
      executed at least once, so you had to add an IF GOTO 
      before the loop.
    CHARACTER data type (before characters were always 
      stored inside INTEGER variables).
    Apostrophe delimited character string constants.
    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: 

    http://www.kcl.ac.uk/kis/support/cc/staff/brian/forsaga.html



 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:

    Free format source code form (column independent)
    Modern control structures (CASE & DO WHILE)
    Records (structures)
    Array notation (array sections, array operators, etc.)
    Dynamic memory allocation
    Derived types and operator overloading
    Keyword argument passing, INTENT (in, out, inout)
    Numeric precision and range control 
    Modules


 Fortran 95 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