From the early 1960s, at the beginning of the shift to large-scale, large-capacity computers, Professor Hoare presented Hoare’s Logic on the definition and design of programming languages and a number of other papers on specification, design, implementation and maintenance of programs, applying his axiomatic approach for better computer performance and greater software reliability. He is a computer scientist who has made significant contributions to the development of software science.
Structured Programming, Academic Press, 1972
Essays in Computing Science, Prentice Hall, 1989
Quicksort. Computer Journal 5 (1), 1962
An axiomatic basis for computer programming. Communications of the ACM Vol.12, 1969
An axiomatic definition of the programming language PASCAL. Acta Informatica 2 (4), 1973
An operating system structuring concept. Communications of the ACM 17 (10), 1974
Communicating sequential processes. Communications of the ACM 2 (18), 1978
Programs are predicates. ICOT Journal 38, 1993
Over the last four decades, Professor Hoare has presented a number of innovative ideas, including his axiomatic approach for greater software reliability, thus making fundamental contributions to software science.
In the early 1960s, Professor Hoare developed Quicksort, the first efficient algorithm for sorting sequences and the one that is most extensively used today. It is groundbreaking in that it employs a basic algorithm that can be expressed in simple recursive descriptions, and is a high-speed, elaborate technique which made full use of what were then the latest computers.
In 1969, Professor Hoare made yet another contribution to the definition and design of programming languages by employing techniques now popularly referred to as Hoare’s Logic. The brainchild of his profound insight and originality, this powerful yet elegant achievement marked a milestone in the history of software science and helped establish programming as an exact science.
During the latter half of the 1960s, when development of large-scale software was urgently required for large-scale, large-capacity computers, people often spoke of a “software crisis” due to the difficulties involved in development and the low reliability of the new systems. Professor Hoare responded by exploiting Hoare’s Logic to provide a clear guideline showing that the validity of programs must be proven logically. In an attempt to provide a methodology with which to assure the validity and reliability of structured software, he defined the concept of data types, emphasizing the importance of structured data, and initiated the notion of structured programming, which details programs in stages based on hierarchy and conceptualization. His conception of data types and rules for verification became a prime force in overcoming the software crisis, as these served as a fundamental guideline for creating quality programs.
In 1972, Professor Hoare came up with the idea of monitors through his research into conceptualization and structuring of operating systems, which later led to his contribution of CSP(Communicating Sequential Processes), a logical framework for describing the behavior of parallel processing systems. This theory laid the groundwork for the practical use of parallel processing computers, with a substantial impact on their diffusion.
Each of his contributions to software science is closely linked to a core of ever-advancing and diversifying computer software, and stands unchallenged in scope and theoretical depth, thus providing the technical foundation essential to the creation of a secure information society. Without his achievements, progress in software science and engineering as we know them today would have been quite different.
For these reasons, the Inamori Foundation is pleased to bestow upon Professor Hoare the 2000 Kyoto Prize in Advanced Technology.
I have lived in interesting times. My stories will recount the twists of fate and circumstance that moulded my thinking and my career as an information scientist. My deep thanks for the award of the Kyoto Prize for the year 2000 will be best expressed if any of my listeners is warned by my mistakes or inspired by my success to contribute further to the goals of the founder of the prize-the betterment of mankind and society.
Born in Sri Lanka in 1934, I spent several years of the last world war in Zimbabwe and South Africa. In 1946, my father retired to England, and I made a late start on a traditional English education. I specialised in classical Greek and Latin, including the languages and the literature, and graduated in 1956 from Oxford University in these subjects, together with ancient history and philosophy, which was always my favourite. The Russian language I learnt during two years’ national service in the Royal Navy. Then I returned to Oxford as a graduate student for the Certificate in Statistics-my only official scientific or professional qualification. I was attracted to the subject by its implications for the philosophical questions of human knowledge and uncertainty. My final year as a student I spent at Moscow State University, in Kolmogorov’s school of probability. There I invented the quicksort algorithm, and investigated the state of the art in computer translation of natural languages. This was the topic of my first scientific article, written and published in Russian.
Back in England in 1960, I decided to stop studying and start working. I joined a small computer manufacturing Company as a programmer. Again, I was attracted to computing by its philosophical implications, though I thought (how wrongly!) that the period of major expansion of the subject was already over. I designed a translator for an artificial language, the international algorithmic language, ALGOL 60. Promoted beyond my capabilities, I then supervised the development of an operating system that never worked, and a machine architecture that was never built. The Company was absorbed into two larger Companies, and I returned to academic life as Professor of Computing Science at the Queen’s University, Belfast, to teach the subject that I had learnt by eight years of hard experience in industry.
1968 was just the start of the intensive period of the civil disturbances in Northern Ireland that are only now subsiding. In spite of this, I was able to recruit a strong team to the computing department, to meet a rapidly expanding demand for education in the subject. My research had a practical goal: I wanted to understand the reasons for the success and the failure of my earlier projects in industry. In tackling the problems, I took a long-term, almost philosophical view. I planned a research agenda that would last throughout my academic life, because I knew its results would hardly be ripe for application in industry until after my retirement some thirty years ahead. In 1977, I moved to the chair of Computation at Oxford, where again, from smaller beginnings, I assembled the funds and recruited a team to introduce the subject of computing into the curricula of the University. I retired last year as senior Professor in the Faculty of Mathematics, to move back into industry.
I am now working as a senior researcher for Microsoft Research at Cambridge. Here I will pursue my early hope that the results of pure research, my own and that of others, may be applied by those engaged in the writing of large-scale computer software, for the benefit of the increasing numbers of those who use it. Perhaps in the years to come, that will be the whole of mankind.