The genesis of Fortran

The recent death of John W. Backus (1915-2007), who is considered to be the father of Fortran, elicited this account by David Sayre of the development of the computer language.

[D. Sayre] David Sayre
In 1954 Peter Friedlander and I were at the Johnson Foundation of the U. of Pennsylvania, working on the structures of benzanthracene and 7,12-dimethylbenzanthracene (7,12-DMBA), hoping to cast some light on 7,12-DMBA being a much stronger carcinogen than benzanthracene itself. Peter, working on benzanthracene, was finding a planar polycyclic structure, but 7,12-DMBA, which at that time was generally thought of by chemists as also being planar, was showing signs of crowding of the methyl groups and non-planarity. Wishing to check further, we decided to see whether least-squares 3D refinement would confirm this difference in the structures. At that time the only 3D least-squares program was Durward Cruickshank’s program for the MADAM computer in Manchester England, but there was a closer machine, an IBM 701 at IBM’s corporate headquarters in New York City, and IBM kindly offered a little time on the machine for the project. I wrote the program, and the non-planarity of 7,12-DMBA, as well as the planarity of benzanthracene, was confirmed. (I discover now, in the modern literature on carcinogenicity, that the structure of 7,12-DMBA enables it to attach strongly to DNA, so that we had indeed in 1954 stumbled on at least some of the reason for its carcinogenicity.)

The reader might be interested to know how the programming was done in 1954. There was an assembly program for the 701, but sitting in Philadelphia I was unable to make much sense of it, and I ended by writing the program in absolute octal. In addition, the storage-tube memory of the 701 was not very reliable, so the practice was to have each major stretch of code in the program occur twice, and not proceed if the two answers did not agree. Warner Love was with me when we took the hand-punched deck of 0’s and 1’s to New York to try it, and it got stuck. That night one of us read the octal version aloud to the other, who was following on the cards. We found one mis-punched bit, and the next morning, when we corrected that, the program ran.

[J. W. Backus] John W. Backus
I very much enjoyed the whole experience, so when I was asked if I would like to stay on with IBM I accepted, and early in 1955 found myself in a group which was writing software for the IBM 704, that was going to be the successor to the 701. Quite near to us was John Backus’s group, working on Fortran for the 704. John, Harlan Herrick, Peter Sheridan, and Irving Ziller had worked out the main features of the Fortran language, and had taken it to the 701 users, who said that they liked it, but doubted if the Fortran processor would be able to produce really efficient programs from it. John and the others took this as a challenge, and started work. At some point in 1956 John asked to borrow me to help deal with a situation which had developed. The opening Section 1 of Fortran (arithmetic statements; Harlan Herrick and Peter Sheridan) was nearing readiness, as were Section 2 (DO statements; Irving Ziller and Bob Nelson) and Section 3 (most remaining statements other than input/output; Dick Goldberg). Section 2, however, treated the DO statements as if the 704 came equipped with an unlimited number of index registers, whereas in reality it had only 3. John had borrowed Sheldon Best, a brilliant young programmer at MIT, to deal with that problem, and Sheldon had devised a brilliant Section 4 and Section 5 to do it. Lois Mitchell Haibt was programming Section 4, and Sheldon was partway through the programming of Section 5. At this point, however, his leave from MIT was ending. John therefore put together a new team (Dick Goldberg and myself ) to finish Section 5, and we had it working by the spring of 1957. Roy Nutt, an outstanding programmer from United Aircraft in Hartford, then wrote Section 6 (input/output), and in 1957 the system was distributed, and was an immediate success. From the start it was noted for the efficiency of the programs which it created.

The Fortran group was the happiest work-group I have ever known. John Backus provided cheerful and highly intelligent leadership, and was always thoughtful of other people. Everyone engaged in the project loved it and believed in the importance of what they were doing. It has been a pleasure to re-live it now.

David Sayre
Taken from ACA RefleXions, Summer 2007