The Full Wiki

C. A. R. Hoare: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


From Wikipedia, the free encyclopedia

Sir Charles Antony Richard Hoare

Born 11 January 1934 (1934-01-11) (age 76)
Colombo, Sri Lanka
Fields Computer Scientist
Institutions Elliott Brothers
Queen's University of Belfast
Oxford University
Moscow State University
Microsoft Research
Alma mater Oxford University
Moscow State University
Doctoral students Stephen Brookes
Cliff Jones
David Naumann
Bill Roscoe
William Stewart
Known for Quicksort
Hoare logic
Notable awards ACM Turing Award

Sir Charles Antony Richard Hoare (born 11 January 1934[1]), commonly known as Tony Hoare or C.A.R. Hoare, is a British computer scientist, probably best known for the development in 1960, at age 26, of Quicksort, one of the world's most widely used sorting algorithms. He also developed Hoare logic for verifying program correctness, and the formal language Communicating Sequential Processes (CSP) used to specify the interactions of concurrent processes (including the dining philosophers problem) and the inspiration for the occam programming language.



Born in Colombo (Ceylon, now Sri Lanka) to British parents, he received his Bachelor's degree in Classics from the University of Oxford (Merton College) in 1956. He remained an extra year at Oxford studying graduate-level statistics, and following his National Service in the Royal Navy (1956–1958). When he learned to speak Russian, he studied computer translation of human languages at Moscow State University in the Soviet Union in the school of Kolmogorov.

In 1960, he left the Soviet Union and began working at Elliott Brothers, Ltd, a small computer manufacturing firm, where he implemented ALGOL 60 and began developing algorithms in earnest.[2] He became a Professor of Computing Science at the Queen's University of Belfast in 1968, and in 1977 moved back to Oxford as a Professor of Computing to lead the Programming Research Group in the Oxford University Computing Laboratory, following the death of Christopher Strachey. He is now an Emeritus Professor there, and is also a principal researcher at Microsoft Research in Cambridge, England.

His most significant work[3][4] has been in the following areas: devising a widely-used sorting algorithm (Quicksort), Hoare logic, the formal language Communicating Sequential Processes (CSP) used to specify the interactions between concurrent processes, structuring computer operating systems using the monitor concept, and the axiomatic specification of programming languages.


The famous quote, "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil", by Donald Knuth,[5] has also been mistakenly attributed to him (by Knuth himself),[6] although Hoare disclaims having coined the phrase.[7]

Speaking at a conference in 2009, Hoare apologized for inventing the null reference, described by him as a "billion-dollar mistake":[8][9]

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.




  1. ^ The Times 10 January 2009, Retrieved 2010-01-09
  2. ^ a b C.A.R. Hoare (February 1981). "The emperor's old clothes" (PDF). Communications of the ACM 24 (2): 5–83. doi:10.1145/358549.358561. ISSN 0001-0782.  
  3. ^ preface to the ACM Turing Award lecture
  4. ^ ACM Turing Award citation
  5. ^ Knuth, Donald: Structured Programming with Goto Statements. Computing Surveys 6:4 (1974), 261–301.
  6. ^ The Errors of Tex, in Software—Practice & Experience, Volume 19, Issue 7 (July 1989), pp. 607–685, reprinted in his book Literate Programming (p. 276)
  7. ^ Tony Hoare, a 2004 email
  8. ^ Tony Hoare (2009-03-09). "Null References: The Billion Dollar Mistake". QCon London.  
  9. ^ Tony Hoare (2009-08-25). "Null References: The Billion Dollar Mistake".  

External links


Up to date as of January 14, 2010

From Wikiquote

