Tony Hoare

Last updated

Sir

Tony Hoare

Sir Tony Hoare IMG 5125.jpg
Tony Hoare in 2011
Pronunciation
Born
Charles Antony Richard Hoare

(1934-01-11) 11 January 1934 (age 90)
Other namesC. A. R. Hoare
Education
Known for
Spouse Jill Pym
Children3
Awards
Scientific career
Fields Computer science
Institutions
Doctoral students
Website www.cs.ox.ac.uk/people/tony.hoare

Sir Charles Antony Richard Hoare (Tony Hoare or C. A. R. Hoare)[ pronunciation? ] FRS FREng [3] (born 11 January 1934) [4] is a British computer scientist who has made foundational contributions to programming languages, algorithms, operating systems, formal verification, and concurrent computing. [5] His work earned him the Turing Award, usually regarded as the highest distinction in computer science, in 1980.

Contents

Hoare developed the sorting algorithm quicksort in 1959–1960. [6] He developed Hoare logic, an axiomatic basis for verifying program correctness. In the semantics of concurrency, he introduced the formal language communicating sequential processes (CSP) to specify the interactions of concurrent processes, and along with Edsger Dijkstra, formulated the dining philosophers problem. [7] [8] [9] [10] [11] [12] Since 1977, he has held positions at the University of Oxford and Microsoft Research in Cambridge.

Education and early life

Tony Hoare was born in Colombo, Ceylon (now Sri Lanka) to British parents; his father was a colonial civil servant and his mother was the daughter of a tea planter. Hoare was educated in England at the Dragon School in Oxford and the King's School in Canterbury. [13] He then studied Classics and Philosophy ("Greats") at Merton College, Oxford. [14] On graduating in 1956 he did 18 months National Service in the Royal Navy, [14] where he learned Russian. [15] He returned to the University of Oxford in 1958 to study for a postgraduate certificate in statistics, [14] and it was here that he began computer programming, having been taught Autocode on the Ferranti Mercury by Leslie Fox. [16] He then went to Moscow State University as a British Council exchange student, [14] where he studied machine translation under Andrey Kolmogorov. [15]

Research and career

In 1960, Hoare left the Soviet Union and began working at Elliott Brothers Ltd, [14] a small computer manufacturing firm located in London. There, he implemented the language ALGOL 60 and began developing major algorithms. [17] [18]

He was involved with developing international standards in programming and informatics, as a member of the International Federation for Information Processing (IFIP) Working Group 2.1 on Algorithmic Languages and Calculi, [19] which specified, maintains, and supports the languages ALGOL 60 and ALGOL 68. [20]

He became the Professor of Computing Science at the Queen's University of Belfast in 1968, and in 1977 returned to Oxford as the Professor of Computing to lead the Programming Research Group in the Oxford University Computing Laboratory (now Department of Computer Science, University of Oxford), following the death of Christopher Strachey. He became the first Christopher Strachey Professor of Computing on its establishment in 1988 until his retirement at Oxford in 2000. [21] He is now an Emeritus Professor there, and is also a principal researcher at Microsoft Research in Cambridge, England. [22] [23] [24]

Hoare's most significant work has been in the following areas: his sorting and selection algorithm (Quicksort and Quickselect), Hoare logic, the formal language communicating sequential processes (CSP) used to specify the interactions between concurrent processes (and implemented in various programming languages such as occam), structuring computer operating systems using the monitor concept, and the axiomatic specification of programming languages. [25] [26]

Speaking at a software conference in 2009, Tony Hoare hyperbolically apologized for "inventing" the null reference: [27] [28]

I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn't resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. [29]

For many years under his leadership, Hoare's Oxford department worked on formal specification languages such as CSP and Z. These did not achieve the expected take-up by industry, and in 1995 Hoare was led to reflect upon the original assumptions: [30]

Ten years ago, researchers into formal methods (and I was the most mistaken among them) predicted that the programming world would embrace with gratitude every assistance promised by formalisation to solve the problems of reliability that arise when programs get large and more safety-critical. Programs have now got very large and very critical – well beyond the scale which can be comfortably tackled by formal methods. There have been many problems and failures, but these have nearly always been attributable to inadequate analysis of requirements or inadequate management control. It has turned out that the world just does not suffer significantly from the kind of problem that our research was originally intended to solve.

Awards and honours

Personal life

In 1962, Hoare married Jill Pym, a member of his research team. [45]

Books

Related Research Articles

<span class="mw-page-title-main">Edsger W. Dijkstra</span> Dutch computer scientist (1930–2002)

