computer scientist
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) to specify the interactions of concurrent process
es (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.
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|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 programMariners 1 and 2|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|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|Quicksort] so elegantly to the world.
[About Algol W|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|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 Pascal_programming_language|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_programming_language|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.