Cambridge and CPL in the 1960s

2
Higher-Order and Symbolic Computation, 13, 69–70, 2000 c 2000 Kluwer Academic Publishers. Manufactured in The Netherlands. Cambridge and CPL in the 1960s DAVID HARTLEY [email protected] Cambridge Crystallographic Data Centre, 12 Union Road, Cambridge, CB2 1EZ, UK I joined the Cambridge Mathematical Laboratory as a third-year student in 1958 to read what was then called the Diploma in Numerical Analysis and Automatic Computing. A year later, I found myself still there as a research student wondering what on Earth to study for my PhD. The powers that be said that I couldn’t just do something in programming because “that had all been done”, and instead I was persuaded to find some scientific subject as an area of computer application. Four weeks attached to the University’s High Energy Physics group were not very forthcoming. Then, suddenly, something called Algol came to the rescue. Apparently programming had not all been done after all, as it seemed that an international working group was on the verge of publishing the Algol 60 report, and perhaps this would provide scope for a rather desperate research student. I was just getting to grips with this new opportunity, when Maurice Wilkes, my research supervisor, had a visit from Christopher Strachey. Christopher at that time was acting as a computer consultant, reputedly the first such computer consultant in the UK. I clearly recall Christopher’s advice when he was told of my intended research topic. Algol 60 had yet to be finalised, so I should get some experience first by writing a compiler for a simpler programming language. The result was that I devised a simple FORTRAN-like language and implemented it on the EDSAC 2, the then locally developed computer. Writing a compiler for such a small, by today’s standards, machine and, of necessity, writing an efficient compiler with efficiently compiled object code was a challenge in itself. Also, I accepted the challenge to make the system usable without knowledge of assembly code, providing operating-system and error-detection aids all in source language. The work adequately filled my time as a research student, and I never did move on to Algol 60. It must have been in about 1963 that Christopher joined the Laboratory first as a part-time consultant, and then full time. By then we were thoroughly into designing and developing software for the Titan (prototype Atlas 2) computer. This consisted of two major projects— the Operating System and the Programming Language. In those days, we were still in the mode where new computers spawned new programming languages. Our language was initially named CPL—Cambridge Programming Language, but we (that is, David Barron and myself) then tried to interest other owners of Atlas computers to join in the project. This brought in London University (specifically, John Buxton and Eric Nixon), so we quickly renamed it Combined Programming Language. We had set out to produce an all-purpose language (in the context of a university com- puting system) which would be perfect in every way. It was to be easy to read, complete in

Transcript of Cambridge and CPL in the 1960s

Page 1: Cambridge and CPL in the 1960s

Higher-Order and Symbolic Computation, 13, 69–70, 2000c© 2000 Kluwer Academic Publishers. Manufactured in The Netherlands.

Cambridge and CPL in the 1960s

DAVID HARTLEY [email protected] Crystallographic Data Centre, 12 Union Road, Cambridge, CB2 1EZ, UK

I joined the Cambridge Mathematical Laboratory as a third-year student in 1958 to readwhat was then called the Diploma in Numerical Analysis and Automatic Computing. Ayear later, I found myself still there as a research student wondering what on Earth to studyfor my PhD.

The powers that be said that I couldn’t just do something in programming because “thathad all been done”, and instead I was persuaded to find some scientific subject as an area ofcomputer application. Four weeks attached to the University’s High Energy Physics groupwere not very forthcoming.

Then, suddenly, something called Algol came to the rescue. Apparently programminghad not all been done after all, as it seemed that an international working group was on theverge of publishing the Algol 60 report, and perhaps this would provide scope for a ratherdesperate research student.

I was just getting to grips with this new opportunity, when Maurice Wilkes, my researchsupervisor, had a visit from Christopher Strachey. Christopher at that time was acting asa computer consultant, reputedly the first such computer consultant in the UK. I clearlyrecall Christopher’s advice when he was told of my intended research topic. Algol 60 hadyet to be finalised, so I should get some experience first by writing a compiler for a simplerprogramming language. The result was that I devised a simple FORTRAN-like languageand implemented it on the EDSAC 2, the then locally developed computer.

Writing a compiler for such a small, by today’s standards, machine and, of necessity,writing an efficient compiler with efficiently compiled object code was a challenge in itself.Also, I accepted the challenge to make the system usable without knowledge of assemblycode, providing operating-system and error-detection aids all in source language. The workadequately filled my time as a research student, and I never did move on to Algol 60.

It must have been in about 1963 that Christopher joined the Laboratory first as a part-timeconsultant, and then full time. By then we were thoroughly into designing and developingsoftware for the Titan (prototype Atlas 2) computer. This consisted of two major projects—the Operating System and the Programming Language. In those days, we were still in themode where new computers spawned new programming languages.

Our language was initially named CPL—Cambridge Programming Language, but we(that is, David Barron and myself) then tried to interest other owners of Atlas computers tojoin in the project. This brought in London University (specifically, John Buxton and EricNixon), so we quickly renamed it Combined Programming Language.

We had set out to produce an all-purpose language (in the context of a university com-puting system) which would be perfect in every way. It was to be easy to read, complete in

Page 2: Cambridge and CPL in the 1960s

70 HARTLEY

all its functionality and capable of being used by simply everyone. After all, the new Atlascomputers were so fast, we had no great need to worry about efficiency.

Christopher joined the team, and it was not long before he began to dominate our workand to take it in new directions. Christopher’s interests in regularity and the mathematicalsoundness of the system did actually fit with our aims for perfection, and much that CPL isnow credited with came from his deeply philosophical mind. The rest of us were initiallymore concerned with the pragmatics and technicalities of creating a working system, andwith all the hindsight in the world, all of us were hopelessly optimistic for what we couldachieve.

Our London colleagues did get a system working, but we in Cambridge did not, and forthat reason CPL was not seen as a success in Cambridge, having failed to achieve its originalobjectives. But, with or without Christopher, I do not believe we could have achieved themanyway. Instead, CPL is now renowned, not so much for what it was, but for what it started.Indeed, Martin Richards, a research student on the CPL project, produced BCPL, which inturn led others to produce B and then C.

Christopher moved to Oxford in the late 1960s, and started the Programming ResearchGroup. CPL remained, incomplete and in the doldrums for some time, until Christopherinstilled one last spurt of energy to attempt, not so much to finish the language, but to bringthe project to a tidy end. Some of us from the original team met in Oxford, and eventuallya set of papers—the CPL Working Papers—were produced, not so much for publicationbut simply to put everything on the record. A limited number of copies were made andcirculated to selected friends and colleagues.

CPL was a seminal project which grew out of overly optimistic ambitions, but whichpioneered much in the formation and theory of programming languages. The driving forcefor this was, of course, Christopher Strachey. It was a singular and privileged experienceto work with him.