John Backus (1924-2007), Fortran's father

Following @beliavsky 's post, I think that John Backus deserves his own post in our Discourse. And knowledge about the birth of Fortran can help the community to promote the language: as for human beings, many qualities and defects of Fortran come from its early years.

Speedcoding (1953)

In 1953, John Backus works on the IBM 701 Speedcoding system, a simple interpreter to ease computing with floating point numbers (the IBM 704 will be the first to have builtin floating point reals). In those early days, programmers are programming in machine language, a tedious task. Backus says that the operation cost is equally divided between the operation cost of the computer and personnel cost [1]. And Speecoding allows to reduce the cost by accelerating the programming and testing of programs, although running far slower than machine language.

At that time, other people were working on the problem. For example, Grace Hopper completed in 1952 what is considered the first compiler: the A-0 Compiler.

Fortran (1954-1958)

In december 1953, John Backus writes a letter to his boss to propose the Fortran project, for the new IBM 704. It is motivated by the same economical reasons as Speedcoding and will be funded by IBM without questions for that reason.

Interestingly, FORTRAN is described to be composed of two parts: the language itself and the translator. In 1957, Backus does not still use the word “compiler” [2], although he uses the verb “to compile”.

In [3] he insists that their objective was nor to translate quickly, nor to elaborate features of the language, but to obtain very fast object programs, working especially on the optimization of the loops and the way array indexes were treated.

In [4] he explains that most people were skeptical about the ability of a program computer to generate a machine code as fast as would human beings. That’s why his group wanted to create a compiler which would produce optimized machine code whatever the problem, fearing that if a particular problem would be running much slower than a human being’s code, Fortran would be rejected.

Thus this interesting sentence which tells much about Fortran: “Because of our 1954 view that success in producing efficient programs was more important than the design of the Fortran language
” And: “As far as we were aware, we simply made up the language as we went along. We did not regard language design as a difficult problem, merely a simple prelude to the real problem: designing a compiler that could produce efficient programs.” While people working on other early languages were focused on their language, Backus’ group was focused on the translator program (compiler).

It was already quite sophisticated: there was even a compiling phase investigating the frequency of execution of each part of the program, using a Monte Carlo algorithm. Backus will even pretend that it remained the best compiler for more than 20 years. Note also that they were working for the IBM 704, not even thinking Fortran will run one day on other computers.

The compiler was ready in April 1957 and distributed to all IBM 704 installations. Interestingly, they first tried to distribute it using punched cards, but failed and finally used magnetic tapes


Backus also insists on the importance of the writing of “Programmer’s Primer” (Spring 1957) by Mitchell, the first Fortran tutorial, on the subsequent growth in the use of Fortran.

After Fortran

While working on Algol, he worked on the Backus-Naur form (Backus–Naur form - Wikipedia) to describe the syntax of the language.

He will also work on functional programming. In the conclusion of [4], he wrote: “By splitting programming into a world of expressions, one the one hand, and a world of statements, on the other, von Neumann languages prevent the effective use of higher-level combining forms”. “The world of expressions has some elegant and useful mathematical properties, whereas the world of statements is a disorderly one without useful mathematical properties.”

In 1977, he will be the laureate of the A.M. Turing Award (the equivalent of Nobel Prize for computer science), “for profound, influential, and lasting contributions to the design of practical high-level programming systems, notably through his work on FORTRAN, and for seminal publication of formal procedures for the specification of programming languages”:
https://amturing.acm.org/award_winners/backus_0703524.cfm

