In 1959, Martin Richards came to Cambridge to read Mathematics, followed by the Diploma in Numerical Analysis and Automatic Computing and three years of research, obtaining his PhD in December 1966. The PhD research was done under the successive supervision of David Barron, David Park, and Christopher Strachey. It concerned the design and implementation of CPL, an ambitious programming language influenced by the recent development of ALGOL. CPL was designed jointly by teams at both Cambridge and London Universities. The implementation at Cambridge was developed by research students between 1962 and 1966. During this period the compiler had to transferred from EDSAC 2 to an Atlas Computer and this sparked Richards’s interest in the portability of compilers and systems software. The Cambridge CPL compiler was implemented in a tiny subset of itself which was then laboriously translated by hand into macro calls using the GPM macrogenerator designed by Christopher Strachey specifically for the purpose. This subset of CPL was formalized and extended by Richards when he took up an appointment at MIT in December 1966. This resulted in the first implementation of BCPL in early 1967. Because of its simplicity and the portability of its compiler, it was used in many institutions and companies around the world, including Strachey’s Programming Research Group in Oxford and Xerox PARC in Palo Alto. Ken Thompson designed an even simpler language based on it, called B, which was later extended to become C.
Richards returned to Cambridge in October 1968 as an Assistant Director of Research and later a University Lecturer. BCPL was further developed and was later used to implement a portable operating system, called Tripos, for small computers. This was extensively used at Cambridge and elsewhere during the early 1980s for operating system and network research. A small but important development was the design and implementation of BCPL co-routines in 1977. Their use in Tripos helped to keep it compact and efficient. BCPL and Tripos are still in daily use in a process control application in many factories in Europe and elsewhere. In the 1980s, Richards designed a compact byte stream interpretive code for BCPL called Cintcode. This was initially used on Z80 machines and the BBC microcomputer, forming, for instance, the basis of the Domesday Project that ran on BBC machines from 1986. As machines became larger and faster, Richards entended Cintcode for 32-bit machines and included a simple interrupt mechanism to support an interpretive version of Tripos, now called Cintpos.
Since 1968, Richards has played an active part in the administration and teaching at the Computer Laboratory in Cambridge. He has given courses on many languages including Algol, Fortran, Cobol, Algol W, BCPL, C, ML, Prolog, and Java, and other courses on software engineering, programming language compilation, optimizing compilers, formal semantics, and data structures and algorithms and has supervised over 25 PhD students. In 1981, he became a teaching Fellow and Director of Studies in Computer Science at St. John’s College, Cambridge.
2003 Computer Pioneer Award
“For pioneering system software portability through the programming language BCPL, widely influential and used in academia and industry for a variety of prominent system software applications.”
Learn more about the Computer Pioneer Award