Paul McJones, editor
paul@mcjones.org
https://mcjones.org/dustydecks
Last modified 24 July 2025
The goal of this project is to preserve source code, design documents, and other materials concerning the original IBM 704 FORTRAN/FORTRAN II compiler. FORTRAN was the first high-level programming language and the first high-quality optimizing compiler. This is a project of the Computer History Museum's Software Preservation Group to develop expertise in the collection, preservation, and presentation of historic software. Comments, suggestions, and donations of additional materials are greatly appreciated.
For details on how this listing was discovered, see these Dusty Decks articles: The Smithsonian, The Smithsonian redux, As you sow so shall you reap, and 704 FORTRAN II listing available.
Here are the individual components; for the compiler proper, see 9F13 through 9F30:
For details about how these tape images were discovered and progress executing them on a simulator, see these Dusty Decks articles: Fortran II source in Paul Pierce's collection and Dave Pitts is making progress running Fortran II.
Author names in [brackets] are not listed in the document itself, but are "as remembered" according to Lee 1984.
"This is the first formal proposal for the language FORTRAN and lists the elements of the language which are proposed to be included in the eventual implementation together with some suggestions for future extensions. It is interesting to match this proposal with the Programmer's Reference Manual published in 1957 (below) and to note that many of the ideas of later FORTRANs as well as ALGOL appear to have been given birth in this document." [Lee 1984]
"The FORTRAN 0 document represents the first attempt to define the syntax of a programming language rigorously. Backus's important notation, which eventually became `BNF' can be seen in embryonic form here." [Knuth and Trabb Pardo 1977]
This manual describes the machine on which FORTRAN ran: a memory of 4096, 8192, or 32768 words of 36 bits each; a register complement including an accumulator, a multiplier-quotient, and 3 index registers; integer and floating-point arithmetic; and programmed I/O (no I/O channels or interrupts) with magnetic tape units, magnetic drums, punched card readers and punches, and line printers.
Apparently assigned Form number 32-7026 after printing, as referred to on the last page of the Primer.
"For 'late 1956' read 'early 1957'." Describes FUNCTION statement.
"This edition is a reprint of Form Number 32-0306-1 and does not obsolete it or 32-0306. No changes have been made to 32-0306-1."
"This manual describes the use of FORTRAN 4-1-4-1." The 704 did not have an operating system; FORTRAN ran on the bare machine. This manual has sections Preparing the System Tape, Using the System Tape, Error Detection, Running the Object Program, Error Stops in Object Programs, Maintaining the Library Functions, and then a 7-page list of compiler error stops.
Describes materials sent to SHARE members owning IBM 704s with initial FORTRAN release.
Describes upgrade for IBM 704s with 8192 words of memory; includes writeup of FNEDT 1 program for editing FORTRAN system tapes.
This is very similar to the October 1956 manual, but includes the description of the FUNCTION statement (see page 17), which was initially documented in an addendum (see above).
This manual is a supplement to the original FORTRAN Reference Manual and Primer, describing the new features, including the CALL, SUBROUTINE, FUNCTION, COMMON, and END statements and the new Binary Symbolic Subroutine Loader.
"This is the document which proposes the extensions to FORTRAN II to create FORTRAN III which was a very short-lived system. The fundamental addition was the allowance of symbolic statements intermixed with FORTRAN statements." [Lee 1984]
"Abstract: This paper discusses the addition made in the FORTRAN I translator to produce the FORTRAN II translator. The new source language statements, debugging facilities and loader are described."
A combination of sections of a hardware reference manual and a FORTRAN II reference manual. Perhaps this was assembled from separate manuals for distribution to students learning FORTRAN?
Includes overview of the structure of the compiler, many details of the FORTRAN systems tape, and the record structure of the compiler intermediate tape. Section 3 is reprint of Backus et al. 1957.
"Prefatory Note: This manual is an attempt to fulfill a long standing, much-pressed request. That is, a request for an over-all, comprehensive explanation of the workings of the entire Fortran System. This includes, in addition to the compiler proper, the monitor, the editor programs, and other corollary routines. ..."
This appears to be an evolution of the 1960 Systems Manual for 704 FORTRAN and 709 FORTRAN.
"This publication contains a description of the FORTRAN II Processor operating under the FORTRAN II Monitor (Part 1 of this publication) and of the FORTRAN II Processor operating under IBSYS (Part 2 of this publication.)"
"Summary: Correspondence, memoranda, speeches, writings, reports, notes, slides, photographs, and other papers relating to Backus's work as a computer scientist at IBM on programming languages, particularly FORTRAN. Includes material relating to Backus's early work on the IBM Selective Sequence Electronic Calculator and Backus-Naur Form (BNF). Documents Backus's pursuit as IBM Fellow, 1963-1991, of his own research projects relating to mathematical theories of programming and the development of functional programming languages. Also includes files pertaining to Backus's political activism as a member of Computer Professionals Against ABM in the early 1970s and as an opponent of the strategic defense initiative in the 1980s."
"5.0 cu. ft., 10 - 3'x8' panels and 1 videotape. Pioneer Day was celebrated on June 9, 1982, at the National Computer Conference in honor of the 25th anniversary of the delivery of the first FORTRAN compiler. As part of the celebration IBM created and displayed this exhibit. Contains photographs of FORTRAN pioneers, facsimiles of documents, textual analysis, flow charts, memorabilia, FORTRAN manuals and other publications, and a twelve-minute videotape on the history of FORTRAN starring the members of the original FORTRAN development team: John Backus, Sheldon Best, Richard Goldberg, Lois Mitchell Haibt, Harlan Herrick, Grace Mitchell, Robert Nelson, Roy Nutt, David Sayre, Peter Sheridan, and Irving Ziller."
In this version a subroutine call begins with the name of the procedure followed by the parenthesized argument list -- there is no reserved word CALL. A subroutine begins with a SUB DEF statement. There is a RETURN statement but no END statement.
In this version a subroutine begins with a SUBROUTINE DEFINITION statement, and there is still no reserved word CALL. An UPPER statement is described, with the same semantics as the COMMON statement introduced in the November 18 version. The END statement appears.
In this version a subroutine begins with a SUBROUTINE statement and a subroutine call begins with the reserved word CALL. The UPPER statement becomes the COMMON statement.
"The Laning and Zierler system was quite a different story: it was the world's first operating algebraic compiler, a rather elegant but simple one. Knuth and Trabb Pardo (1977) assign this honor to Alick Glennie's AUTOCODE, but I, for one, am unable to recognize the sample AUTOCODE program they give as "algebraic", especially when it is compared to the corresponding Laning and Zierler program." [Backus, The history of FORTRAN I, II and III]
"Speedcoding is a floating point three-address system which greatly simplifies programming, and checking out a program. Speedcoding provides convenient input-output operations, built-in checking, easy loading and printing. Therefore, Speedcoding reduces programming and testing expenses considerably. These expenses are often a large part of the cost of operating a computing installation. Thus Speedcoding is economical as well as convenient to use."
"This is the first formal paper on the completed FORTRAN implementation reporting both on the language and on the design of the compiler. It includes an overview of the language, a description of each stage of the processor (with attributions of responsibilities amongst the authors), and conclusions regarding the success of the project. The final statement is worthy of repeating: "... the intellectual satisfaction of having formulated and solved some difficult problems of translation and the knowledge and experience acquired in the process are themselves almost a sufficient reward for the long effort expended . . . " [Lee 1984]
"Written at a distance of one year after the delivery of the first FORTRAN processor for the 704, this paper is significant in its presentation of FORTRAN as an 'automatic programming system' in the environment of a symposium of the mechanisation of thought processes. Other attendees at the meeting included Jan Garwick (Norway), John McCarthy (USA), Grace Murray Hopper (USA) and Christopher Strachey (GB), each of whom commented on the presentation by Backus. Obviously Garwick was much more interested in telling the audience of developments by Ole-Johan Dahl while McCarthy (the author of LISP) praised FORTRAN for its ability to express '... quite lengthy algebraic expressions ...' and the implementation of separate compilation of subroutines (presumably in FORTRAN II). Hopper states that '... there is a lack of understanding of the systemizsation [sic] of FORTRAN' and asks Backus to emphasize that Fortran does more than just the 'housekeeping' for the programmer." [Lee 1984]
[From the introduction:] The present paper describes, in formal terms, the steps in translation employed by the FORTRAN arithmetic translator in converting FORTRAN formulas into 704 assembly code. The steps are described in about the order in which they are actually taken during translation."
[From the summary: ] The fundamental concepts of FORTRAN, the most widely used high-level, scientific programming language, are set forth and the significant characteristics are described in historical order from inception ... in 1954 to [1964] ... The basic problem of how to get high quality programming from an-easy-to-write high-level language is emphasized. "Looking back after 10 years, Backus recalls the objectives of the FORTRAN effort and many of the frustrations which accompanied the development of the first processor. Of particular note is the commentary on the time taken during compilation to ensure the production of optimum code, time which is often fruitlessly wasted on simple programs. Mention is made of the technique of flow analysis used in the first compiler which was based on a Monte Carlo analysis of the frequency of execution of sections of the program. Regrettably (then and ever since) no documentation of this technique is provided." [Lee 1984]
"This article summarizes the history of the development of FORTRAN I, II and III. The author, who was the leader of the groups which developed the first two compilers, explains the economic factors leading to the establishment of the FORTRAN project, its goals, and the mode of working of its implementations. The article makes it clear that the early FORTRAN efforts were efforts of compiler development rather than language design. The language was designed as the compiler was written and the compiler design was considered [to be] the hard job. This lucidly written article is interesting not only for the facts presented about the history of FORTRAN (e.g., that efficiency of object code was more important in getting FORTRAN accepted than the design of the language) and the insight given into design of the language (e.g., that subscripts in a subscript variable were limited to three to increase compiler efficiency rather than because the IBM 704 has only three index registers), but also for its revelation of the mixture of clairvoyance, inventiveness, and naivete possessed by the implementation team (e.g., common expression elimination, the actual degree of optimization exhibited in the object code, and the feeling that debugging would all but [be] eliminated by the use of FORTRAN). The article is must reading for anyone considering language design today; it raises serious questions as to whether there is anything new under the sun. The kinds of things being said today are hauntingly reminiscent of the kinds of things quoted in the article as being said in 'those' days." [D. Berry, Los Angeles CA, Computing Review 35,907]
"Backus has been known to suggest that as much as anything else he would like to forget FORTRAN, and in this paper he almost does just that. The paper represents a personal view of the world as it existed prior to the FORTRAN development. Following a short presentation on the actual production of the first FORTRAN compiler (including the admission that he had been wrong in ascribing the early notions of algebraic input to Laning and Zierler in previous presentations) Backus shows how the concepts introduced by FORTRAN fulfilled the goals of the period." [J.A.N. Lee, Annals of the History of Computing, 1981.]
"These five pages in the otherwise unpublished manuscript contain a review of the techniques of optimization that were used in the original FORTRAN compiler, and based on assistance from Sheldon Best, are a more detailed account of the processes used than were published previously." [Lee 1984]
"This is an anecdote regarding a strange and wonderful package that arrived unannounced at Westinghouse-Bettis and which turned out to be a binary deck of the original FORTRAN processor for the IBM 704. Included is a copy of the first program run and the output (including the first error message.) There may be one erroneous report in this anecdote, that is that April 20, 1957 is said to be a Friday (in the first sentence); the 20th was in fact a Saturday." [Lee 1984]
The PDF includes a letter from Bright to J.A.N. Lee dated February 8, 1978 and a letter from Bright to John Backus dated February 2, 1978. Scanned from original in Computer History Museum Lot X2677.2004, Box 3 of 6. Donated by J.A.N. Lee.
The section "Early history" describes pre-FORTRAN programming: machine language, subroutine libraries, symbolic operation codes, relative addressing for instructions and data, labels, macros, and interpreters for virtual machines with floating-point and index registers such as Backus's Speedcode. The section "FORTRAN I" describes the compiler structure in some detail and concludes: "The real results of the project are the influences it had on future compilers and theory. Some of these effects have already been mentioned; more will be discussed later. Suffice it to say that the technological fallout from this project has been extensive."
"In some cases, it produced code which was so good that users thought it was wrong, since it bore no obvious relationship to the source. It set a standard for object program efficiency that has rarely been equalled. The FORTRAN I compiler, completed in 1957, established modern compiler tasks, structure, and techniques."
Part of a special issue with the theme of the 10 algorithms with the greatest influence on the development and practice of science and engineering in the 20th century." [Editors, page 22. PDF at stanford.edu via archive.org IEEE Digital Library]
"The complete transcript of this discussion covers much more than FORTRAN, but there are several pages of very frank and open comments about the development of FORTRAN and some of the vexations of getting the system into the hands of users. Participants in the discussion include John Backus, Tom Steel, Jr., Frank Engel, Jr., Betty Ryckman, George Ryckman, Frank Wagner, William Gautney, John Greenstadt, Harry Cantrell, Ted Dollata, Arnold Smith, and Mort Bernstein. The original tapes of the discussion are in the Smithsonian's National Museum of American History." [Lee 1984]
"An interview with John Backus on the 25th anniversary of the beginning of the FORTRAN project." [Lee 1984]
Bemer joined IBM in 1955 and worked for Backus in the Programming Research Department. FORTRANSIT translated FORTRAN to IT, then used a modified version of Alan Perlis's IT compiler to generate IBM 605 SOAP assembly language. The main memory of the IBM 650 was a drum, so the instruction placement optimization performed by SOAP was crucial to getting reasonable performance.
Gardner was one of the IBM Customer Engineers who installed 704 serial number 13 at Lockheed Aircraft in Marietta, Georgia in May 1956. This memoir describes how in 1957 he debugged a hardware problem that had resulted in the Fortran compiler behaving in a nondeterministic manner.
His first assignment after joining the IBM Programming Research Department in 1957 was to study and document (via flow-charts) the FORTRAN compiler.
"However, the impact of small changes and improvements can be immense. The ability to build Fortran programs out of independently-compilable modules and to have the ability to decompose into functions and subroutines using Fortran or any other tool that produced compatible code (usually the assembler, in those days) had an immense impact. In Fortran I programs were one giant file and there was no modularization structure. That small change in Fortran II was earthshaking in terms of software development and, I think, the endurance of Fortran as a technical-software programming tool.
It also changed the way that computers had to operate to make software building and use work more smoothly. I think it is no coincidence that this paralleled increased interest in operating systems (called things like tape monitors, at the time) and the use of the computer for organizing the data processing workflows. (There was also a lot of resistance to operating systems in those days.)"
"Here are a few recollections on Fortran when it appeared at Livermore.
...
Fortran's optimization was far ahead of its time. Indeed other much smaller and faster fortrans were soon written for other machines, but I recall observing that it was about 10 years before any compiler optimized as well as the original.
Some months after the compiler was shipped, IBM released the 'source' for the compiler in the form of micro-film images of assembler listings of the compiler, carefully hand annotated with the patches. A year or so later IBM shipped a clean assembly of the compiler with some of the less significant optimizations absent. The newer compiler was yet faster and more reliable and we were able finally to compile our large production code. The newer compiler still led the pack regarding optimization."
Proceedings of a meeting held at the BCS London Office, January 25, 2007.
Mitchell interviews Paul McJones on the occasion of the 50th birthday of Fortran. Additional commentary by Bill Thompson. Produced by Helena Selby.
Includes clips from an interview with Paul McJones starting at 7:48. Produced by Peter McManus.
Daniel N. Leeson describes both these films in his article "IBM FORTRAN Exhibit and Film" in Annals of the History of Computing, Volume, 6, Number 1, January 1984, pages 41-48. He says the first FORTRAN film was made in Poughkeepsie about 1958, and that Harlan Herrick owned the only known copy. He describes the production of the 1982 film in some detail, and includes a complete transcript.
Dave notes that Paul Pierce's version won't run IBSYS at all, because it lacks channel changes and 7094 instructions that Dave added to his version. [Personal communication, May 5, 2005]
Screenshot of Dave's emulator after FORTRAN II compilation. JPEG
"As of January, 2019 there are over 98500 files including over 4.7 million text pages in the archive."
This is a predefined query on the Museum's in-house MIMSY collection database that produces catalog entries for some 71 items, mostly from this web site.
The web site describes Pierce's collection of computer hardware, which includes an IBM 709 and an IBM 7094. The web site also includes a library with scanned copies of manuals as well as machine readable images of card decks and magnetic tapes including SHARE, IBSYS, and CTSS distributions.
"This site is concerned with the idea-historical treatment of the development of programming languages as a means of human expression and creation. In 1976, at the History of Computing Conference in Los Alamos, Richard Hamming described why we might be interested in the history of computing: 'we would know what they thought when they did it'.
This site is all about why they did it - why people designed and implemented languages and what influenced them when they did so (historically, philosophically, politically as well as theoretically).
This site lists 8238 languages, complete with 17444 bibliographic records featuring 10624 extracts from those references. It is in effect a family tree of languages with 5314 links, making it not only the biggest programming language family tree around, but also one of the largest idea-genealogical projects undertaken."
The web site includes scanned (and in many cases OCRed) copies of useful reference works for the computer historian includings books, reference manuals, directories, etc. Here is an example relevant to FORTRAN: a document that lists all the IBM 704s that were sold:
- Martin H. Weik. "A Third Survey of Domestic Electronic Digital Computing Systems" Report Number 1115, Ballistic Research Laboratories, Aberdeen Proving Ground, Maryland, March 1961. HTML
This web site is a rich source of information about computing activities at Columbia, which hosted IBM's Watson Laboratory from 1945 to 1970. Examples of pages relevant to FORTRAN include John Backus and the IBM 704.