A Tribute to Tony Hoare

Tony Hoare (aka C.A.R. Hoare, age 78) is one the pioneer in the computer science field and the creator of the QuickSort algorithm. Also, he is the man behind the Z specification language, CSP (Communicating Sequential Processes) concurrent programming model (like dining philosophers problem) and Hoare logic (correctness of software).

He is also the creator of the Elliott ALGOL compiler (and implementation of ALGOL 60).

He currently works as a principle researcher (after decades of academic career) at Microsoft Research, Cambridge, England [1].

Here is a couple of quotes from him:

1-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. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965 [2].

2-“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” [3].

3-“[About Algol 60] Here is a language so far ahead of its time, that it was not only an improvement on its predecessors, but also on nearly all its successors [4].

5-Science  vs. Engineering [5]

Science Engineering
long-term short-term
idealism compromise
certainty adequacy
perfection risk
generality specificity
separation amalgamation
unification diversity
originality best practise
formality intuition
correctness dependability

6-“concurrent programs wait faster”[6].



3-The 1980 ACM Turing Award Lecture

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>