# Tony Hoare

#319

Most Influential Person Now

British computer scientist

## Tony Hoare's AcademicInfluence.com Rankings

Tony Hoarecomputer-science Degrees

Computer Science

#23

World Rank

#23

Historical Rank

Algorithms

#2

World Rank

#2

Historical Rank

Database

#75

World Rank

#77

Historical Rank

## Download Badge

Computer Science

## Tony Hoare's Degrees

- PhD Computer Science University of Oxford

## Similar Degrees You Can Earn

## Why Is Tony Hoare Influential?

(Suggest an Edit or Addition)According to Wikipedia, Sir Charles Antony Richard Hoare is a British computer scientist who has made foundational contributions to programming languages, algorithms, operating systems, formal verification, and concurrent computing. His work earned him the Turing Award, usually regarded as the highest distinction in computer science, in 1980.

## Tony Hoare's Published Works

### Published Works

- Communicating sequential processes (1978) (12917)
- Communicating sequential processes (1983) (2105)
- Monitors: an operating system structuring concept (1974) (1856)
- An axiomatic basis for computer programming (1969) (1824)
- An axiomatic basis for computer programming (1969) (1762)
- A Theory of Communicating Sequential Processes (1984) (1402)
- Structured programming (1972) (1122)
- A Calculus of Durations (1991) (886)
- Proof of correctness of data representations (1972) (571)
- Laws of programming (1987) (430)
- The verifying compiler: A grand challenge for computing research (2003) (400)
- Procedures and parameters: An axiomatic approach (1971) (338)
- Algorithm 65: find (1961) (326)
- The emperor's old clothes (1981) (320)
- Hints on programming language design. (1973) (285)
- Data Refinement Refined (1986) (278)
- The Laws of Occam Programming (1988) (238)
- Unifying theories of programming (1998) (238)
- Proof of a program (1971) (235)
- Towards a theory of parallel programming (2002) (227)
- A Model for Communicating Sequential Processes (1980) (222)
- A contribution to the development of ALGOL (1966) (210)
- An axiomatic definition of the programming language PASCAL (1972) (192)
- Proof of correctness of data representation (1975) (176)
- Algorithm 63: partition (1961) (174)
- A Trace Semantics for Long-Running Transactions (2004) (171)
- The Weakest Prespecification (1987) (159)
- Specification-oriented semantics for Communicating Processes (1983) (143)
- Notes on Communicating Sequential Systems (1986) (140)
- Prespecification in Data Refinement (1987) (131)
- Concurrent Kleene Algebra and its Foundations (2011) (128)
- Programs are predicates (1984) (127)
- A semantics for imprecise exceptions (1999) (119)
- How Did Software Get So Reliable Without Proof? (1996) (117)
- Proving correctness of highly-concurrent linearisable objects (2006) (116)
- Ambiguities and insecurities in pascal (1977) (114)
- Stuck-Free Conformance (2004) (109)
- Semantics of Nondeterminism, Concurrency, and Communication (1979) (102)
- Concurrent Kleene Algebra (2009) (97)
- Mathematical Logic and Programming Languages (1985) (91)
- Essays in computing science (1989) (86)
- A Calculus of Total Correctness for Communicating Processes (1981) (84)
- An Overview of Some Formal Methods for Program Design (1987) (84)
- The verified software initiative: A manifesto (2009) (83)
- Proof of Correctness of Data Representations (Reprint) (2002) (83)
- Grand Challenges for Computing Research (2005) (81)
- VDM '90 VDM and Z — Formal Methods in Software Development (1990) (77)
- Parallel Programming: An Axiomatic Approach (1975) (76)
- Some Properties of Predicate Transformers (1978) (75)
- A Theory of Synchrony and Asynchrony (1990) (70)
- A Trace Model for Pointers and Objects (1999) (69)
- Record Handling (1965) (68)
- Verified Software: Theories, Tools, Experiments Vision of a Grand Challenge Project (2005) (67)
- Assertions: A Personal Perspective (2003) (66)
- Comparing Two Approaches to Compensable Flow Composition (2005) (66)
- Proof of a Recursive Program: Quicksort (1971) (62)
- An Axiomatic Basis for Computer Programming (Reprint) (2002) (56)
- Differential static analysis: opportunities, applications, and challenges (2010) (55)
- Separation Logic Semantics for Communicating Processes (2008) (55)
- The verified software repository: a step towards the verifying compiler (2006) (55)
- Recursive data structures (1975) (50)
- Program proving: Jumps and functions (1972) (50)
- Data reliability (1975) (49)
- A note on the for statement (1972) (48)
- Normal form approach to compiler design (1993) (48)
- Consistent and complementary formal theories of the semantics of programming languages (1974) (45)
- Sequential Calculus (1995) (43)
- A ProCos Project Description: Esprit BRA 3104 (1989) (42)
- An Algebraic Approach to Verifiable Compiling Specification and Prototyping of the Procos Level 0 Programming Language (1990) (41)
- Algebra of Logic Programming (1999) (40)
- Developments in concurrency and communication (1991) (39)
- Intelligent Systems and Formal Methods in Software Engineering (2006) (39)
- An Operating System Structuring Concept (1974) (39)
- Developments in concurrent Kleene algebra (2014) (38)
- Communicating Sequential Processes (Reprint). (1983) (37)
- Programming: Sorcery or Science? (1984) (37)
- From Algebra to Operational Semantics (1993) (37)
- ViewpointRetrospective: an axiomatic basis for computer programming (2009) (36)
- Proof of a structured program: 'the sieve of Eratosthenes' (1972) (35)
- Partial Correctness of Communicating Sequential Processes (1981) (35)
- A Theory of Nondeterminism (1980) (35)
- Hardware and Software: The Closing Gap (1994) (34)
- The Varieties of Programming Language (1989) (34)
- Notes on an Approach to Category Theory for Computer Scientists (1989) (33)
- The Origin of Concurrent Programming: From Semaphores to Remote Procedure Calls (2013) (32)
- On Locality and the Exchange Law for Concurrent Processes (2011) (31)
- A Couple of Novelties in the Propositional Calculus (1985) (31)
- A More Complete Model of Communicating Processes (1983) (31)
- Algebra and models (1993) (29)
- In praise of algebra (2012) (29)
- Quicksort (1962) (29)
- Communicating Sequential Processes: The First 25 Years, Symposium on the Occasion of 25 Years of CSP, London, UK, July 7-8, 2004, Revised Invited Papers (2005) (28)
- Graphical models of separation logic (2009) (27)
- A ProCoS II Project Final Report: ESPRIT Basic Research project 7071 (1996) (27)
- A Structured Paging System (1973) (27)
- JSD Expressed in CSP (1985) (25)
- Mechanized reasoning and hardware design (1992) (25)
- Programs as Executable Predicates (1984) (22)
- Towards the Verifying Compiler (2002) (22)
- A Hard Act to Follow (2000) (21)
- Foundations of Concurrent Kleene Algebra (2009) (20)
- Pre-adjunctions in order enriched categories (1991) (20)
- Unifying Theories for Parallel Programming (1997) (20)
- The structure of an operating system (1975) (20)
- Why ever CSP? (2006) (19)
- Process Algebra: A Unifying Approach (2004) (19)
- The Mathematics of Programming (1985) (18)
- Chapter III: Hierarchical program structures (1972) (17)
- Notes on communicating sequential processes (1986) (17)
- The transputer and occam: A personal story (1991) (17)
- The laws of programming unify process calculi (2012) (17)
- A model for synchronous switching circuits and its theory of correctness (1992) (15)
- The quality of software (1972) (15)
- The role of formal techniques: past, current and future or how did software get so reliable without proof? (extended abstract) (1996) (15)
- CSP is a retract of CCS (2006) (14)
- The logic of engineering design (1996) (14)
- Mathematical models for computing science (1996) (14)
- The Ideal of Program Correctness: Third Computer Journal Lecture (2007) (13)
- Mathematics of Programming (1993) (13)
- Algebraic derivation of an operational semantics (2000) (13)
- Categorical Semantics for Programming Languages (1989) (13)
- Algebraic specification and proof of a distributed recovery algorithm (1987) (13)
- Theories of Programming: Top-Down and Bottom-Up and Meeting in the Middle (1999) (13)
- Fast Fourier Transform Free From Tears (1977) (12)
- Unification of Theories: A Challenge for Computing Science (1995) (12)
- Algebra Unifies Operational Calculi (2012) (12)
- Chapter II: Notes on data structuring (1972) (12)
- Optimization of Store Size for Garbage Collection (1974) (11)
- The Engineering of Software: A Startling Contradiction (1978) (11)
- Proc. of a discussion meeting of the Royal Society of London on Mathematical logic and programming languages (1985) (10)
- Proceedings of the Third International Symposium of VDM Europe on VDM and Z - Formal Methods in Software Development (1990) (10)
- Unifying Semantics for Concurrent Programming (2013) (10)
- Unifying Models of Data Flow (2011) (10)
- Unifying theories: a personal statement (1996) (10)
- Partial correctness of C-MOS switching circuits: an exercise in applied logic (1988) (9)
- Software engineering: A keynote address (1978) (9)
- Report on the Elliott ALGOL Translator (1962) (9)
- Preface to special issue on software verification (2009) (9)
- Assertions in modern software engineering practice (2002) (9)
- Fine-Grain Concurrency (2010) (9)
- The ideal of verified software (2006) (9)
- Algebraic specifications and proofs for communicating sequential processes (1987) (9)
- Quasiparallel programming (1976) (8)
- Refinement algebra proves correctness of compilation (1992) (8)
- On Algebra of Program Correctness and Incorrectness (2021) (8)
- Scientific applications of multiprocessors (1988) (8)
- Laws of Programming: The Algebraic Unification of Theories of Concurrency (2014) (7)
- Further Thoughts on Record Handling AB21.3.6 (1966) (7)
- Linking Theories in Probabilistic Programming (1999) (7)
- The Elliott ALGOL input/output system (1963) (7)
- Recovery Blocks (2011) (7)
- A theory for the derivation of C-mos circuit designs (1990) (7)
- Case expressions (1964) (7)
- Remarks on “program proving: Jumps and functions by M. Clint and C. A. R. Hoare” (1976) (6)
- Set manipulation (1968) (6)
- A Discrete Geometric Model of Concurrent Program Execution (2016) (6)
- Science and Engineering: A Collusion of Cultures (2007) (6)
- Exploring an Interface Model for CKA (2015) (6)
- A Theory for the Derivation of Combinational C-MOS Circuit Designs (1991) (6)
- Cleaning up the For statement (1965) (5)
- The variety of process algebra (DRAFT) (1991) (5)
- Semantics of Nondeterminism, Concurrency and Communication (Extended Abstract) (1978) (5)
- Verification of Fine-grain Concurrent Programs (2008) (5)
- Discrete Event Simulation Based on Communicating Sequential Processes (1982) (5)
- A theory of conjunction and concurrency (1990) (5)
- A model for communicating sequential process (2014) (5)
- Assertions in Programming: From Scientific Theory to Engineering Practice (2002) (5)
- The mathematics of programming: an inaugural lecture delivered before the Univ. of Oxford on Oct. 17, 1985 (1986) (5)
- Legacy code (2000) (5)
- Let's Make Models (Abstract) (1990) (5)
- Data structures in two-level store (1968) (5)
- Computer Science and Technology and their application (1976) (4)
- Generic Models of the Laws of Programming (2013) (4)
- Millennial perspectives in computer science : proceedings of the 1999 Oxford-Microsoft Symposium in honour of Professor Sir Antony Hoare (2000) (4)
- Fixed Points of Increasing Functions (1990) (4)
- Logic, Algebra, and Geometry at the Foundation of Computer Science (2019) (4)
- A Calculus of Space, Time, and Causality: Its Algebra, Geometry, Logic (2019) (3)
- Algebraic specification and proof of properties of a mail service (1987) (3)
- Computer programming as an engineering discipline (1973) (3)
- The 1980 ACM Turing Award Lecture (2021) (3)
- A Note on Indirect Addressing (1965) (3)
- File Processing (1967) (3)
- Computing Tomorrow: Algebra and Models (1996) (3)
- TRUST DISTRIBUTION DIAGRAMS: THEORY AND APPLICATIONS (2010) (3)
- Testing and Proving, Hand-in-Hand (2010) (2)
- Subscript optimisation and checking (1968) (2)
- Text processing (1968) (2)
- Matrix reduction—an efficient method (1975) (2)
- The mathematics of programming : an inaugural lecture delivered before the University of Oxford on 17 October 1985 (1986) (2)
- A theory of engineering design (1994) (2)
- Communicating Sequential Processes (2021) (2)
- Unifying theories of healthiness condition (2000) (2)
- The Slide Rule and How to Use It: Containing Full, Easy, and Simple Instructions to Perform All Business Calculations with Unexampled Rapidity and Accuracy (2008) (1)
- Formal methods in computer system design (1989) (1)
- Oral history interview with Charles Antony Richard Hoare (2002) (1)
- The Michael Jackson Design Technique : A study of the theory with applications (2009) (1)
- Verified Software: Theories, Tools, Experiments (2008) (1)
- Initialisation of variables (1968) (1)
- Structure of an Operating System (1982) (1)
- Operating systems techniques : proceedings of a Seminar held at Queen's University, Belfast, 1971 (1972) (1)
- Fine‐grain concurrency (2010) (1)
- Design and proof of a mail service 10 (1991) (1)
- Net Models for Concurrent Object Behaviour (2012) (1)
- Concurrent and Distributed Systems (1999) (1)
- Specification of a simplified Network Service in CSP (1983) (1)
- Review: Book review: ALGOL on the KDF9 (1964) (1)
- Keynote: A Vision for the Science of Computing (2008) (1)
- Growing Use of Assertions (2001) (1)
- A General Conservation Law for Queueing Disciplines (1973) (1)
- Letter to the author (1991) (0)
- Workshop on analysis of concurrent systems attempt at problem 8: Mixing synchronous and asynchronous input (1985) (0)
- Control flow and data flow: Concepts of distributed programming (1985) (0)
- Addenda and corrigenda (1974) (0)
- Algebra of concurrent design (2012) (0)
- 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. (2011) (0)
- Book reviews (1963) (0)
- An Axiomatic Basis for Computer Programming (1969) (2021) (0)
- Envoi at Marktoberdorf 1996 (1997) (0)
- Why software engineering at a communications meeting (1993) (0)
- Additional notes on a model for communicating sequential processes (1980) (0)
- Some reflections on software research (1990) (0)
- Proof of a Program : C (2000) (0)
- Breaking through to Christ's College Old Library (2018) (0)
- CSP at WSS (1983) (0)
- Workshop on Analysis of Concurrent Systems Attempt at Problem 10: The Matrix Switch (1983) (0)
- A Theory of As ; ' llshronous Processes (1989) (0)
- Geometric Theory for Program Testing (2022) (0)
- Laws of programming with concurrency (Invited Talk) (2013) (0)
- Preface to Special Issue on Software Verification (2021) (0)
- Critique of MR93 (1968) (0)
- Laws of concurrent programming (2014) (0)
- Forty Years with Edsger (2022) (0)
- Variations on a Theme: An Open Letter to C. A. R. Hoare (1982) (0)
- Safety in computer programs (1987) (0)
- Mensuration made easy; or, The decimal system for the million, with its application to the daily employments of the artizan and mechanic (0)
- Design by calculation and proof (1988) (0)
- Computer languages: A practical guide to the chief programming languages: Peter C. Sanderson, M.A. Newnes-Butterworths £2.15s (1970) (0)
- Letter from Charles A. R. Hoare to Joshua Lederberg (1981) (0)
- Envoi (2021) (0)
- Iron and steel : a work for the forge, foundry, factory & office (0)
- Abstract of c.a.d. literature: Computer programming as an engineering discipline (1974) (0)
- Ii. Notes on Data Structuring * (0)
- Toward the engineering of software (Panel Discussion): Problems of the 1980's (1978) (0)
- Edsger W. Dijkstra: a Commemoration (2021) (0)
- Workshop on Analysis of Concurrent Systems Attempt at problem 3: The Firing Squad (1983) (0)
- Esterel on Hardware: Discussion (1992) (0)

This paper list is powered by the following services:

## Other Resources About Tony Hoare

## What Schools Are Affiliated With Tony Hoare?

Tony Hoare is affiliated with the following schools: