next up previous contents
Next: Drawbacks of FORTRAN 77 Up: Fortran Evolution Previous: Fortran Evolution

 

A Brief History of FORTRAN 77

Fortran, which originally stood for IBM Mathematical FORmula TRANslation System but has been abbreviated to FORmula TRANslation, is the oldest of the established ``high-level'' languages, having been designed by a group in IBM during the late 1950s. The language became so popular in the early 1960s that other vendors started to produce their own versions and this led to a growing divergence of dialects (by 1963 there were 40 different compilers). It was recognised that such divergence was not in the interests of either the computer users or the computer vendors and so FORTRAN 66 became the first language to be officially standardised in 1972 (it is quite common for the Fortran version number to be out of step with the standardisation year). The publication of the standard meant that Fortran became more widely implemented than any other language. By the mid 1970s virtually every computer, mini or mainframe, was supplied with a standard-conforming FORTRAN 66 language processing system. It was therefore possible to write programs in Fortran on any one system and be reasonably confident that these could be moved fairly easily to work on any other system. This, and the fact that Fortran programs could be processed very efficiently, led to Fortran being the most heavily-used programming language for non-commercial applications.

The standard definition of Fortran was updated in the late 1970's and a new standard, ANSI X3.9-1978, was published by the American National Standards Institute. This standard was subsequently (in 1980) adopted by the International Standards Organisation (ISO) as an International Standard (IS 1539 : 1980). The language is commonly known as FORTRAN 77 (since the final draft was actually completed in 1977) and is the version of the language now in widespread use. Compilers, which usually support a small number of extensions have, over the years, become very efficient. The technology which as been developed during the implementation of these compilers will not be wasted as it can still be applied to Fortran 90 programs.

The venerable nature of Fortran and the rather conservative character of the 1977 standard revision left FORTRAN 77 with a number of old-fashioned facilities that might be termed deficiencies, or at least infelicities. Many desirable features were not available, for example, in FORTRAN 77 it is very difficult to represent data structures succinctly and the lack of any dynamic storage means that all arrays must have a fixed size which can not be exceeded; it was clear from a very early stage that a new, more modern, language needed to be developed. Work began in early 80's on a language known as `Fortran 8x'. (`x' was expected to be 8 in keeping with the previous names for Fortran.) The work took 12 years partly due to the desire to keep FORTRAN 77 a strict subset and also to ensure that efficiency (one of the bonus's of a simple language) was not compromised. Languages such as Pascal, ADA and Algol are a treat to use but cannot match Fortran for efficiency.

Fortran 90 is a major development of the language but nevertheless it includes all of FORTRAN 77 as a strict subset and so any standard conforming FORTRAN 77 program will continue to be a valid Fortran 90 program. The main reason for this is due to the vast amount of so-called `dusty deck' programs that litter Scientific installations all over the world. Many man-years have been put into writing these programs which, after so many years of use (that is in-the-field testing), are very reliable. Most of the dusty deck codes will be FORTRAN 77 but there are doubtless many lines of FORTRAN 66 too.

In addition to the old FORTRAN 77 constructs, Fortran 90 allows programs to be expressed in ways that are more suited to a modern computing environment and has rendered obsolete many of the mechanisms that were appropriate in FORTRAN 77. Here, we have tried to present an approach to programming which uses the new features of Fortran 90 to good effect and which will result in portable, efficient, safe and maintainable code. We do not intended to present a complete description of every possible feature of the language.

In Fortran 90 some features of FORTRAN 77 have been replaced by better, safer and more efficient features, many of these are to be removed from the next interim revision of the language -- Fortran 95 although it is expected that many compilers will still support them as `extensions'. Tools exist to effect automatic removal of such obsolescent features, examples of these are (Pacific Sierra Research's) VAST90 and (NA Software's) LOFT90 In addition, these tools perform differing amounts of vectorisation (transliteration of serial structures to equivalent parallel structures).

As the Fortran 90 standard is very large and complex there are (inevitably) a small number of ambiguities / conflicts / grey areas. Such anomalies often only come to light when compliers are developed. Since standardisation many compilers have been under development and a number of these anomalies have been identified. A new standard, Fortran 95, will recitify these faults and extend the language in the appropriate areas. In the last couple of years the Fortran 90 based language known as High Performance Fortran (HPF) has been developed. This language contains the whole of Fortran 90 and also includes other desirable extensions. Fortran 95 will include many of the new features from HPFgif, [3].

Return to corresponding overview page gif


next up previous contents
Next: Drawbacks of FORTRAN 77 Up: Fortran Evolution Previous: Fortran Evolution

©University of Liverpool, 1997
Wed May 28 20:20:27 BST 1997
Not for commercial use.