[1] J. Backus, “The IBM 701 Speedcoding System,” J. ACM, vol. 1, no. 1,
1953, pp. 4–6. https://archive.computerhistory.org/resources/access/text/2018/02/102632810-05-01-acc.pdf
[2] Backus, J. W., H. Stern, I. Ziller, R. A. Hughes, R. Nutt, R. J. Beeber, S. Best, et al. ‘The FORTRAN Automatic Coding System’. In Papers Presented at the February 26-28, 1957, Western Joint Computer Conference: Techniques for Reliability on - IRE-AIEE-ACM ’57 (Western), 188–98. Los Angeles, California: ACM Press, 1957. https://doi.org/10.1145/1455567.1455599. http://archive.computerhistory.org/resources/text/Fortran/102663113.05.01.acc.pdf
[3] Backus, J. W., and W. P. Heising. ‘Fortran’. IEEE Transactions on Electronic Computers EC-13, no. 4 (August 1964): 382–85. https://doi.org/10.1109/PGEC.1964.263818. http://www.softwarepreservation.org/projects/FORTRAN/paper/BackusHeising-FORTRAN-1964.pdf
[4] Backus, J. ‘The History of Fortran I, II, and III’. IEEE Annals of the History of Computing 20, no. 4 (December 1998, first published in July 1979): 68–78. https://doi.org/10.1109/85.728232. http://www.softwarepreservation.org/projects/FORTRAN/paper/p165-backus.pdf

8 Likes

More gory details can be found in Lorenzo, Mark Jones: “Abstracting Away the Machine: The History of the FORTRAN Programming Language (FORmula TRANslation)”, Independently published, ISBN 978-1082395949, (Aug. 2019), which I can highly recommend.

Mike Metcalf

3 Likes

A full interview from September 2006, excerpts of which are shown at the ACM Turing Award page, can be found on Youtube:

He also appears in this documentary prepared for an earlier anniversary of the language (at least the comments say so):

3 Likes

The transcription of that interview can be found here:

3 Likes

Reading that interview was a strange experience. It was made in 2006, as J. Backus was approaching 81 years old, one year before he passed away. He seemed not a very talkative man, but quite fun and humble, not taking too seriously the achievements he made in his life.

"Programming is a pretty low-level enterprise"
I have not learned more about the beginnings of Fortran, but interestingly discovered that he did not seem to be someone passionate about programming, as we may think. On the contrary, my feeling is his work was, in a certain sense, mainly about getting rid of programming!

  • Speedcoding and Fortran were about getting rid of machine language programming. And I feel the effort of people coding fpm and the stdlib is similar: getting rid of reinventing the wheel, a quite common syndrome in our Fortran world.
  • His work on functional programming (or rather function-level programming) was an attempt to get rid of Von Neumann programming style: "Basically, the idea was to try to describe the transformation that you wanted to take place, rather than how to do it. "

He seemed rather a mathematical mind (Masters in Mathematics) and was more proud of his work on what he called functional programming than on Fortran:
- “Well, I guess the question of it still seems that programming is a pretty low-level enterprise, and that somebody ought to be thinking about how to make it higher; really higher level than it is.”
- “Actually that functional programming was an effort to try to go up a level, so that you didn’t have to keep saying how to do everything, but rather say what you wanted done.”

A wise man’s conclusion
Interviewer: “Is the world a better place because of all the software that’s been written in your lifetime, or not?”
Backus: “Well, in human terms, probably not. Because it just takes us further and further away from human affairs. But as far as economic, and welfare, it’s done a lot of good. So it’s a mixed bag.


But I don’t envy you, I’m afraid. I think that we’re getting more and more technological and less and less human oriented.”

His advice to young people in High School: “Well, don’t go into software. It’s just such a complicated mess that you just frazzle your brains trying to do anything worthwhile.”
And I am not sure it’s a joke
 Half a joke?

9 Likes

In 1955, IBM formed the SHARE user group to provide a forum for its customers to exchange experience and ideas. John Backus made there regular presentations during the development of the first FORTRAN compiler. In April 1957, Westinghouse engineers reported the compilation of the first FORTRAN program outside IBM. As the language spread, a SHARE subgroup was dedicated to it: the FORTRAN Standard Committee.

Reference: Abstracting Away the Machine: The History of the FORTRAN Programming Language (2019) by Mark Jones Lorenzo.

SHARE can therefore be considered the oldest ancestor of the Fortran Discourse. It is probably also the first open source community.

3 Likes

Yesterday (17 March) was the anniversary of John Backus’ death (2007).

2 Likes

so true!

1 Like

