⌘ Sir Tony Hoare, would you kindly stand. Chancellor [or Vice-Chancellor] I have the honour to present for the degree of XXX, Sir Tony Hoare. Sir Tony has a colorful background with impressive variety and achievements. He was born in Sri Lanka in 1934, studied philosophy, Latin, and Greek at Oxford University, then studied statistics, served briefly in the Royal Navy, and then followed graduate studies in computer translation of human languages at Moscow State University in Russia. He has made many brilliant and original inventions and contributions to computer science, having an enormous impact on research, teaching, and industry. Nearly half a century ago, in 1959, while still a young man, he discovered the Quicksort algorithm. Today, nearly 50 years later, Quicksort is still taught to computer science students and is widely used in computer software. Although some other algorithms are a bit better in a theoretical sense, Quicksort is still used because it is often faster in actual practice and it is simple to implement. Sorting algorithms are enormously important in computer software. Keeping lists of information sorted helps speed up finding information later, and also helps in detecting and removing duplicates which often arise. Nearly every computer today will have a number of sorting algorithms on it, often including one or even several versions of Quicksort. For example, my mobile phone [show mobile phone to audience] comes from Motorola with a full Linux operating system installed on it, including dozens of so-called "libraries" and hundreds of programs. This software collection probably includes several copies of Sir Tony's Quicksort algorithm. Considering just the gadgets carried by the people in this room, there may be a thousand copies of Quicksort in the room. Worldwide there are probably billions of copies of Quicksort. You can see the importance. Sir Tony has also been an influential figure in computer programming language design and implementation. He has been helped in this by his great mind and solid foundation in language and philosophy. In the 1960s (in his twenties and early thirties), he did a lot of work with the Algol 60 language; this language is still highly regarded today. He led a team that developed the first commercial Algol 60 compiler; a compiler is an essential piece of software turning the language that the human writes into the so-called "machine-language" that the computer can use. He suggested improving the Algol language by adding a so-called "case statement"; this idea has now appeared in many computer languages. At this time, he also learned a lot about how _not_ to design computer languages. He served on many programming language design committees: the committee for maintaining and improving Algol 60 which ultimately led to the disappointing Algol 68, a committee related to what eventually became the abysmal PL/1 language, and he advised the effort that led to the design of the Ada language. But this work was not in vain, because it turned into advice that he has shared with the entire community over many years. He is well known for his insightful criticisms of the designs of the Algol 68, PL/1, and Ada programming languages. He summarized his criticisms with his new fable "the emperor's old clothes", which he presented as part of his award lecture when he received the 1980 Turing award, the highest honor in computer science. In this fable, rather than having an emperor wearing imaginary clothes, he described how the unwise processes of designing programming languages that he had observed can end up with the situation like having many layers of clothes without an actual emperor inside them. The point being that adding language features (that is, extra layers of clothes) can destroy the ability to create reliable software (that is, you lose the emperor). Having been highly influential in developing programming languages and in watching their successes and failure, and reaching the wise age of 35, he moved his attention to giving recipes for proving the correctness of programs and explaining the meaning of programming languages. In 1969, he developed Hoare logic, an influential logic specialized for reasoning about the behavior of programs. Hoare logic supports the axiomatic semantics of programming languages, and is still being developed and extended today. It has also helped inspire the widely used Z specification language. Almost 40 years on, his insights and visions continue to lead the way into understanding and managing the behavior of computers. In 1978 he developed CSP (Communicating Sequential Processes), one of the first so-called process algebras. CSP was the basis of the "occam" programming language which was used by the "transputer" of the (British) INMOS Ltd. company in the 1980s. Today, 30 years later, CSP and related process calculi are actively used in understanding and managing complex computer systems. One of the shining lights of computer science, Sir Tony has played influential roles in both industry and academia. He worked in industry at Elliott Brothers from 1960 through 1968, at Queen's University in Belfast from 1968 through 1977, at Oxford University from 1977 through 1999, and has been a leading figure at Microsoft Research Cambridge since 1999. He influenced many generations of computer scientists and will continue to influence the science for many generations to come. Obviously, he is the recipient of numerous prestigious awards, too many to list them all. I will simply mention that he obtained his first honorary doctorate at the University of Southern California almost 30 years ago, and he is the winner of the extremely prestigious 1980 Turing award. He was knighted in 2000 for his services to computer science and education. Chancellor [or Vice-Chancellor], in the name of the University and by the authority of the Senate, in recognition of his outstanding achievements in many areas of computer science that have shaped the field as we know it today, I call upon you to confer the honorary degree of XXX on Sir Tony Hoare. ====================================================================== Subject: Tony Hoare info • born in Sri Lanka in 1934 (he is 73 years old) • studies and work: ◦ studied philosophy, Latin, and Greek at Oxford University, then statistics ◦ was in Royal Navy briefly (national service) ◦ graduate student studying computer translation of human languages at Moscow State University ◦ in industry (Elliott Brothers) from 1960 through 1968 ◦ at Queen's University (Belfast) from 1968 through 1977 ◦ at Oxford from 1977 through 1999 (22 years) ◦ at Microsoft Research since 1999 • major awards: ◦ winner of 1980 Turing award! ◦ knighted in 2000! ◦ honorary doctorate at U. Southern California in 1979 (probably many honorary doctorates by now) • major Computer Science achievements: ◦ discovered quicksort (1959, rewritten in Algol 60 in 1961) ‣ widely used today ‣ O(n²) ‣ O(n log n) on _average_ ‣ in practice often fastest (despite not having best worst case complexity) ◦ programming language design and implementation work: ‣ Algol (1961 through 1968) ⁃ led team that developed first (commercial) Algol 60 compiler ⁃ served on committee for maintaining and improving Algol 60 ⁃ designed the “case statement” for Algol 60 (now used by many other languages) ⁃ watched failure of Algol 68 design effort ‣ served on committee watching failure of PL/1 design effort (1965 through 1970) ‣ advised the Ada design effort and watched it go awry (1975 through 1980 (and maybe later)) ‣ well known for criticisms of the designs of the Algol 68, PL/1, and Ada programming languages, summarized in his new fable “the emperor's old clothes” (in which the _clothes_ have no emperor inside them!) given in his Turing award lecture ◦ developed Hoare logic (1969) ‣ supports axiomatic semantics of programming languages ‣ first logic specialized for proving behavior of programs ‣ still being developed and extended today ‣ helped inspire the widely used Z specification language ◦ developed CSP (Communicating Sequential Processes) (1978) ‣ one of the first process algebras/calculi (Milner's CCS is documented in a 1980 monograph, but I'm not sure that is the first paper on CCS) ‣ CSP is the basis of the “occam” programming language which was used by the “transputer” of the (British) INMOS Ltd. company in the 1980s