Edsger Wybe Dijkstra was a Dutch computer scientist, programmer, software engineer, and science essayist.

<span class="mw-page-title-main">Niklaus Wirth</span> Swiss computer scientist (1934–2024)

Niklaus Emil Wirth was a Swiss computer scientist. He designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Turing Award, generally recognized as the highest distinction in computer science, "for developing a sequence of innovative computer languages".

<span class="mw-page-title-main">Turing Award</span> American annual computer science prize

The ACM A. M. Turing Award is an annual prize given by the Association for Computing Machinery (ACM) for contributions of lasting and major technical importance to computer science. It is generally recognized as the highest distinction in computer science and is often referred to as the "Nobel Prize of Computing".

<span class="mw-page-title-main">Peter Naur</span> Danish computer science pioneer

Peter Naur was a Danish computer science pioneer and 2005 Turing award winner. He is best remembered as a contributor, with John Backus, to the Backus–Naur form (BNF) notation used in describing the syntax for most programming languages. He also contributed to creating the language ALGOL 60.

<span class="mw-page-title-main">Alfred Aho</span> Canadian computer scientist

Alfred Vaino Aho is a Canadian computer scientist best known for his work on programming languages, compilers, and related algorithms, and his textbooks on the art and science of computer programming.

Andrey Petrovich Yershov was a Soviet computer scientist, notable as a pioneer in systems programming and programming language research.

<span class="mw-page-title-main">Stephen R. Bourne</span> British computer scientist

Stephen Richard "Steve" Bourne is an English computer scientist based in the United States for most of his career. He is well known as the author of the Bourne shell (sh), which is the foundation for the standard command-line interfaces to Unix.

ALGOL W is a programming language. It is based on a proposal for ALGOL X by Niklaus Wirth and Tony Hoare as a successor to ALGOL 60. ALGOL W is a relatively simple upgrade of the original ALGOL 60, adding string, bitstring, complex number and reference to record data types and call-by-result passing of parameters, introducing the while statement, replacing switch with the case statement, and generally tightening up the language.

<span class="mw-page-title-main">Robert W. Floyd</span> American computer scientist (1936–2001)

Robert W Floyd was a computer scientist. His contributions include the design of the Floyd–Warshall algorithm, which efficiently finds all shortest paths in a graph and his work on parsing; Floyd's cycle-finding algorithm for detecting cycles in a sequence was attributed to him as well. In one isolated paper he introduced the important concept of error diffusion for rendering images, also called Floyd–Steinberg dithering. He pioneered in the field of program verification using logical assertions with the 1967 paper Assigning Meanings to Programs. This was a contribution to what later became Hoare logic. Floyd received the Turing Award in 1978.

In theoretical computer science, an algorithm is correct with respect to a specification if it behaves as specified. Best explored is functional correctness, which refers to the input-output behavior of the algorithm.

<span class="mw-page-title-main">Peter Landin</span> British computer scientist (1930–2009)

Peter John Landin was a British computer scientist. He was one of the first to realise that the lambda calculus could be used to model a programming language, an insight that is essential to the development of both functional programming and denotational semantics.

<span class="mw-page-title-main">Adriaan van Wijngaarden</span> Dutch mathematician and computer scientist

Adriaan "Aad" van Wijngaarden was a Dutch mathematician and computer scientist. Trained as a mechanical engineer, Van Wijngaarden emphasized and promoted the mathematical aspects of computing, first in numerical analysis, then in programming languages and finally in design principles of such languages.

<span class="mw-page-title-main">Barbara Liskov</span> American computer scientist

Barbara Liskov is an American computer scientist who has made pioneering contributions to programming languages and distributed computing. Her notable work includes the introduction of abstract data types and the accompanying principle of data abstraction, along with the Liskov substitution principle, which applies these ideas to object-oriented programming, subtyping, and inheritance. Her work was recognized with the 2008 Turing Award, the highest distinction in computer science.

<span class="mw-page-title-main">Friedrich L. Bauer</span> German computer scientist

Friedrich Ludwig "Fritz" Bauer was a German pioneer of computer science and professor at the Technical University of Munich.

Eric "Rick" C. R. Hehner is a Canadian computer scientist. He was born in Ottawa. He studied mathematics and physics at Carleton University, graduating with a Bachelor of Science (B.Sc.) in 1969. He studied computer science at the University of Toronto, graduating with a Master of Science (M.Sc.) in 1970, and a Doctor of Philosophy (Ph.D.) in 1974. He then joined the faculty there, becoming a full professor in 1983. He became the Bell University Chair in software engineering in 2001, and retired in 2012.

