The textbook that changed my life
I encountered the term "structured programming" during my first industrial job in the late 1970s. An enlightened academically minded colleague gave a course on it that included quotes from Edsger Dijkstra, the pioneering computer scientist. Structured programming was an important change to the method of practical programming used at the time, moving it on from "spaghetti" code with "goto" control-flow statements used in a haphazard manner to structured statements such as "if... then... else". It made programs more understandable and maintainable.
Soon after, in academia myself at Imperial College London, I worked on a large chemical engineering simulation program. Available to the team was a thinnish black tome - Structured Programming (1972), written by Dijkstra along with O. J. Dahl and C.A.R. Hoare. We were encouraged to use it. The book became an inspiration, almost a call to arms.
A few years later, I met Tony Hoare when I applied for a job at the Oxford University Computing Laboratory to work with "formal methods", a step up from structured programming in which mathematical specification techniques are used to help avoid errors in software. He offered me the job although I had no real experience with formal methods, only a willingness and enthusiasm to try new approaches.
By the early 1990s, the laboratory was involved with a number of European projects, including "ProCoS" on provably correct systems. This evolved into a working group, with many partners, including the University of Oslo. A tall and rather distinguished-looking but friendly Norwegian began to join our meetings - he was Ole-Johan Dahl, another of the authors of Structured Programming .
I have to admit that even then I had not bought the book because it was expensive. Despite scouring Oxford's second-hand bookshops, I never found a used copy. Very recently, though, a selection of unwanted computer science books came my way for distribution to deserving PhD students. Much to my surprise and delight, there was a copy of Structured Programming , reissued in the series Computer Science Classics. I kept it for myself, but I am happy to lend it to any PhD student seeking inspiration from the not-so-distant past of computing.
Structured Programming is an example of successful European collaboration, between a Norwegian, a Dutchman and an Englishman. Sadly two of the authors, Dahl and Dijkstra, have died, but their book remains a lasting testament to these three winners of the Turing Award - computer science's equivalent of the Nobel prize.
Jonathan Bowen is professor of computing, London South Bank University.