!!Partial List of publications !2010 *147 Tony Hoare, Natarajan Shankar: Unraveling a Card Trick. Essays in Memory of Amir Pnueli 2010: 195-201 *146 Shuvendu K. Lahiri, Kapil Vaswani, C. A. R. Hoare: Differential static analysis: opportunities, applications, and challenges. FoSER 2010: 201-204 *145 Tony Hoare: Testing and Proving, Hand-in-Hand. TAIC PART 2010: 5-6 *144 Tony Hoare: Fine-grain concurrency. Concurrency and Computation: Practice and Experience 22(8): 2010: 912-934 *143 Jifeng He, Tony Hoare: CSP is a retract of CCS. Theor. Comput. Sci. 411(11-13): 1311-1337 (2010) !2009 *142 C. A. R. Hoare, Bernhard Möller, Georg Struth, Ian Wehrman: Concurrent Kleene Algebra. CONCUR 2009: 399-414 *141 C. A. R. Hoare, Bernhard Möller, Georg Struth, Ian Wehrman: Foundations of Concurrent Kleene Algebra. RelMiCS 2009: 166-186 *140 C. A. R. Hoare, Jayadev Misra: Preface to special issue on software verification. ACM Comput. Surv. 41(4): (2009) *139 C. A. R. Hoare, Jayadev Misra, Gary T. Leavens, Natarajan Shankar: The verified software initiative: A manifesto. ACM Comput. Surv. 41(4): (2009) *138 C. A. R. Hoare: Viewpoint - Retrospective: an axiomatic basis for computer programming. Commun. ACM 52(10): 30-32 (2009) *137 Ian Wehrman, C. A. R. Hoare, Peter W. O'Hearn: Graphical models of separation logic. Inf. Process. Lett. 109(17): 1001-1004 (2009) !2008 *136 Tony Hoare: Keynote: A Vision for the Science of Computing. BCS Int. Acad. Conf. 2008: 1-29 *135 Tony Hoare: Verified Software: Theories, Tools, Experiments. ICECCS 2008: 3 *134 Tony Hoare: Fine-Grain Concurrency. LASER Summer School 2008: 1-20 *133 Tony Hoare: Compensable Transactions. LASER Summer School 2008: 21-40 *132 Tony Hoare: Verification of Fine-grain Concurrent Programs. Electr. Notes Theor. Comput. Sci. 209: 165-171 (2008) *131 Tony Hoare, Peter W. O'Hearn: Separation Logic Semantics for Communicating Processes. Electr. Notes Theor. Comput. Sci. 212: 3-25 (2008) !2007 *130 Tony Hoare: Fine-grain Concurrency. CPA 2007: 1-19 *129 Tony Hoare: Science and Engineering: A Collusion of Cultures. DSN 2007: 2-9 *128 Tony Hoare: The Ideal of Program Correctness: Third Computer Journal Lecture. Comput. J. 50(3): 254-260 (2007) !2006 *127 Tony Hoare: The ideal of verified software. ACL2 2006: 61-62 *126 Tony Hoare: The Ideal of Verified Software. CAV 2006: 5-16 *125 Viktor Vafeiadis, Maurice Herlihy, Tony Hoare, Marc Shapiro: Proving correctness of highly-concurrent linearisable objects. PPOPP 2006: 129-136 *124 Jifeng He, C. A. R. Hoare: CSP Is a Retract of CCS. UTP 2006: 38-62 *123 Tony Hoare: Why ever CSP? Electr. Notes Theor. Comput. Sci. 162: 209-215 (2006) *122 Juan Bicarregui, C. A. R. Hoare, J. C. P. Woodcock: The verified software repository: a step towards the verifying compiler. Formal Asp. Comput. 18(2): 143-151 (2006) *121 Bernhard Beckert, Tony Hoare, Reiner Hähnle, Douglas R. Smith, Cordell Green, Silvio Ranise, Cesare Tinelli, Thomas Ball, Sriram K. Rajamani: Intelligent Systems and Formal Methods in Software Engineering. IEEE Intelligent Systems 21(6): 71-81 (2006) !2005 *120 Roberto Bruni, Michael J. Butler, Carla Ferreira, C. A. R. Hoare, Hernán C. Melgratti, Ugo Montanari: Comparing Two Approaches to Compensable Flow Composition. CONCUR 2005: 383-397 *119 Jifeng He, C. A. R. Hoare: Linking Theories of Concurrency. ICTAC 2005: 303-317 *118 C. A. R. Hoare: The Verifying Compiler, a Grand Challenge for Computing Research. VMCAI 2005: 78-78 *117 Tony Hoare, Jayadev Misra: Verified Software: Theories, Tools, Experiments Vision of a Grand Challenge Project. VSTTE 2005: 1-18 *116 Tony Hoare, Robin Milner: Grand Challenges for Computing Research. Comput. J. 48(1): 49-52 (2005) 2004 *115 Michael J. Butler, C. A. R. Hoare, Carla Ferreira: A Trace Semantics for Long-Running Transactions. 25 Years Communicating Sequential Processes 2004: 133-150 *114 C. A. R. Hoare: Process Algebra: A Unifying Approach. 25 Years Communicating Sequential Processes 2004: 36-60 *113 Cédric Fournet, C. A. R. Hoare, Sriram K. Rajamani, Jakob Rehof: Stuck-Free Conformance. CAV 2004: 242-254 *112 C. A. R. Hoare: Towards the Verifying Compiler. Essays in Memory of Ole-Johan Dahl 2004: 124-136 2003 *111 C. A. R. Hoare: The Verifying Compiler: A Grand Challenge for Computing Research. CC 2003: 262-272 *110 C. A. R. Hoare: The Verifying Compiler: A Grand Challenge for Computing Research. Ershov Memorial Conference 2003: 1-12 *109 C. A. R. Hoare: The Verifying Compiler: A Grand Challenge for Computing Research. Euro-Par 2003: 1 *108 C. A. R. Hoare: The Verifying Compiler: A Grand Challange for Computing Research. JMLC 2003: 25-35 *107 C. A. R. Hoare: Assertions: A Personal Perspective. IEEE Annals of the History of Computing 25(2): 14-25 (2003) *106 C. A. R. Hoare: The verifying compiler: A grand challenge for computing research. J. ACM 50(1): 63-69 (2003) !2002 *105 C. A. R. Hoare: Towards the Verifying Compiler. 10th Anniversary Colloquium of UNU/IIST 2002: 151-160 *104 C. A. R. Hoare: Assertions in Modern Software Engineering Practice. COMPSAC 2002: 459-462 *103 C. A. R. Hoare: Assertions in Programming: From Scientific Theory to Engineering Practice. Soft-Ware 2002: 350-351 *102 Robert S. Boyer, W. H. J. Feijen, David Gries, C. A. R. Hoare, Jayadev Misra, J. Moore, H. Richards: In memoriam: Edsger W. Dijkstra 1930-2002. Commun. ACM 45(10): 21-22 (2002) !2001 *101 C. A. R. Hoare: Growing Use of Assertions. TOOLS (38) 2001: 3 *100 C. A. R. Hoare: Legacy. Inf. Process. Lett. 77(2-4): 123-129 (2001) !2000 *99 Jifeng He, C. A. R. Hoare: Unifying theories of healthiness condition. APSEC 2000: 70- *98 C. A. R. Hoare: Legacy Code. ICFEM 2000: 75 *97 C. A. R. Hoare: Assertions. IFM 2000: 1-2 *96 C. A. R. Hoare, Jifeng He, Augusto Sampaio: Algebraic derivation of an operational semantics. Proof, Language, and Interaction 2000: 77-98 *95 C. A. R. Hoare: A Hard Act to Follow. Higher-Order and Symbolic Computation 13(1/2): 71-72 (2000) 1999 *94 C. A. R. Hoare: Theories of Programming: Top-Down and Bottom-Up and Meeting in the Middle. Correct System Design 1999: 3-28 *93 C. A. R. Hoare, Jifeng He: A Trace Model for Pointers and Objects. ECOOP 1999: 1-17 *92 Silvija Seres, J. Michael Spivey, C. A. R. Hoare: Algebra of Logic Programming. ICLP 1999: 184-199 *91 Simon L. Peyton Jones, Alastair Reid, Fergus Henderson, C. A. R. Hoare, Simon Marlow: A Semantics for Imprecise Exceptions. PLDI 1999: 25-36 *90 C. A. R. Hoare: Theories of Programming: Top-Down and Bottom-Up and Meeting in the Middle. World Congress on Formal Methods 1999: 1-27 *89 Jifeng He, C. A. R. Hoare: Linking Theories in Probabilistic Programming. Inf. Sci. 119(3-4): 205-218 (1999) 1998 *88 Jifeng He, C. A. R. Hoare: Unifying theories of programming. RelMiCS 1998: 97-99 1997 *87 C. A. R. Hoare, Jifeng He: Unifying Theories for Parallel Programming. Euro-Par 1997: 15-30 !1996 *86 C. A. R. Hoare: How Did Software Get So Reliable Without Proof? FME 1996: 1-17 *85 C. A. R. Hoare: The Role of Formal Techniques: Past, Current and Future or How Did Software Get so Reliable without Proof? (Extended Abstract). ICSE 1996: 233-234 *84 C. A. R. Hoare: Mathematical models for computing science. NATO ASI DPD 1996: 115-164 *83 C. A. R. Hoare: Unifying Theories : A Personal Statement. ACM Comput. Surv. 28(4es): 46 (1996) *82 C. A. R. Hoare: The logic of engineering design. Microprocessing and Microprogramming 41(8-9): 525-539 (1996) !1995 *81 C. A. R. Hoare: Unification of Theories: A Challenge for Computing Science. COMPASS/ADT 1995: 49-57 *80 Burghard von Karger, C. A. R. Hoare: Sequential Calculus. Inf. Process. Lett. 53(3): 123-130 (1995) !1994 *79 Jifeng He, C. A. R. Hoare, Martin Fränzle, Markus Müller-Olm, Ernst-Rüdiger Olderog, Michael Schenke, Michael R. Hansen, Anders P. Ravn, Hans Rischel: Provably Correct Systems. FTRTFT 1994: 288-335 *78 C. A. R. Hoare, Innes Page: Hardware and Software: The Closing Gap. Programming Languages and System Architectures 1994: 49-68 *77 C. A. R. Hoare: Editorial. J. Log. Comput. 4(3): 215-216 (1994) !1993 *76 C. A. R. Hoare: Algebra and Models. SIGSOFT FSE 1993: 1-8 *75 C. A. R. Hoare, Jifeng He, Augusto Sampaio: Normal Form Approach to Compiler Design. Acta Inf. 30(8): 701-739 (1993) *74 Jifeng He, C. A. R. Hoare: From Algebra to Operational Semantics. Inf. Process. Lett. 45(2): 75-80 (1993) !1992 *73 C. A. R. Hoare: Programs are Predicates. FGCS 1992: 211-218 *72 Zhou Chaochen, C. A. R. Hoare: A Model for Synchronous Switching Circuits and its Theory of Correctness. Formal Methods in System Design 1(1): 7-28 (1992) !1991 *71 C. A. R. Hoare: The transputer and occam: A personal story. Concurrency - Practice and Experience 3(4): 249-264 (1991) *70 Zhou Chaochen, C. A. R. Hoare, Anders P. Ravn: A Calculus of Durations. Inf. Process. Lett. 40(5): 269-276 (1991) *69 C. E. Martin, C. A. R. Hoare, Jifeng He: Pre-Adjunctions in Order Enriched Categories. Mathematical Structures in Computer Science 1(2): 141-158 (1991) *68 C. A. R. Hoare: A Theory for the Derivation of Combinational C-MOS Circuit Designs. Theor. Comput. Sci. 90(1): 235-251 (1991) !1990 *67 Dines Bjørner, C. A. R. Hoare, Hans Langmaack: VDM '90, VDM and Z - Formal Methods in Software Development, Third International Symposium of VDM Europe, Kiel, FRG, April 17-21, 1990, Proceedings Springer 1990 *66 C. A. R. Hoare: Let's Make Models (Abstract). CONCUR 1990: 32 *65 C. A. R. Hoare: A Theory of Conjunction and Concurrency. PARBASE / Architectures 1990: 18-30 *64 C. A. R. Hoare: Fixed Points of Increasing Functions. Inf. Process. Lett. 34(3): 111-112 (1990) !1989 *63 Jifeng He, C. A. R. Hoare: Categorical Semantics for Programming Languages. Mathematical Foundations of Programming Semantics 1989: 402-417 *62 C. A. R. Hoare: The Varieties of Programming Language. TAPSOFT, Vol.1 1989: 1-18 1988 *61 C. A. R. Hoare, Michael J. C. Gordon: Partial Correctness of C-MOS Switching Circuits: An Exercise in Applied Logic LICS 1988: 28-36 *60 A. W. Roscoe, C. A. R. Hoare: The Laws of Occam Programming. Theor. Comput. Sci. 60: 177-229 (1988) !1987 *59 C. A. R. Hoare, Ian J. Hayes, Jifeng He, Carroll Morgan, A. W. Roscoe, Jeff W. Sanders, Ib Holm Sørensen, J. Michael Spivey, Bernard Sufrin: Laws of Programming. Commun. ACM 30(8): 672-686 (1987) *58 Jifeng He, C. A. R. Hoare: Algebraic Specification and Proof of a Distributed Recovery Algorithm. Distributed Computing 2(1): 1-12 (1987) *57 C. A. R. Hoare: An Overview of Some Formal Methods for Program Design. IEEE Computer 20(9): 85-91 (1987) *56 C. A. R. Hoare, Jifeng He: The Weakest Prespecification. Inf. Process. Lett. 24(2): 127-132 (1987) *55 C. A. R. Hoare, Jifeng He, Jeff W. Sanders: Prespecification in Data Refinement. Inf. Process. Lett. 25(2): 71-76 (1987) !1986 *54 Jifeng He, C. A. R. Hoare, Jeff W. Sanders: Data Refinement Refined. ESOP 1986: 187-196 *53 Ernst-Rüdiger Olderog, C. A. R. Hoare: Specification-Oriented Semantics for Communicating Processes. Acta Inf. 23(1): 9-66 (1986) !1985 *52 C. A. R. Hoare: Communicating Sequential Processes Prentice-Hall 1985 *51 K. T. Sridhar, C. A. R. Hoare: JSD Expressed in CSP. Data Types and Persistence (Appin), Informal Proceedings 1985: 49-82 *50 C. A. R. Hoare: The Mathematics of Programming. FSTTCS 1985: 1-18 !1984 *49 C. A. R. Hoare, A. W. Roscoe: Programs as Executable Predicates. FGCS 1984: 220-228 *48 C. A. R. Hoare: Programming: Sorcery or Science? IEEE Software 1(2): 5-16 (1984) *47 Stephen D. Brookes, C. A. R. Hoare, A. W. Roscoe: A Theory of Communicating Sequential Processes. J. ACM 31(3): 560-599 (1984) !1983 *46 Ernst-Rüdiger Olderog, C. A. R. Hoare: Specification-Oriented Semantics for Communicating Processes. ICALP 1983: 561-572 *45 C. A. R. Hoare: Workshop on Analysis of Concurrent Systems Attempt at problem 3: The Firing Squad. The Analysis of Concurrent Systems 1983: 115-116 *44 C. A. R. Hoare: Workshop on Analysis of Concurrent Systems Attempt at Problem 10: The Matrix Switch. The Analysis of Concurrent Systems 1983: 132-133 *43 Carroll Morgan, C. A. R. Hoare: Specification of a simplified Network Service in CSP. The Analysis of Concurrent Systems 1983: 345-353 *42 C. A. R. Hoare: Communicating Sequential Processes (Reprint). Commun. ACM 26(1): 100-106 (1983) *41 C. A. R. Hoare: An Axiomatic Basis for Computer Programming (Reprint). Commun. ACM 26(1): 53-56 (1983) *40 Eric C. R. Hehner, C. A. R. Hoare: A More Complete Model of Communicating Processes. Theor. Comput. Sci. 26: 105-120 (1983) !1981 *39 Z. C. Chen, C. A. R. Hoare: Partial Correctness of Communicating Sequential Processes. ICDCS 1981: 1-12 *38 Jim Welsh, W. J. Sneeringer, C. A. R. Hoare: Ambiguities and Insecurities in Pascal. Pascal - The Language and its Implementation 1981: 5-19 *37 C. A. R. Hoare: The Emperor's Old Clothes. Commun. ACM 24(2): 75-83 (1981) *36 C. A. R. Hoare: A Calculus of Total Correctness for Communicating Processes. Sci. Comput. Program. 1(1-2): 49-72 (1981) !1980 *35 Richard Kennaway, C. A. R. Hoare: A Theory of Nondeterminism. ICALP 1980: 338-350 *34 C. A. R. Hoare: A Model for Communicating Sequential Processes. On the Construction of Programs 1980: 229-254 !1979 *33 Nissim Francez, C. A. R. Hoare, Daniel J. Lehmann, Willem P. de Roever: Semantics of Nondeterminism, Concurrency, and Communication. J. Comput. Syst. Sci. 19(3): 290-308 (1979) 1978 *32 C. A. R. Hoare: Software Engineering: A Keynote Address. ICSE 1978: 1-4 *31 Nissim Francez, C. A. R. Hoare, Willem P. de Roever: Semantics of Nondeterminism, Concurrency and Communication (Extended Abstract). MFCS 1978: 191-200 *30 C. A. R. Hoare: Communicating Sequential Processes. Commun. ACM 21(8): 666-677 (1978) *29 C. A. R. Hoare: Some Properties of Predicate Transformers. J. ACM 25(3): 461-480 (1978) !1977 *28 A. M. Macnaghten, C. A. R. Hoare: Fast Fourier Transform Free From Tears. Comput. J. 20(1): 78-83 (1977) *27 Jim Welsh, W. J. Sneeringer, C. A. R. Hoare: Ambiguities and Insecurities in Pascal. Softw., Pract. Exper. 7(6): 685-696 (1977) 1976 *26 C. A. R. Hoare: Parallel Programming: An Axiomatic Approach. Comput. Lang. 1(2): 151-160 (1976) *25 W. H. Kaubisch, Ronald H. Perrott, C. A. R. Hoare: Quasiparallel Programming. Softw., Pract. Exper. 6(3): 341-356 (1976) !1975 *24 C. A. R. Hoare: Parallel programming: an axiomatic approach. Language Hierarchies and Interfaces 1975: 11-42 *23 C. A. R. Hoare: Proof of correctness of data representation. Language Hierarchies and Interfaces 1975: 183-193 *22 C. A. R. Hoare: The structure of an operating system. Language Hierarchies and Interfaces 1975: 242-265 *21 H. C. Johnston, C. A. R. Hoare: Matrix Reduction - An Efficient Method. Commun. ACM 18(3): 141-150 (1975) !1974 *20 C. A. R. Hoare, Peter E. Lauer: Consistent and Complementary Formal Theories of the Semantics of Programming Languages. Acta Inf. 3: 135-153 (1974) *19 C. A. R. Hoare: Monitors: An Operating System Structuring Concept. Commun. ACM 17(10): 549-557 (1974) *18 C. A. R. Hoare: Optimization of Store Size for Garbage Collection. Inf. Process. Lett. 2(6): 165-166 (1974) !1973 *17 C. A. R. Hoare, Niklaus Wirth: An Axiomatic Definition of the Programming Language PASCAL Acta Inf. 2: 335-355 (1973) *16 C. A. R. Hoare: A Structured Paging System. Comput. J. 16(3): 209-215 (1973) *15 C. A. R. Hoare: A General Conservation Law for Queueing Disciplines. Inf. Process. Lett. 2(3): 82-85 (1973) !1972 *14 C. A. R. Hoare: An axiomatic definition of the programming language PASCAL. International Sympoisum on Theoretical Programming 1972: 1-16 *13 C. A. R. Hoare, Donald C. S. Allison: Incomputability. ACM Comput. Surv. 4(3): 169-178 (1972) *12 Maurice Clint, C. A. R. Hoare: Program Proving: Jumps and Functions. Acta Inf. 1: 214-224 (1972) *11 C. A. R. Hoare: Proof of Correctness of Data Representations. Acta Inf. 1: 271-281 (1972) *10 C. A. R. Hoare: Proof of a structured program: 'the sieve of Eratosthenes'. Comput. J. 15(4): 321-325 (1972) !1971 *9 C. A. R. Hoare: Proof of a Program: FIND. Commun. ACM 14(1): 39-45 (1971) *8 M. Foley, C. A. R. Hoare: Proof of a Recursive Program: Quicksort. Comput. J. 14(4): 391-395 (1971) !1969 *7 C. A. R. Hoare: An Axiomatic Basis for Computer Programming. Commun. ACM 12(10): 576-580 (1969) !1968 *6 C. A. R. Hoare: Data structures in two-level store. IFIP Congress (1) 1968: 322-329 !1966 *5 Niklaus Wirth, C. A. R. Hoare: A contribution to the development of ALGOL. Commun. ACM 9(6): 413-432 (1966) !1962 *4 C. A. R. Hoare: Quicksort. Comput. J. 5(1): 10-15 (1962) !1961 *3 C. A. R. Hoare: Algorithm 63: partition. Commun. ACM 4(7): 321 (1961) *2 C. A. R. Hoare: Algorithm 64: Quicksort. Commun. ACM 4(7): 321 (1961) *1 C. A. R. Hoare: Algorithm 65: find. Commun. ACM 4(7): 321-322 (1961)