Michael Guy LEO Master Routine – The Birth of Software Engineering?
Michael Guy joined LEO straight from Wadham College, Oxford in 1962 with a
mathematics degree. After two years working on the Master Routine he left to do a PhD
at Newcastle University in integer programming. After two years working for Wiggins
Teape in their systems development department he rejoined what was then ICL. He
worked on VME for many years, progressing from programmer to designer, project
manager and OSTECH. When a team was created to pursue the UK Alvey projects,
launched as a response to the Japanese 5th Generation project, he seized the opportunity,
working mainly on persistent programming with the universities of Glasgow and St
Andrews. He ended his career with Teamware in what had become Fujitsu. On retirement
he went back to university, taking degrees in theology and biblical studies at Birmingham
University. After gaining an acquaintance with at least a dozen programming languages
he had no desire to program any more until twenty years later, when he found himself
helping to debug his grandson’s Python programs on a Raspberry Pi.
I worked on the LEO III Master Routine from 1962 to 1964, going straight from
university with a maths degree. It was nearly sixty years ago and my memories of that
time have been paged out and archived, and have probably been corrupted on the way.
Also I do not have a wide knowledge of the wider world of computing at the time. But I
have been encouraged to write this article in the hope of generating discussion of a very
important subject – the development of the discipline of software engineering.
John Daines writes “I have listings of the master routine and it was written in Intercode.
Intercode itself was a level above machine code and, although a instruction looked to be
an equivalent to a machine code instruction, it was often expanded by the translator
into several machine code instructions.
However, Intercode instructions 100/0/0 to 131/1/3 were one for one equivalents of
machine code instructions 0/0/0 to 31/1/3. That meant that the master routine
programmers could program at the lowest level and use specialist low level instructions
that weren’t in the Intercode set e.g. input output, interrupt handling, setting store
protection tags .etc
Interestingly, Cleo allowed for routines to be written in Intercode and, by implication
from the above, that Intercode might include machine code.”
LEO was the first computer to be used for business purposes. This meant a change in the
priorities of computer design. The first change was that it was used for data processing. It
spent relatively little time actually calculating and a lot of time reading paper tape,
printing and reading and writing magnetic tape. The role of the Master Routine was to
manage the computer efficiently and attempt to keep everything going full time. This is
what multi-programming is about