Charles Antony Richard Hoare (Tony Hoare or C.A.R. Hoare, born January 11, 1934) is a British computer scientist, and winner of the 1980 Turing Award. He is best known for his fundamental contributions to the definition and design of programming languages, and for the development of Quicksort, the world's most widely used sorting algorithm.



  • Programming languages on the whole are very much more complicated than they used to be: object orientation, inheritance, and other features are still not really being thought through from the point of view of a coherent and scientifically well-based discipline or a theory of correctness. My original postulate, which I have been pursuing as a scientist all my life, is that one uses the criteria of correctness as a means of converging on a decent programming language design—one which doesn’t set traps for its users, and ones in which the different components of the program correspond clearly to different components of its specification, so you can reason compositionally about it. [...] The tools, including the compiler, have to be based on some theory of what it means to write a correct program.

The Emperor's Old Clothes

1980 Turing Award Lecture; Communications of the ACM 24 (2), (February 1981): pp. 75-83.

  • There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. It demands the same skill, devotion, insight, and even inspiration as the discovery of the simple physical laws which underlie the complex phenomena of nature.
  • [About Fortran] On October 11, 1963, my suggestion was to pass on a request of our customers to relax the ALGOL 60 rule of compulsory declaration of variable names and adopt some reasonable default convention such as that of FORTRAN. […] The story of the Mariner space rocket to Venus, lost because of the lack of compulsory declarations in FORTRAN, was not to be published until later.
  • [About Algol 60] Due credit must be paid to the genius of the designers of ALGOL 60 who included recursion in their language and enabled me to describe my invention [Quicksort] so elegantly to the world.
  • [About Algol W] It was not only a worthy successor of ALGOL 60, it was even a worthy predecessor of PASCAL[…] I was astonished when the working group, consisting of all the best known international experts of programming languages, resolved to lay aside the commissioned draft on which we had all been working and swallow a line with such an unattractive bait.
  • [About Algol 68] The best we could do was to send with it a minority report, stating our considered view that, "… as a tool for the creation of sophisticated programs, the language was a failure."
  • [About PL/I] At first I hoped that such a technically unsound project would collapse but I soon realized it was doomed to success. Almost anything in software can be implemented, sold, and even used given enough determination. There is nothing a mere scientist can say that will stand against the flood of a hundred million dollars. But there is one quality that cannot be purchased in this way — and that is reliability. The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.
  • [About Pascal] That is the great strength of PASCAL, that there are so few unnecessary features and almost no need for subsets. That is why the language is strong enough to support specialized extensions--Concurrent PASCAL for real time work, PASCAL PLUS for discrete event simulation, UCSD PASCAL for microprocessor work stations.
  • [About Ada] For none of the evidence we have so far can inspire confidence that this language has avoided any of the problems that have afflicted other complex language projects of the past. [...] It is not too late! I believe that by careful pruning of the ADA language, it is still possible to select a very powerful subset that would be reliable and efficient in implementation and safe and economic in use.
Spoiler warning: Plot, ending, or solution details follow.
  • One fine morning, when the emperor felt hot and bored, he extricated himself carefully from under the mountain of clothes and is now living happily as a swineherd in another story. The tailor is canonized as the patron saint of all consultants, because in spite of the enormous fees he extracted, he was never able to convince his clients of his dawning realization that their clothes have no Emperor.


  • Premature optimization is the root of all evil.
    • Quote due to Donald Knuth, "Structured Programming with Goto Statements", Computing Surveys 6:4 (December 1974), pp. 261–301, §1. Knuth refers to it as "Hoare's Dictum" 15 years later in "The Errors of Tex", Software—Practice & Experience 19:7 (July 1989), pp. 607–685. However, the attribution to Hoare is doubtful.[1]

About C. A. R. Hoare

  • For his fundamental contributions to the definition and design of programming languages.

External links

Wikipedia has an article about:

Simple English

C. A. R. Hoare is a British computer scientist. He invented Quicksort.[1] He received the Turing Award in 1980 "for his fundamental contributions to the definition and design of programming languages".[2]


Wikiquote has a collection of quotations related to:
  2. Reilly, Edwin. Concise encyclopedia of computer science. John Wiley and Sons. ISBN 9780470090954. 

Got something to say? Make a comment.
Your name
Your email address