In the summer of 1976, the first generation of computer legends—top engineers, scientists, and software pioneers—got together to reflect on the first 25 years of their discipline at the Los Alamos National Laboratories. After a multi-year recovery and restoration process, here are never-before-seen video recordings of this unique event.

This lecture’s transcript was included in the edited volume from the conference, viz. Backus, J., “Programming in America in the 1950s – Some Personal Impressions,” in Metropolis, N., and Howlett, J., Rota, Gian-Carlo, A History of Computing in the Twentieth Century, New York: Academic Press, 1980, pp. 125 – 135.

But beside John Backus, you will find video conferences by Nicolas Metropolis, Konrad Zuse, Edsger W. Dijkstra, Donald Knuth, Stanislaw M. Ulam and 15 other legends :

More on this historical conference:

Backus is #63 on the official photo.

4 Likes

Thanks, @vmagnin for this historic research. In 1976 I was still one year before entering the university where I started to learn FORTRAN (all upper-case then :slight_smile: )
I’ve checked Wikipedia for a few names from the list which made some echoes in my mind and found such a curio in E.Dijkstra page:

When Dijkstra married Maria (Ria) C. Debets in 1957, he was required as a part of the marriage rites to state his profession. He stated that he was a programmer, which was unacceptable to the authorities, there being no such profession then in The Netherlands.

1 Like

A few interesting paragraphs:

Programming in the early 1950s was really fun. Much of its pleasure resulted from the absurd difficulties that “automatic calculators” created for their would-be users and the challenge this presented. The programmer had to be a resourceful inventor to adapt his problem to the idiosyncrasies of the computer: He had to fit his program and data into a tiny store, and overcome bizarre difficulties in getting information in and out of it, all while using a limited and often peculiar set of instructions. He had to employ every trick he could think of to make a program run at a speed that would justify the large cost of running it. And he had to do all of this by his own ingenuity, for the only information he had was a problem and a machine manual. Virtually the only knowledge about general techniques was the notion of a subroutine and its calling sequence.

A Möbius bug in a loop!

One early problem strained the SSEC’s capacity to the limit. The computation was divided into three phases; in the first phase a tape of many yards of intermediate results was punched out; during the second phase this tape was glued into a loop and mounted on a tape-reading station so that in the third phase it could be read many times. The problem ran successfully through many cycles of these three phases, but then a mysterious error began to appear and disappear regularly in the third phase. For a long time no one could account for it. Finally, the large pile of intermediate data tape was pulled from the bin below its reading station and a careful inspection revealed that it had been glued to form a Möbius strip rather than a simple loop. The result was that on every second revolution of the tape each number would be read in reverse order.

The resistance of the priesthood

The priesthood wanted and got simple mechanical aids for the clerical drudgery which burdened them, but they regarded with hostility and derision more ambitious plans to make programming accessible to a larger population. To them, it was obviously a foolish and arrogant dream to imagine that any mechanical process could possibly perform the mysterious feats of invention required to write an efficient program. Only the priests could do that. They were thus unalterably opposed to those mad revolutionaries who wanted to make programming so easy that anyone could to it.

1954: is the whole affair feasible?

The facts are these: work on FORTRAN began about January 1954 by Ziller and myself. By about April we had been joined by Harlan Herrick, who coauthored with me the paper “IBM 701 Speedcoding and other Automatic Programming systems” for the ONR symposium on 13 and 14 of May. In that paper we observe that a programmer “would like to write ‘X + Y’ instead of (the machine code)”
[
]
The article goes on to raise the following questions:

The question is, can a machine translate a sufficiently rich mathematical language into a sufficiently economical program at a sufficiently low cost to make the whole affair feasible?
consider the advantages of being able to state the calculations . . . for a problem solution in a concise, fairly natural mathematical language.

Absence of precise language definitions

The notation for syntax description known as BNF offers another example of a development which began with a prosaic recognition of a need. After involvement with two language design efforts-FORTRAN and IAL (ALGOL 58)-it became clear, as I was trying to describe IAL in 1959, that difficulties were occurring due to the absence of precise language definitions.

1 Like