January 31, 2000 Facing Up to Faults Brian Randell Dept of Computing Science University of Newcastle upon Tyne As individuals, organisations and indeed the world at large have become more dependent on computer-based systems, so there has been an ever-growing amount of research into means for improving the dependability of these systems. In particular there has been much work on trying to gain increased understanding of the many and varied types of faults that need to be prevented or tolerated in order to reduce the probability and severity of system failures. In this talk I discuss the assumptions that are often made by computing system designers regarding faults, survey a number of continuing issues related to fault tolerance, and identify some of the latest challenges facing researchers in this arena. In The Beginning It is a great honour and privilege to be asked to give this, the second, Turing Lecture. Let me start by mentioning that, to my great regret, I never met Alan Turing, whose tragic death occurred just a few years before I became involved with computing. His character and achievements have however always fascinated me - at one time I spent much effort trying to investigate his wartime work on cryptanalysis and code-breaking devices. As a result I managed to uncover and help to gain belated public recognition for the team that designed and built Bletchley Park’s Colossus computers. Incidentally, this group of engineers, though ambivalent concerning Turing’s merits as a designer of practical electronic devices, were unstinting in their admiration for his intellect, and his immense contributions to the overall work of Bletchley Park. After the war, Turing re-appeared on the public scene, so to speak, and was instrumental in initiating the work at the National Physical Laboratory (NPL) on electronic computers. This provides me another point of contact with him, since - aside from a brief flirtation with the IBM 650, a boringly easy computer to program - my initial years as a programmer were spent trying to cope with the English Electric DEUCE computer. This computer was a direct descendant of the machine that Turing designed at NPL in the early years after the war. Thanks to Turing’s design, DEUCE was typically much faster in operation than its rivals, albeit almost entirely at the expense of its programmers. Such was the innocence of youth that I and my colleagues actually enjoyed its intricacies, and the problem of finding ways of automating, at least partially, the programming task. Indeed, we felt that contemporary American computer developments, by IBM and others, such as the provision of what seemed to us to be huge memories, and of floating point arithmetic hardware, were in effect cheating. Certainly they were depriving compiler writers such as ourselves of interesting and (we thought) worthwhile challenges.