Alan Perlis and the Epigrams on Programming
Abstract
Alan J. Perlis (1922–1990) built one of the first working compilers, sat on both ALGOL committees, edited the first volumes of Communications of the ACM, founded the graduate computer science department at Carnegie Tech in 1965, and in 1966 became the first person to receive the Turing Award. He is remembered today less for any of that than for the one-line “Epigrams on Programming” he published in 1982, which programmers still quote at each other without knowing who wrote them.
Pittsburgh, Chemistry, and Whirlwind
Alan Jay Perlis was born in Pittsburgh on 1 April 1922 and took a bachelor’s degree in chemistry at the Carnegie Institute of Technology in 1943. Army service in the Second World War turned him toward mathematics. At MIT he took a master’s degree in 1949 and a PhD in 1950 under Philip Franklin, with a dissertation on integral equations. A year at the Aberdeen Proving Ground as a research mathematician followed in 1951, then a spell on Project Whirlwind in 1952. Whirlwind was where he met a computer that could be programmed rather than merely wired, and he did not go back to integral equations.
Purdue and the Datatron
In 1952 Perlis joined Purdue as an assistant professor of mathematics, hired to help run the university’s IBM Card-Programmed Calculator. Two years later he persuaded Purdue’s president to spend $125,000 on an ElectroData Datatron, choosing it over an IBM 650. In 1955 two of his students, Joe Smith and Tom Cheatham, finished the Purdue Compiler for the Datatron under his direction. The Purdue computing archive calls it “one of the first (or the first) algebraic language compilers for the Datatron 204,” which is the kind of hedged superlative the 1950s deserve: several groups were building algebraic compilers in the same two years, and priority depends on what one counts as finished.
Purdue later founded the first computer science department in the United States, approved by its trustees on 24 October 1962 under Samuel Conte. Perlis had nothing to do with that. He had left in 1956.
IT and the IBM 650
Carnegie Tech hired Perlis in 1956 as associate professor and director of its new Computation Center. The center’s machine was an IBM 650, the drum-memory workhorse that sold in the thousands to universities, and Perlis brought the Purdue compiler idea with him. With Joseph Smith and Harold Van Zoeren he wrote IT, the Internal Translator, and it was running on the Carnegie 650 in November 1956. The March 1957 report Internal Translator (IT): A Compiler for the 650 is credited to Perlis, Smith and Van Zoeren, and within a year IT was in use on 650s at a number of university computing centers.
Donald Knuth later described it as the first successful compiler. That judgment is about use, not priority: IT was not the first compiler, but it was one of the first that other people’s students could take, run, and modify. IBM took the same view. Bob Bemer’s FOR TRANSIT, IBM’s own FORTRAN subset for the 650 released in 1957, compiled FORTRAN into IT as its first pass, then IT into SOAP assembly, then SOAP into machine code. IBM’s FORTRAN for the 650 was, in its middle stage, Perlis’s compiler.
Perlis, Smith, Van Zoeren and Arthur Evans built a succession of further algebraic compilers and assemblers for the 650 at Carnegie over the following years.
ALGOL
The ACM formed a committee in 1957 to propose a common algebraic language, and Perlis chaired it. In May 1958 four of its members, Perlis, John Backus, Charles Katz and Joseph Wegstein, met four delegates of the German GAMM in Zurich and produced the International Algebraic Language, renamed ALGOL the following year. Perlis returned for the Paris meeting of January 1960 that produced ALGOL 60, the report edited by Peter Naur whose block structure, recursion and formal syntax shaped every language that followed. Through the 1960s he kept extending it at Carnegie: Formula ALGOL, for manipulating algebraic expressions as data, and LCC, a version for interactive incremental use.
He gave the American side of the story himself at the first History of Programming Languages conference in 1978, in a paper titled exactly that. ALGOL had never won in America; IBM did not back it and FORTRAN stayed the scientific language of record. Perlis was one of the few people who had been in the room for both the ACM committee and the Zurich meeting, and his paper is the primary account of why the Americans came and what they wanted.
Making a Discipline
Between 1958 and 1962 Perlis was the first editor-in-chief of Communications of the ACM. From 1962 to 1964 he was ACM president. In 1960 he became chairman of Carnegie’s mathematics department, and in 1965, with Allen Newell and Herbert Simon as colleagues, he founded its graduate Department of Computer Science and served as its first head until 1971. It was one of the first doctoral programs in the subject anywhere, and Carnegie Mellon’s later standing in the field runs back to it.
That the subject deserved a department at all still needed arguing. On 22 September 1967 Newell, Perlis and Simon published a letter in Science headed simply “Computer Science,” answering the objection that a science could not be organized around a machine. A year later Perlis put the argument in the form that stuck: there is no science of an instrument, and computer science is no more the science of computers than astronomy is of telescopes. The line is almost always attributed to Edsger Dijkstra, who never wrote it; see The Birth of Computer Science as a Discipline and Myths and Misconceptions.
In 1966 the ACM created the A. M. Turing Award and gave the first one to Perlis, “for his influence in the area of advanced programming techniques and compiler construction.” His lecture, “The Synthesis of Algorithmic Systems,” appeared in the Journal of the ACM in January 1967 and argued that programming itself, not the machines, was the subject the field should be built on. He was at the NATO conference in Garmisch in October 1968 that named the software crisis, one of about fifty participants.
Yale and the Epigrams
In 1971 Perlis moved to Yale as Eugene Higgins Professor of Computer Science. He chaired the department in 1976–77 and 1978–80 and again as acting chairman in 1987, and he stayed until his death. The National Academy of Engineering elected him in 1977; the AFIPS Education Award followed in 1984 and the IEEE Computer Pioneer Award in 1985. His doctoral students included David Parnas, Zohar Manna, Gary Lindstrom and John Levine.
What Yale mostly produced, as far as the wider world is concerned, was a seven-page piece in the September 1982 SIGPLAN Notices: “Epigrams on Programming,” 130 numbered sentences with no connecting prose, the last nine of them epigrams about epigrams. Number 1: “One man’s constant is another man’s variable.” Number 7: “It is easier to write an incorrect program than understand a correct one.” Number 19: “A language that doesn’t affect the way you think about programming, is not worth knowing.” Number 54 coined a term the field kept: “Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy,” which is now the standard name for a language that is Turing-complete and useless (see Esoteric Programming Languages). Number 58: “Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.” Number 93: “When someone says ‘I want a programming language in which I need only say what I wish done,’ give him a lollipop.” Number 119: “Programming is an unnatural act.”
Epigram 9, “It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures,” reappeared in the foreword Perlis wrote for Abelson and Sussman’s Structure and Interpretation of Computer Programs in 1985, alongside his comparison of Pascal to pyramid-building and Lisp to growing organisms (“the pyramid must stand unchanged for a millennium; the organism must evolve or perish”). The book’s dedication page carries another passage of his: “I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously.” It ends: “Above all, I hope we don’t become missionaries.”
He died of a heart attack at Yale-New Haven Hospital on 7 February 1990, aged 67. His papers went to the Charles Babbage Institute the same year. Yale has held an Alan J. Perlis Symposium each spring since April 1992, funded largely by a bequest from a former student who died young.
Dead End: The Compiler Nobody Remembers
IT is the strange case of a founding artifact that vanished. It ran at a number of university computing centers, IBM built FOR TRANSIT on top of it, and Knuth learned compiling from it. It is nevertheless absent from most histories, and no later language claims descent from it. The reasons are ordinary. IT was tied to the 650, a drum machine of the mid-1950s; its notation was an internal one (the name says so) and was never meant to be written by hand for long; and the two languages that mattered on either side of it, FORTRAN and ALGOL, had institutions behind them, IBM and an international committee, while IT had a university computing center. Perlis himself moved on to ALGOL within two years. The compiler’s real legacy is procedural: it proved in 1956 that an algebraic compiler could be built by a small university group and given away, which is the model every later academic language followed.
The epigrams outlived the compiler by design. Perlis, who had spent thirty years arguing that programming was the subject and machines were incidental, left a text with no machine in it at all.
📚 Sources
- IEEE Computer Society, Computer Pioneers: Alan J. Perlis — dates, positions, IT for the Datatron and 650, ALGOL 58/60, ACM presidency 1962–64, CACM editorship 1958–62, awards
- Wikipedia: Alan Perlis — education, Franklin as advisor, Turing citation, doctoral students, Knuth’s assessment of IT
- Yale Department of Computer Science: Alan J. Perlis and the Perlis Symposium — Yale years, department chairmanships, Carnegie department founded 1965, symposium since 1992
- Purdue Computing Archive: Timeline — Purdue 1952–56, Datatron purchase, the Purdue Compiler, department founding 24 October 1962
- Wikipedia: FOR TRANSIT — IT as the first pass of IBM’s 650 FORTRAN, 1957
- Biography of Alan J. Perlis, HOPL I, 1978 (DOI 10.1145/800025.1198357) — Smith, Van Zoeren and Evans; the succession of 650 compilers
- Alan J. Perlis, “The American Side of the Development of ALGOL,” HOPL I, 1978 (DOI 10.1145/800025.1198352)
- Allen Newell, Alan J. Perlis, Herbert A. Simon, “Computer Science,” Science 157 (3795), 22 September 1967, pp. 1373–1374 (DOI 10.1126/science.157.3795.1373-b)
- Alan J. Perlis, “The Synthesis of Algorithmic Systems,” Journal of the ACM 14 (1), January 1967, pp. 1–9 (DOI 10.1145/321371.321372) — the first Turing lecture
- Alan J. Perlis, “Epigrams on Programming,” ACM SIGPLAN Notices 17 (9), September 1982, pp. 7–13 (DOI 10.1145/947955.1083808)
- Epigrams on Programming, text hosted by Yale CS — the epigrams quoted here
- Wikipedia: Epigrams on Programming — 130 epigrams, numbers 122–130 the “meta epigrams”
- Foreword to Structure and Interpretation of Computer Programs, 2nd ed. and Dedication — the pyramid/organism passage and the “keep fun in computing” quotation
- Quote Investigator: “Computer Science Is Not About Computers, Any More Than Astronomy Is About Telescopes” — the 1968 Perlis original and the Dijkstra misattribution
- Britannica: Alan Jay Perlis — Carnegie posts 1960–71, Formula ALGOL and LCC, death at Yale-New Haven Hospital
- Charles Babbage Institute: Alan J. Perlis papers — papers donated 1990
- Wikimedia Commons: IBM 650 EMMA — lead image description