As we celebrate ACM's first 60 years, it seems appropriate to acknowledge the contributions to the historical record made by the three ACM SIGPLAN History of Programming Language (HOPL) conferences. In 1978, 1993, and the upcoming third installation June 910 (in San Diego), the HOPL conferences capture the history of most of the important computer languages by getting individuals who were involved in the development of 40+ programming languages to tell their stories. The HOPL (I) attendees heard John Backus explain the origins of FORTRAN, the first language to be standardized; HOPL-II attendees heard Dennis Ritchie share his memories of the development of C; and HOPL-III attendees will hear Bjarne Stroustrup continue the history of C++ that he began at HOPL-II. This article traces the history of the HOPL conferences in the hope of inspiring other ACM SIGs to document the history of additional subfields.
The prime mover for the inaugural HOPL conference was Jean E. Sammet. Long a student of programming languages, Sammet served on the CODASYL Language Structure Group in 1960 and was a charter member of the USASI X3.4 Committee on Programming Languages. In 1961, Sammet oversaw the creation of the FORMAC language for IBM.1 Sammet was also cataloging languages and publishing numerous "rosters" of languages.2 A major outgrowth of this research was PROGRAMMING LANGUAGES: History and Fundamentals.3 This was the first book to take a comprehensive look at programming language history and development.4
Sammet's activities resulted in an invitation to teach a continuing education class at the University of California at Los Angeles. While at UCLA, Michael Melchinoff, chair of the computer science department, asked Sammet about the creation of COBOL: "Why did COBOL have a COMPUTE verb in addition to ADD, SUBTRACT, MULTIPLY and DIVIDE verbs?" and "Why were COBOL data names limited to 30 characters?"5
Some years after visiting UCLA, Sammet decided it would be interesting to have a conference in which a person who had been a key person in the creation of programming languages talked about how the language was created. Sammet sought and received the support of SIGPLAN and also served as General and Program Committee Chair; John A.N. Lee served as Administrative Chairman and designed the conference logo (as illustrated in Figure 2).
The purpose of HOPL was to examine the early development of selected programming languageswith an emphasis on the technical aspects of language design and creation.
The Program Committee set specific and general criteria for inclusion of a language. The specific requirements were that the language must have been created, and in use, by 1967; remain in use in 1977; and must have had considerable influence on the field of computing. All papers would be by invitation.
The general criteriawhich did not have to apply to each languagewere usage, influence on language design, overall impact on the computing environment, novelty, and uniqueness. After significant discussion, the committee identified the 13 languages listed in the accompanying sidebar "Rationale for the Languages Included in the first HOPL."6
In order to fully document the development of these languagesand believing that non-historians needed guidance to write good historythe Program Committee drafted 82 specific questions to guide authors and assist in identifying important facts and ideas. The list here shows the top-level headings for these questions.7
Rationale of Content of the Language
A Posteriori Evaluation
Implications for Current and Future Languages
The first ACM SIGPLAN History of Programming Languages Conference was held on June 13, 1978 in Los Angeles, CA. The keynote speaker was Grace Murray Hopper, who identified herself as the third "coder" on the Bureau of Ordnance Computation Project at Harvard. Hopper used her experiences to tell the story of program language evolution: developing subroutines to be shared with her MARK I colleagues in 1944, coding in octal on the BINAC in 1949, and developing the first compiler for the A-O programming language in 1952. After relating her work to the other efforts at the time, Hopper identified two goals for programming languages: to create better programs with less effort and to allow non-specialistssuch as engineers and mathematiciansto use computers to solve problems. These goals led the industry to develop numerous languages for solving a wide range of problems, and it is these languages that were the focus of HOPL.
A glance at Table 1 shows the pioneering nature of HOPL. Each speaker played an important technical role in the development of these early programming languages. Moreover, these languages served as the foundation for all subsequent programming language development.
Although there were 13 languages identified by the Program Committee, 14 papers were written and presented, with separate papers on the development of ALGOL in the U.S. and ALGOL 60 in Europe. The differing viewpoints of the U.S. and European developers resulted in some interesting exchanges during the Q&A period that followed the presentations. Attendees were treated to a rare opportunity to hear from, ask questions of, and rub elbows with, the pioneers in the field. Indeed, not all of the pioneers were speakers; many members of the audience made significant contributions to early languages and contributed to the conference by their questions and ad hoc comments. From the vantage point of 30+ years, HOPL was an incredible gift to the computer community from some of its brightest stars. Indeed, Fred Brooks commented that "The best thing about this conference (was) its character set!"8 Readers can hear excerpts of the presentations (along with transparencies and photographs) at www.tennessee.cc.vt.edu/~hopl/, a Web site created by John A.N. Lee.
The formal papers, with the exception of the paper on JOSS, were published as preprints and available at the conference.9 The preprints contained extensive language summarieswhich the attendees were encouraged to read before the sessions. Since HOPL had only one track, all participants attended all the sessions, giving the conference a special feel. In addition to the sessions, there was a banquet hosted by Bernard Galler. Some of the more memorable comments appeared in the Annals of the History of Computing, including Grace Hopper's famous "bug" story.10 HOPL was captured in History of Programming Languages edited by Richard L. Wexelblat.
Several years after HOPL, Sammet and Lee began thinking about a second conference, with the intent of building on what had been learned at HOPL and expanding its scope and coverage. In 1990, SIGPLAN authorized the Second History of Programming Languages Conference (HOPL-II) with Lee as Conference Chairman and Sammet as Program Committee Chair.
The HOPL-II Program Committee wanted contributed as well as invited papers. In addition to the early history of specific languages, the committee wanted papers on the evolution of languages, the history of language features and concepts, and papers on classes of languages such as application-oriented and paradigm-oriented languages. Preliminary ideas had to be documented by 1982 and the language in use or being taught by 1985. Following the successful plan from HOPL, the Committee provided authors with sets of questions to guide them in developing their papers and presentations. In addition, Michael S. Mahoney, the conference historian, wrote an essay, "What Makes History?" which was sent to each author along with the reviews and comments on the first drafts.11
As we excitedly look to the future to see what new technology will bring, we need to remember that we stand on many sets of shoulders to see that future!
HOPL-II was held Apr. 2023, 1993, in Cambridge, MA.12 Frederick P. Brooks, Jr., provided a keynote address on "Language Design as Design." Brooks began by observing that the goals and requirements of most projects change during the design process and thus are poorly reflected in the resulting design. The external environment also changes, with additional negative results. After examining the rationale for good language design, Brooks gave these recommendations to language designers: design a language, don't just hack one up; study and use other people's designs; design top-down; know the application well; and iterate the design with independent test problems.
Since it had been 15 years since HOPL, Jean E. Sammet reviewed language developments between HOPL and HOPL-II, and conference historian, Michael S. Mahoney, discussed "Making History."13 The proceedings were published in 1996 as History of Programming Languages, edited by Thomas J. Bergin and Richard G. Gibson.14
The conference banquet was the first evening, and Bernard Galler again served as the Master of Ceremonies.15 After Robert F. Rosin explained his being acknowledged in The C Programming Language, Jean Sammet told of her shock when an IBM visitor asked why her employees were discussing "sex" in the office. It seems that FORMAC routines were identified by "FMC" plus three letters to indicate the subroutine. Thus, the subroutine for Symbolic EXpression was logically referred to as "FMCSEX." The programmers dropped FMC from their discussions of all subroutines!
HOPL-II ended on a rousing note with a panel of language designers presided over by Michael Mahoney.16 "The History of Programming: Does Our Present Past Have a Future?" allowed the audience to see the various (and conflicting) perspectives and opinions of the panel members as well as the audience.
In 2004, Barbara Ryder and Brent Hailpern, both former SIGPLAN Chairs, started the process for planning HOPL-III, which would have an open call. Each HOPL-III paper should detail the early history or evolution of a specific programming language. Preliminary ideas should have been documented by 1996 and the language in use by 1998. HOPL-III will be co-located with FCRC 2007 (June 916, 2007) and is supported by SIGPLAN and SIGSOFT. (For more information about HOPL III see research.ihost. com/hopl.)
More than 8,500 programming languages have been created and used since Grace Hopper's A-0 compiler.17 As we excitedly look to the future to see what new technology will bring, we need to remember that we stand on many sets of shoulders to see that future! For the programming language community, the HOPL conferences provide a critical link to that past, and it is hoped that other important aspects of our discipline will be preservedin similar fashionbefore it is too late to do so.
This article is available at doi.acm.org/10.1145/1230819.1230841.
1FORMAC (FORmula Manipulation Compiler) was the first language for symbolic mathematics that had significant use. See Jean E. Sammet's "The Beginning and Development of FORMAC," in History of Programming Languages, Thomas J. Bergin and Richard G. Gibson, Eds. ACM Press/Addison-Wesley, 1996, 429469.
2See for example, Jean E. Sammet's "Roster of Programming Languages" in Computers and Automation, (Nov. 1970), 6-11 and "Roster of Programming Languages for 197677" in ACM SIGPLAN Notices, (Nov. 1978), 5685; doi.acm.org/ 10.1145/953777.953783.
3Jean E. Sammet. PROGRAMMING LANGUAGES: History and Fundamentals, Prentice-Hall, Englewood Cliffs, 1969. (Interestingly, the dust jacket contained another version of the Tower of Babel using programming languages.)
4An earlier book, Programming Systems and Languages, edited by Saul Rosen, McGraw-Hill, 1967, was a compilation of articles on programming languages, compilers, translators, languages for processing lists and strings, and operating systems; the majority of the articles were from Communications of the ACM.
8Annals of the History of Computing, (July 1979), contains two reviews of the HOPL Conference by Nancy Stern and James J. Horning, 6871; the Brooks quotation is on p. 69. The creation of Annals was announced at the end of the HOPL conference.
17Diarmuid Pigott has created "HOPL: an interactive Roster of Programming Languages" at hopl.murdoch.edu.au/home.prx. This site contains information on 8,512 languages and 17,837 bibliographic records.
©2007 ACM 0001-0782/07/0500 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2007 ACM, Inc.
No entries found