In one form or another, C has influenced the design of every programming language developed since the 1980s. Some languages such as C++, C#, and Objective C were intended to be direct successors to the language, while other languages have only adopted C syntax. A developer familiar with Java, PHP, Ruby, Python or Perl will have little difficulty understanding simple C programs, and in that way, C can be thought of it’s almost a lingua franca among programmers.
But C doesn’t appear to be completely created out of thin air like some programming monolith. The story of C begins in England, with Alan Turing’s colleague and a program that makes auditors.
God Accepts the King
Christopher Strachey is known as “the man who built perfect systems,” as noted in a Long profile from the journal, Annals of the History of Computing. It was a reputation he received at the University of Manchester Computing Center in 1951. Strachey ended up there, working on the school’s Ferranti Mark I computer by the old King’s College, Cambridge, connection, Alan Turing.
Strachey was born in 1916 into a well-connected English family—his younger brother, Lytton Strachey, was a founding member of the Bloomsbury Group, while his father, Oliver Strachey, was instrumental in Allied code-breaking operations during Both World Wars.
That Strachey ended up being an acknowledged expert in programming and computer science would have come as something of a surprise to his high school and Cambridge University lecturers. Strachey has always shown a talent for theories but rarely uses them himself.
If you’re hoping for a career in academic research, they’re doing you a big disservice by doing poorly in your final exams. Instead, Strachey spent the Second World War working for a British electronics company and then became a school teacher, eventually landing at Harrow, one of London’s most prestigious public schools.
In 1951 Strachey got his first chance to work with computers when he was introduced to Mike Woodger at Britain’s National Institute of Science. After spending a day of his Christmas break advising with the Pilot ACE lab, he used his free time in Harrow to demonstrate how to teach a computer to do checkers. Like Martin Campbell-KellyStrachey’s colleague when he was an adult, said, “Anyone with more experience or less confidence would have chosen a triangular table.”
This first attempt did not come to fruition; Pilot ACE simply did not have the storage capacity required to run the checkers, but it illustrated an aspect of Strachey’s interest that would prove instrumental in the development of languages that led to C. At a time when computers were important in important for them. ability to quickly solve equations, Strachey was more interested in their ability to perform logical tasks (as he would later prove during 1952 Association for Computing Machinery meeting).
Later that spring it came about the Ferranti Mark I computer being installed at Manchester University, where Alan Turing was assistant director of the computer department. Turing had written the programmer’s manual, and Strachey knew him well from the time they met in Cambridge to ask him for a copy of the manual.
In July 1951, Strachey had the opportunity to visit Manchester and discuss his auditors’ program with Turing in person. Well impressed, Turing suggested that, as a first step, he build a system that would enable the Ferranti Mark I to operate itself. A simulator will allow programmers to see, step by step, how a computer will execute a program. Such a ‘trace’ system will show the places where the system has caused bottlenecks or is running erratically. In an era when both computer memory and processor cycles are at a premium, this is an important aspect of programming.
The program Strachey wrote with over a thousand instructions—at the time it was the longest program ever written for the Ferranti Mark I. Strachey was working after pulling an all-nighter, and when the program ends, it plays “God Save the King” on the computer speakers, just like Campbell-Kelly.
This achievement, through a sponsorship, brought the attention of Lord Halsbury, the director of the National Research and Development Corporation, who soon hired Strachey to head the government’s efforts to promote practical applications of the rapid developments in computer technology that held in British universities.
It was in this capacity that he found out about a project in Cambridge carried out by three artists named David.
David and Goliath Titan
Cambridge University’s computing center has a strong service orientation. The Mathematical Laboratory’s first computers, EDSAC and EDSAC 2, were available to researchers elsewhere in the university who wrote programs punched out on paper tape and fed into the machine.
In the computer industry, these paper tapes are cut on a clothes line and run one after the other during business hours. A queue of pending programs became known as a “work queue,” a term used to describe more sophisticated methods of scheduling computing tasks.
Two years after EDSAC 2 came online, the university realized that a more powerful machine would soon be needed, and in order to achieve this, they would need to purchase a commercial base. The university considered both the IBM 7090 and the Ferranti Atlas, but could not afford either of them. In 1961, Peter Hall, a division manager at Ferranti, suggested that they could develop a detached version of the Atlas computer in conjunction with Cambridge University. Cambridge will get the design, called the “Titan,” and Ferranti will be able to sell the new computer to customers who can’t afford the Atlas system.
In order to provide computing services to the rest of the university, this new computer will need both an operating system and at least one high-level programming language.
Some thought was put into making the language we created for EDSAC 2 more popular. David Hartley recalled in a 2017 podcast. Along with David Wheeler and David Barron, Hartley would be involved in the early development of this new computer programming language.
“A new system is inevitable,” according to Hartley, but a new programming language is not. “We thought this was an opportunity to enjoy a new language—which, in hindsight, was a stupid thing to do.”
Maurice Wilkes, who is in charge of the project called Titan, thinks that there is no room for a new language. The main justification for Titan is providing computing services to the rest of Cambridge University, and for this it would be better if the machine was running as quickly as possible and equipped with a language users are familiar with.
Wilkes required an analysis of existing programming languages before accepting the idea to develop a new language. Hartley said: “We chose them carefully, to decide that none of them were suitable.” In particular, the working group evaluated Fortran IV without consulting the Fortran users at Cambridge who might have defined additional features included with other Fortran variants. Because of this, Hartley remember The team is confident that “we can easily translate and develop something better,” before noting, “this error comes home to rise in a few years.”
Eventually, the three produced a document in June 1962 arguing that a new language was necessary, “and we’re out of there,” Hartley concluded.
This new programming language was called CPL (Cambridge Programming Language), and work was well underway by 1963. John Buxton and Eric Nixon had joined the Cambridge developers of the University of London, and CPL was redesigned. review to stand for the Integrated Language Program. As the project grew, Wilkes decided to bring in Christopher Strachey to oversee the project, and CPL soon came to mean “Christopher’s Programming Language” for those associated with it, according to Campbell-Kelly.
The group of researchers working on the language would meet in Cambridge or in London, sometimes at the University of London, but on other occasions at the artist’s studio in the Kensington home Strachey shared with his sister. The room at the back of the house is furnished with chairs and Victorian chairs on the floor, while the walls are decorated with portraits of various Bloomsbury club members painted by one of Strachey’s relatives. This is where Strachey would “hold court,” occasionally in a dressing gown, and as David Barron recalled years later, “we would argue the world to rights before dispersing to our various homes in the evening.”
By that time, David Wheeler had moved on to other projects, leaving a team of five behind: Hartley, Barron, Buxton, Nixon, and Strachey.
Hartley enjoys working on the CPL; “This was a very fun job,” he recalls. Meetings are informal affairs. “We’ll get really heated about things and eventually start throwing paper (aircraft) darts at each other.”
The group began with the specifications of ALGOL 60, with the goal of writing a “perfect” language: one that would be useful to many users but also satisfying and efficient.
Almost immediately, they had trouble prioritizing, as David Barron said of Strachey, “It was his nature to emphasize the small points of difference with the same force that he emphasized on the important point.” A minor annoyance is Strachey’s objection to the grammar of the “AS… THEN… ELSE” statements. “I can’t allow my name to be associated with a serious attempt to use the wrong English,” in his eyes, according to Hartley later. wrote for the Annals of the History of Computing. Strachey prefers “OR,” which is contrary to the way “OR” is used in almost all other programming languages out there. However, your favorites carry the day, and CPL reference book with “OR” in place where users would expect “ELSE.”
Valuable time was also invested in developing a method to avoid using an asterisk to indicate multiplication. Here, aesthetic concerns led to complications that delayed the implementation of the application programming language, because complicated rules had to be developed to distinguish between “3a” meaning “3 * a” and “3a” as a variable name.
All the while, Cambridge users were growing increasingly frustrated with the lack of a programming language for the university’s new Atlas computer. The specifics of the language are very complete, but no compilation is available. The working group made CPL so complicated that early attempts at writing a compiler resulted in machine code that was incredibly inefficient.