Tony Hoare in 2011
Charles Antony Richard Hoare
11 January 1934
|Other names||C. A. R. Hoare|
Sir Charles Antony Richard Hoare(born 11 January 1934) is a British computer scientist. He developed the sorting algorithm quicksort in 1959–1960. He also developed Hoare logic for verifying program correctness, and the formal language communicating sequential processes (CSP) to specify the interactions of concurrent processes (including the dining philosophers problem) and the inspiration for the programming language occam.
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.He then studied Classics and Philosophy ("Greats") at Merton College, Oxford. On graduating in 1956 he did 18 months National Service in the Royal Navy, where he learned Russian. He returned to the University of Oxford in 1958 to study for a postgraduate certificate in statistics, and it was here that he began computer programming, having been taught Autocode on the Ferranti Mercury by Leslie Fox. He then went to Moscow State University as a British Council exchange student, where he studied machine translation under Andrey Kolmogorov.
In 1960, Hoare left the Soviet Union and began working at Elliott Brothers Ltd,a small computer manufacturing firm located in London. There, he implemented the language ALGOL 60 and began developing major algorithms.
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,which specified, maintains, and supports the languages ALGOL 60 and ALGOL 68.
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 is now an Emeritus Professor there, and is also a principal researcher at Microsoft Research in Cambridge, England.
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, structuring computer operating systems using the monitor concept, and the axiomatic specification of programming languages.
Speaking at a software conference in 2009, Tony Hoare apologized for inventing the null reference:
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.
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:
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.
In 1962, Hoare married Jill Pym, a member of his research team.
Edsger Wybe Dijkstra was a Dutch computer scientist, programmer, software engineer, systems scientist, science essayist, and pioneer in computing science. A theoretical physicist by training, he worked as a programmer at the Mathematisch Centrum (Amsterdam) from 1952 to 1962. A university professor for much of his life, Dijkstra held the Schlumberger Centennial Chair in Computer Sciences at the University of Texas at Austin from 1984 until his retirement in 1999. He was a professor of mathematics at the Eindhoven University of Technology (1962–1984) and a research fellow at the Burroughs Corporation (1973–1984). In 1972, he became the first non-American, non-British, and continental European winner of the Turing Award.
Niklaus Emil Wirth is a Swiss computer scientist. He has 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.
Peter Naur was a Danish computer science pioneer and Turing award winner. He is best known 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.
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 in International Federation for Information Processing (IFIP) IFIP Working Group 2.1 on Algorithmic Languages and Calculi, which specified, maintains, and supports the languages ALGOL 60 and ALGOL 68. When the committee decided that the proposal was an insufficient advance over ALGOL 60, the proposal was published as A contribution to the development of ALGOL. After making small modifications to the language Wirth supervised a high quality implementation for the IBM System/360 at Stanford University that was widely distributed.
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 development of both functional programming and denotational semantics.
Adriaan "Aad" van Wijngaarden was a Dutch mathematician and computer scientist. Trained as an engineer, Van Wijngaarden would emphasize and promote the mathematical aspects of computing, first in numerical analysis, then in programming languages and finally in design principles of such languages.
David A. Turner is a British computer scientist. He is best known for designing and implementing three programming languages, including the first for functional programming based on lazy evaluation, combinator graph reduction, and polymorphic types: SASL (1972), Kent Recursive Calculator (KRC) (1981), and the commercially supported Miranda (1985). Miranda had a strong influence on the later Haskell.
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.
Barry James Mailloux obtained his Master of Science (M.Sc.) in numerical analysis in 1963. From 1966, he studied at Amsterdam's Mathematisch Centrum under Adriaan van Wijngaarden, earning a Doctor of Philosophy (Ph.D.) in 1968.
Richard Simpson Bird is a Supernumerary Fellow of Computation at Lincoln College, University of Oxford, in Oxford England, and former director of the Oxford University Computing Laboratory.
David Gries is an American computer scientist at Cornell University, United States mainly known for his books The Science of Programming (1981) and A Logical Approach to Discrete Math.
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 is a British computer scientist, most known for his involvement with the programming language ALGOL 68.
Klaus Samelson was a German mathematician, physicist, and computer pioneer in the area of programming language translation and push-pop stack algorithms for sequential formula translation on computers.
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.
Jeremy Gibbons is a computer scientist and professor of computing at the University of Oxford. He serves as Deputy Director of the Software Engineering Programme in the Department of Computer Science, Governing Body Fellow at Kellogg College and Pro-Proctor of the University of Oxford.
IFIP Working Group 2.1 on Algorithmic Languages and Calculi is a working group of the International Federation for Information Processing (IFIP).
Michel Sintzoff was a Belgian mathematician and computer scientist.
This article incorporates text available under the CC BY 4.0 license.
|Wikimedia Commons has media related to C. A. R. Hoare .|
|Wikiquote has quotations related to: Tony Hoare|