News
Computing Applications ACM at 60: a look back in time

A History of the History of Programming Languages

"If I have seen further it is by standing on the shoulders of giants."—Isaac Newton, in a letter to Robert Hooke, Feb. 15, 1676
Posted
  1. Introduction
  2. The Beginning
  3. The First HOPL Conference, Los Angeles, CA, 1978
  4. HOPL II, Cambridge, MA, 1993
  5. HOPL III, San Diego, CA, 2007
  6. Reflections
  7. Author
  8. Footnotes
  9. Figures
  10. Tables

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 9–10 (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.

Back to Top

The Beginning

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

Figure 1.

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).

Figure 3.

Back to Top

The First HOPL Conference, Los Angeles, CA, 1978

The purpose of HOPL was to examine the early development of selected programming languages—with 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 criteria—which did not have to apply to each language—were 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

Table.

In order to fully document the development of these languages—and believing that non-historians needed guidance to write good history—the 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

Background

  1. Basic Facts about Project Organization and People
  2. Costs and Schedules
  3. Basic Facts about Documentation
  4. Language/Systems Known at the Time
  5. Intended Purposes and Users
  6. Source and Motivation

Rationale of Content of the Language

  1. Environment Factors
  2. Functions to be Programmed
  3. Language Design Principles
  4. Language Definition
  5. Concepts about Other Languages
  6. Influence of Non-technical Factors

A Posteriori Evaluation

  1. Meeting of Objectives
  2. Contributions of Languages
  3. Mistakes or Desired Changes
  4. Problems

Implications for Current and Future Languages

  1. Direct Influence
  2. Indirect Influence

The first ACM SIGPLAN History of Programming Languages Conference was held on June 1–3, 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-specialists—such as engineers and mathematicians—to 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.

Table 2.

Table 3.

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 summaries—which 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.

Back to Top

HOPL II, Cambridge, MA, 1993

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. 20–23, 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.

Back to Top

HOPL III, San Diego, CA, 2007

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 9–16, 2007) and is supported by SIGPLAN and SIGSOFT. (For more information about HOPL III see research.ihost. com/hopl.)

Back to Top

Reflections

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 preserved—in similar fashion—before it is too late to do so.

This article is available at doi.acm.org/10.1145/1230819.1230841.

Back to Top

Back to Top

Back to Top

Figures

F1 Figure 1. The Tower of Babel as depicted on the cover of the January 1961 issue of Communications of the ACM.

F2 Figure 2. The HOPL logo from www.tennessee.cc.vt.edu/~hopl

F3 Figure 3. The final program from HOPL-II.

Back to Top

Tables

T1 Table 1. HOPL (I) speakers and paper titles.

T2 Table 2. HOPL-II speakers and titles.

T3 Table 3. HOPL-III authors and paper titles.

UT1 Table.

UT2 Table.

Back to top

    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, 429–469.

    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 1976–77" in ACM SIGPLAN Notices, (Nov. 1978), 56–85; 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.

    5Oral history of Jean E. Sammet by Thomas J. Bergin (Spring 2006).

    6See Richard L. Wexelblat's History of Programming Languages, Academic Press, New York, 1981.

    7"Conference Organization: General Questions Asked of All Authors." The entire set of questions is in Appendix B.

    8Annals of the History of Computing, (July 1979), contains two reviews of the HOPL Conference by Nancy Stern and James J. Horning, 68–71; the Brooks quotation is on p. 69. The creation of Annals was announced at the end of the HOPL conference.

    9Richard L. Wexelblat, Ed., "Pre-Prints—History of Programming Languages Conference." ACM SIGPLAN Notices, (Aug. 1978); doi.acm.org/10.1145/ 960118.808394.

    10See "Anecdotes," Annals of the History of Computing (July 1981), 283–286 (Note: Galler also served as the first editor-in-chief of the Annals).

    11See www.princeton.edu/~mike/articles/miscellany/whatmakeshist.pdf.

    12Preprints were issued as the March 1993 issue of ACM SIGPLAN Notices.

    13See portal.acm.org/citation.cfm?id=234286.1057808.

    14Thomas J. Bergin and Richard G. Gibson. A History of Programming Languages—II. ACM Press/Addison-Wesley, 1996; Table of contents is available at portal.acm.org/toc.cfm?id=154766.

    15Thomas J. Bergin and Richard J. Gibson. Supplemental Material from HOPL II: Conference Banquet. SIGPLAN Notices (Nov. 1996), 9–20; doi.acm.org/10.1145/ 240964.1198155.

    16Tim Bergin, "HOPL II—Closing Panel: The History of Programming: Does Our Present Past Have a Future?" SIGPLAN Notices (Sept. 1997), 15–37; doi.acm.org/10.1145/270507.270509.

    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.

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More