The History of Fortran I, II, And
Total Page:16
File Type:pdf, Size:1020Kb
The BINAC • N. Stern The History of FORTRAN 1, II, and III JOHN BACKUS This article discusses attitudes Comm., from A.V. Astin, Chief, Electronics and Development and Construction of Large-Scale Elec- about “automatic But most of the larger “automatic program- ” Ordancc l)iv., Nov. 18, 1949, “Status of Work on tronic Computing Machines." undated NBS publica- programming, the economics of programming, ming" systems (with the exception of Laning and Automatic Electronic Computing Machine” (Nation- tion. and existing programming systems, all in the Zierler’s algebraic system [Laning and Zierler al Archives). early “EMCC, Interoffice Memo, Aug. 18, 1948 (Moore 1950s. It describes the formation of the 1954] and the A-2 compiler [Remington Rand '"’See Correspondence, John W. Mauchly to E. Mauch- School Archives). FORTRAN group, its knowledge of existing 1953; Moser 1954]) simply provided a synthetic ly. Vice Woolworth 64 systems, its President. Corp., Jan. 24, 1948, EMCC, Interoffice Memo, Aug. 28, 1948 (Moore plans for FORTRAN, and the "computer” with an order code different from which outlines the of contracts was types EMCC School Archives). development of the language in 1954. It that of the real machine. This synthetic computer hoping to obtain. (Moore School Archives). describes “EMCC. Interoffice Memo, John Mauchly to Executive the development of the optimizing usually had floating point instructions and index “‘“Projects and Publications of the National Applied Committee. Aug. 18, 1948: “Ike Auerbach has. compiler for FORTRAN I. of various language registers and had improved input-output com- Mathematics Laboratories.” NBS, June 1948, p. 8. during the past few months, maintained that we manuals, and of FORTRAN II and III. It mands; it was therefore much easier to program “See J. H. Curtiss. “A Federal Program in Applied could produce additional BINAC computers within concludes with remarks about later developments than its real counterpart. Mathematics,” Science 107 . Mar. 12, 1948; “History six months from the time at which the Northrop and the impact of FORTRAN and its successors The A-2 compiler also came to be a synthetic of the National Bureau of Standards Program for the BINAC was delivered.” (Moore School Archives). on programming today. computer sometime after early 1954. But in early Key words and phrases: programming 1954 its input had a much cruder form; instead of language, history, compilers, optimization, "pseudo-instructions" its input was then a com- language design, compiler design, FORTRAN, plex sequence of “compiling instructions" that programming language manuals could take a variety of forms ranging from CR categories: 1.2, 4.2 machine code itself to lengthy groups of words constituting rather clumsy calling sequences for the desired floating point subroutine, to “abbre- viated form” instructions that were converted by a “Translator” into ordinary “compiling instruc- 1. Early Background and Environment tions" [Moser 1954], After May 1954 the 1.1 Attitudes about automatic programming in the A-2 compiler acquired a 1950s “pseudocode” which was similar to the order codes for many floating point Before 1954 almost all programming was done interpretive sys- tems that in machine language or assembly language. were already in operation in 1953: e.g., the Los Alamos Programmers rightly regarded their work as a systems, DUAL and SHACO [Bouricius complex, creative art that required human inven- 1953; Schlesinger 1953], the MIT “Summer Session tiveness to produce an efficient program. Much of Computer” [Adams and Lan- ing 1954], a system for the their effort was devoted to overcoming the ILLIAC designed by Wheeler [Muller the difficulties created by the computers of that era: D.J. 1954], and SPEEDCOD- ING system for the [Backus the lack of index registers, the lack of built-in IBM 701 1954], The floating point operations, restricted instruction Laning and Zierler system was quite a different story: it was the world’s first sets (which might have AND but not OR, for operating algebraic compiler, example), and primitive input-output arrange- a rather elegant but simple one. Knuth and Pardo ments. Given the nature of computers, the [1977] assign this honor to Alick Glennie’s services which "automatic programming” per- AUTOCODE, but I, for one, am unable formed for the programmer were concerned with to recognize the sample AUTOCODE overcoming the machine's shortcomings. Thus program they give as “algebraic,” especially the primary concern of some “automatic pro- when it is compared to the corresponding Laning and Zierler program. gramming” systems was to allow the use of All of the early “automatic symbolic addresses and decimal numbers (e.g., programming" the MIDAC Input Translation PROGRAM systems were costly to use, since they slowed the [Brown and Carr 1954]). machine down by a factor of five or ten. The most common reason for the slowdown was that these systems were spending most of their time in © 1978 Association for Computing Machinery. Inc. Reprinted floating point subroutines. by permission from "Preprints. ACM SIGPLAN History of Simulated indexing Programming Languages Conference. Los Angeles. Califor- and other “housekeeping” operations could be nia.'june 1-3, 1978." ACM SICPLIN Notices. Vol. 13, No. 8, done with simple inefficient techniques, since, Aug. 1978, pp. 165-180. Also to appear, with added Annals of slow as they were, they took far less time than the Annals of in the History of discussion, the complete Conference Proceedings to be the History floating point work. of Computing published as an ACM Monograph by Academic Press. Computing Experience with slow Vof. I. No. 1 Author's address: IBM Research Laboratory, San Jose. CA “automatic program- Vo l 1. No 1 July 1979 93193. ming” systems, plus their own experience with July 1979 FORTRAN I, II and III • J. Backus FORTRAN I, II and III * J. Backus 1.3 Programming systems in 1954 23 1954 letter [Backus 1954a] (which Dr. Laning The viability of most compilers and interpreters 2 (he problems of organizing loops and address kindly sent to me). As a result the facts of the prior to modification, had convinced programmers that It is difficult for a programmer of today to FORTRAN had rested on the fact that programming matter have become clear. The letter in question most source language operations efficient programming was something that could comprehend what automatic were not ma- is one I sent to Dr. Laning asking for a chine not be automated. Another reason that "auto- meant to programmers in 1954. To many it then operations. Thus even large inefficiencies demonstration of his It makes made programming" was not taken seriouslv by meanL simply providing mnemonic operation system. clear that in performing both looping/testing operations it meant we had learned of his work at the Office of Naval and computing addresses the computing community came from the ener- codes and symbolic addresses, to others were masked by most from Research Symposium on Automatic Program- operating time being spent getic public relations efforts of some visionaries the simple process of obtaining subroutines in floating point operands ming for Digital Computers, May 13-14, 1954, to spread the word that their “automatic pro- a library and inserting the addresses of and that the demonstration took place on gramming" systems had almost human abilities into each subroutine. Most "automatic program- June 2, either programs, 1954. The letter also makes clear that the io understand the language and needs of the ming” systems were assembly John Backus led the development of FORTRAN, popular- FORTRAN project was well under way when the user, whereas closer inspection of these same or subroutine-fixing programs, or, most participated in designing the IBM 704 and ALGOL; he point letter was sent (May 21. 1954) and included systems would often reveal a complex, exception- ly, interpretive systems to provide floating proposed "BNF”for syntax description. Currently at the operations. friends and I were Harlan Herrick. Robert A. Nelson, and Irving ridden performer of clerical tasks which was both and indexing My jBM R esearch Laboratory, San Jose, California, he is programs and Ziller as well as myself. Furthermore, an article in difficult to use and inefficient. Whatever the aware of a number of assembly developing a functional style of programming and its interpretive systems, some of which have been the proceedings of that same ONR Symposium reasons, it is diffifult to convey to a reader in the associated algebra. He received the National Medal of there were b>' Herrick and myself [Backus and Herrick late seventies the strength of the skepticism about mentioned above; besides these 1954] Science in 1975 and the Turing Award (ACM) in the shows clearly that we were already considering "automatic programming" in general and about primarily two other systems of significance: 1977. Rand 1953; Moser input expressions like "Sa.j-bjk” and “X Y". _ its ability to produce efficient programs in A-2 compiler [ Remington + Laning and Zierler [1954] algebra- V\'e went on to raise the question “...can a particular, as it existed in 1954. 1954] and the machine translate attitudes about ic compiler at MIT. As noted above, the A-2 a sufficiently rich mathematical subroutines. But the advent of the 704 with built- < In the above discussion of largely a subioutine- language into a sufficiently economical program in floating point and indexing radically altered "automatic programming" in 1954 I have men-