- In Search of the Original Fortran Compiler
In April 2002, Grady Booch sent out an email with the subject “Preserving classic software products.” His appeal to provide top 10 lists and to suggest where to look for the source code received an enthusiastic response. Grady and the Computer History Museum organized a workshop in October 2003.1 As a result, a month later, a group of Computer History Museum trustees, staff and volunteers (including me) established the Software Collection Committee2 (SCC) to explore the software side of the museum’s mission: “To preserve and present for posterity the artifacts and stories of the information age.” I decided to take on the project of collecting Fortran materials.
John Backus’s Fortran project at IBM developed one of the first higher-level programming languages as well as a set of techniques for code optimization that allowed Fortran to compete with hand-tuned assembly language.3 The combination of ease-of-use and efficiency led to Fortran’s rapid adoption and lasting impact on programming language design and implementation. Fortran’s success on the IBM 704/709 led to Fortran compilers for many brands and models of computers, making it possible to port Fortran programs among different computers; Fortran program portability also made Fortran useful for non-numerical projects. While Fortran’s popularity waned as other languages grew up to fill various niches, some high-performance computing users continued to use Fortran, with periodic updates, to the present.
The history of the Fortran project is well documented in papers by Backus and others, covering the project, its impact, and technical analysis of the compiler itself.4 However, the artifact itself—the source code for the original Fortran compiler—seemed to me an appropriate starting point to gain experience with collecting, preserving, and presenting historic software. By spring 2006, I had assembled a collection including listings, source and executable code, documentation, and more and had made the collection publicly accessible via a website. Take a look at that website now (http://www.softwarepreservation.org/projects/FORTRAN/)5 to have it mind as you read this article, which describes my collection efforts. I hope my experience will be useful to other computing history researchers from the practitioner world considering similar efforts.
I started my search for Fortran by calling John Backus, with whom I had worked in the mid-1970s (on functional programming) but had not seen for about 25 years. He did not have a copy of the source code and directed me to Irv Ziller, who had been his first hire on the project. Irv responded to my request, saying that he didn’t have the source code, but he recalled material being sent to the Smithsonian to become part of their collection. I visited the website of the Smithsonian National Museum of American History (NMAH) and located the group that had created the Computer History Collection,6 but my initial attempts to establish communication with the staff were unsuccessful.7
One day I was chatting with a coworker, Jim King, who had worked at IBM Research for many years. Jim had used Fortran II and the Fortran Monitor System on an IBM 709 in college in the early 1960s and had some interesting anecdotes.8 Jim suggested IBM’s SHARE user group library as a potentially interesting source of material, and he also recalled the extensive IBM 7094-related library at Boeing when he worked there in the 1960s. Another member of the SCC, Dick Sites, recalled having seen “handwritten Fortran I documentation in a basement of the Sloan building at MIT in 1965 .… As I remember, it described the overall compiler design and optimizing algorithms. I remember a fairly neat but slightly small handwriting with hand-drawn boxes and arrows for some of the algorithms.” Also, Len Shustek, Computer History Museum founder, pointed out this sentence in Backus’s article9 about Fortran at the first History of Programming Languages conference: “Shortly after the distribution of the system, we distributed—one copy per installation—what was fondly known as the ‘Tome,’ the complete symbolic listing of the entire compiler plus other system and diagnostic information...