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.

Quotes

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.

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

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.

Attributed

Premature optimization is the root of all evil.

Quote due to Donald Knuth, "Structured Programming with
Goto Statements", Computing Surveys6: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 & Experience19: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

C. A. R. Hoare is a Britishcomputer 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]