<span class="mw-page-title-main">Quicksort</span> Divide and conquer sorting algorithm

Quicksort is an efficient, general-purpose sorting algorithm. Quicksort was developed by British computer scientist Tony Hoare in 1959 and published in 1961. It is still a commonly used algorithm for sorting. Overall, it is slightly faster than merge sort and heapsort for randomized data, particularly on larger distributions.

<span class="mw-page-title-main">Micha Sharir</span> Israeli mathematician and computer scientist

Micha Sharir is an Israeli mathematician and computer scientist. He is a professor at Tel Aviv University, notable for his contributions to computational geometry and combinatorial geometry, having authored hundreds of papers.

Charles Hodgson Lindsey was a British computer scientist, most known for his involvement with the programming language ALGOL 68.

<span class="mw-page-title-main">Maurice Nivat</span> French computer scientist

Maurice Paul Nivat was a French computer scientist. His research in computer science spanned the areas of formal languages, programming language semantics, and discrete geometry. A 2006 citation for an honorary doctorate (Ph.D.) called Nivat one of the fathers of theoretical computer science. He was a professor at the University Paris Diderot until 2001.

IFIP Working Group 2.1 on Algorithmic Languages and Calculi is a working group of the International Federation for Information Processing (IFIP).

References

  1. 1 2 Tony Hoare at the Mathematics Genealogy Project
  2. Sampaio, Augusto (1993). An algebraic approach to compiler design. bodleian.ox.ac.uk (DPhil thesis). University of Oxford. OCLC   854973008. EThOS   uk.bl.ethos.334903.[ permanent dead link ]
  3. 1 2 3 "List of Fellows". Archived from the original on 8 June 2016. Retrieved 17 October 2014.
  4. "Birthdays Jan 10". The Times . London. 10 January 2009. Retrieved 9 January 2010.
  5. Jones, Cliff B.; Misra, Jayadev, eds. (2021). Theories of Programming: The Life and Works of Tony Hoare. ACM Books. Vol. 39. New York, NY: Association for Computing Machinery. doi:10.1145/3477355. ISBN   978-1-4503-8728-6. S2CID   238251696.
  6. "Sir Antony Hoare". Computer History Museum. Archived from the original on 3 April 2015. Retrieved 22 April 2015.
  7. Tony Hoare author profile page at the ACM Digital Library
  8. C. A. R. Hoare at DBLP Bibliography Server OOjs UI icon edit-ltr-progressive.svg
  9. Tony Hoare publications indexed by Microsoft Academic
  10. Shustek, L. (2009). "Interview: An interview with C.A.R. Hoare". Communications of the ACM . 52 (3): 38–41. doi:10.1145/1467247.1467261. S2CID   1868477.
  11. Hoare, C. A. R. (1974). "Monitors: An operating system structuring concept". Communications of the ACM. 17 (10): 549–557. doi: 10.1145/355620.361161 . S2CID   1005769.
  12. Bowen, Jonathan (8 September 2006). Oral History of Sir Antony Hoare. Hoare (Sir Antony, C.A.R.) Oral History, CHM Reference number: X3698.2007 (Report). Computer History Museum. Archived from the original on 3 July 2013. Retrieved 18 April 2014.{{cite report}}: CS1 maint: bot: original URL status unknown (link)
  13. Lean, Thomas (2011). "Professor Sir Tony Hoare" (PDF). National Life Stories: An Oral History of British Science. UK: British Library. Archived (PDF) from the original on 15 September 2014. Retrieved 15 September 2014.
  14. 1 2 3 4 5 Levens, R.G.C., ed. (1964). Merton College Register 1900-1964. Oxford: Basil Blackwell. p. 434.
  15. 1 2 Hoare, Tony (Autumn 2009). "My Early Days at Elliotts". Resurrection (48). ISSN   0958-7403 . Retrieved 27 May 2014.
  16. Roscoe, Bill; Jones, Cliff (2010). "1 Insight, inspiration and collaboration" (PDF). Reflections on the Work of C.A.R. Hoare. Springer. ISBN   978-1-84882-911-4. Archived (PDF) from the original on 9 October 2022.
  17. 1 2 Hoare, C.A.R. (February 1981). "The emperor's old clothes". Communications of the ACM . 24 (2): 5–83. doi: 10.1145/358549.358561 . ISSN   0001-0782.
  18. Hoare, C. A. R. (1981). "The emperor's old clothes". Communications of the ACM. 24 (2): 75–83. doi: 10.1145/358549.358561 .
  19. Jeuring, Johan; Meertens, Lambert; Guttmann, Walter (17 August 2016). "Profile of IFIP Working Group 2.1". Foswiki. Retrieved 7 October 2020.
  20. Swierstra, Doaitse; Gibbons, Jeremy; Meertens, Lambert (2 March 2011). "ScopeEtc: IFIP21: Foswiki". Foswiki. Retrieved 7 October 2020.
  21. "Christopher Strachey Professorship of Computing". Department of Computer Science, University of Oxford. 5 November 2021. Retrieved 18 January 2024.
  22. Microsoft home page – short biography
  23. Oral history interview with C. A. R. Hoare at Charles Babbage Institute, University of Minnesota, Minneapolis.
  24. The classic article on monitors – The original article on monitors
  25. "Preface to the ACM Turing Award lecture" (PDF). Archived from the original (PDF) on 19 April 2012.
  26. "C. Antony (Tony) R. Hoare". Archived from the original on 1 July 2012.
  27. Hoare, Tony (25 August 2009). "Null References: The Billion Dollar Mistake". InfoQ.com.
  28. "Null: The Billion Dollar Mistake". hashnode.com. 3 September 2020.
  29. Hoare, Tony (2009). "Null References: The Billion Dollar Mistake" (Presentation abstract). QCon London. Archived from the original on 28 June 2009.
  30. Hoare, C. A. R. (1996). "Unification of Theories: A Challenge for Computing Science". Selected papers from the 11th Workshop on Specification of Abstract Data Types Joint with the 8th COMPASS Workshop on Recent Trends in Data Type Specification. Springer-Verlag. pp. 49–57. ISBN   3-540-61629-2.
  31. "ACM Programming Systems and Languages Paper Award". Association for Computing Machinery. 1973. Retrieved 7 July 2022.
  32. Hoare, C.A.R. (1972). "Proof of correctness of data representations". Communications of the ACM . 1 (4): 271–281. doi:10.1007/BF00289507. S2CID   34414224.
  33. Hoare, Charles Anthony Richard (27 October 1980). "The Emperor's Old Clothes: The 1980 ACM Turing Award Lecture" (PDF). Association for Computing Machinery. Archived from the original (PDF) on 19 April 2012.
  34. Anon (1982). "Anthony Hoare FRS". royalsociety.org. London: Royal Society.
  35. "Honorary Graduates 1989 to present". bath.ac.uk. University of Bath. Archived from the original on 17 July 2010. Retrieved 18 February 2012.
  36. "(Charles) Antony Richard (Tony) Hoare Biography". Archived from the original on 17 July 2014.
  37. "Sir Antony Hoare: 2006 Fellow". Archived from the original on 3 April 2015. Retrieved 8 March 2020. "Sir Antony Hoare | Computer History Museum". Archived from the original on 3 April 2015. Retrieved 22 April 2015.
  38. "Annual Review 2007: Principal's Review". www1.hw.ac.uk. Archived from the original on 5 March 2016. Retrieved 29 March 2016.
  39. "Preisverleihung auf der Festveranstaltung "40 Jahre Informatik in München": TU München vergibt Friedrich L. Bauer-Preis an Tony Hoare" (in German). Technical University of Munich. 26 October 2007. Archived from the original on 10 June 2016. Retrieved 14 May 2016.
  40. "Programming Languages Achievement Award 2011". ACM. Retrieved 28 August 2012.
  41. "IEEE John von Neumann Medal Recipients" (PDF). IEEE. Archived (PDF) from the original on 9 October 2022. Retrieved 26 February 2011.
  42. Krzysztof, Diks (15 November 2012). "Profesor Hoare doktorem honoris causa Uniwersytetu Warszawskiego" (in Polish). University of Warsaw. Archived from the original on 26 August 2014. Retrieved 26 November 2012.
  43. "Los informáticos Tony Hoare y Mateo Valero serán investidos hoy doctores honoris causa por la Complutense" (in Spanish). 10 May 2013. Retrieved 10 May 2013.
  44. Royal Medal 2023
  45. Jones, Cliff; Roscoe, A. W.; Wood, Kenneth R., eds. (2010). Reflections on the Work of C.A.R. Hoare . Springer Science. p.  3. Bibcode:2010rwch.book.....R.

Creative Commons by small.svg  This article incorporates text available under the CC BY 4.0 license.