Abstract
Tony Hoareās many contributions to computing science are marked by insight that was grounded in practical programming. Many of his papers have had a profound impact on the evolution of our field; they have moreover provided a source of inspiration to several generations of researchers. We examine the development of his work through a review of the development of some of his most influential pieces of work such as Hoare logic, CSP and Unifying Theories.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
See thepeerage.com, for example.
- 2.
This is a a type of position given by Oxford Colleges to allow leading young academics to pursue their research.
- 3.
According to [27] when the compiler was run on the much slower 803 a typical half-page ALGOL program would take half an hour to compile and execute.
- 4.
The Turing Award is often referred to as the āNobel Prize for computingā. It is not clear that the Kyoto Prize committee would concede this ā but Tony Hoare has been awarded both.
- 5.
Probably because of his respect for this language, Hoare outlined its defects in [WSH77].
- 6.
In terminology that some find unfortunate ā but that has become ubiquitous ā he limited himself to āpartial correctnessā whereas Floyd treated ātotal correctnessā.
- 7.
The slightly enigmatic āPart Iā sub-title indicates Aptās strong interest in non-determinism which he covered in [3].
- 8.
The material had been presented in his Marktoberdorf lectures of 1970.
- 9.
The development of Abrialās ideas through to āBā [1] (and beyond) deserves separate discussion elsewhere.
- 10.
At the April 2009 event to celebrate Tonyās 75th birthday, Peter OāHearn linked this to his own research on Separation Logic.
- 11.
In the interview with Bowen cited in Sources.
- 12.
The powerdomain of downward-closed sets was not developed by Hoare, but named after him by Plotkin, because of its close relationship to Tonyās important work on partial correctness.
- 13.
P āQ is a non-deterministic process which is itself allowed to decide which of P and Q to run. Thus the second of these two processes can opt to offer just the event a, while the first has to offer nothing at all (STOP) or {a, b}.
- 14.
P ā” Q means that the environment has the choice of the initial events offered by P and Q. The counter-intuitive failure of this law comes about because in P ā” P the two copies of P might, because they resolve non-determinism differently, choose to offer different sets, which the operator combines into a single offer that P alone cannot make. This distinction is made in the acceptances or ready-sets congruence, but not using the upwards-closed version of acceptances.
- 15.
The intuition that divergence should be disastrous, derived from the first failures model, was very strong at that time. It is interesting that neither Brookes nor the second author then discovered the āstable failures modelā, in which divergence is not recorded, so (as in the traces model) the simply divergent process is top of the refinement order. The existence of that model was conjectured by Albert Meyer and Lalita Jagadeesan in the late 1980s, and developed by the second author following a conversation with them.
- 16.
- 17.
This work led to Oxford and Inmos receiving the Queen's Award for Technological Achievement in 1990
- 18.
- 19.
Esparza, Lavrov and Wimmel were Habilitation rather than doctoral students of Best.
- 20.
University of Newcastle upon Tyne.
- 21.
Open University.
- 22.
Technical University of Munich.
- 23.
Federal University of Minas Gerais, Brazil.
- 24.
Mike Reed has two doctorates, one from Auburn in 1970 under Ben Fitzpatrick on Set-theoretic Topology, and the one listed above. In addition to Reedās Computer Science students listed above, he has had a number in topology, but we have decided not to list those here.
- 25.
University College Cork.
- 26.
Queenās University, Kingston, Ontario.
- 27.
University of Washington.
- 28.
University of British Columbia.
- 29.
Hansen supervised a number of students in Health-related topics at Groningen before undertaking his doctoral studies with Jul.
- 30.
Alex Teruel set up the Parallel and Distributed Research Group at Simon Bolivar University, Venezuela. He supervised numerous MSc students there but advised them to do their PhDs abroad. He is happy to report that since a number of these people did this successfully and now have completed PhD students of their own, the fruits of Tonyās advisorship are thriving in Venezuela.
- 31.
City University of New York.
- 32.
Federal University of Pernambuco, Brazil.
Bibliography 1: Papers by Hoare
Hoare, C.A.R.: Critique of ALGOL 68. ALGOL Bullet. 29, 27ā29 (November 1968).
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576ā580, 583 (October 1969).
Foley, M., Hoare, C.A.R.: Proof of a recursive program: Quicksort. BCS Comput. J. 14(4), 391ā395 (November 1971).
Hoare, C.A.R.: Procedures and parameters: An axiomatic approach. In: Engeler, E. (ed.), Symposium on Semantics of Algorithmic Languages ā Lecture Notes in Mathematics 188, pp. 102ā116. Springer (1971).
Hoare, C.A.R.: Proof of a program: Find. Commun. ACM 14(1), 39ā45 (January 1971).
Dahl, O.-J., Dijkstra, E.W., Hoare, C.A.R. (eds.), Structured Programming. Academic (1972). London; San Diego: Academic Press, 1990, 1972.
Hoare, C.A.R.: A note on the FOR statement. BIT 12(3), 334ā341 (1972).
Hoare, C.A.R.: Notes on data structuring. In Dahl, O.-J., Dijkstra, E.W., Hoare, C.A.R. (eds.), Structured Programming, pp. 83ā174. Academic (1972). London; SanDiego: Academic Press, 1990, 1972.
Hoare, C.A.R.: Proof of a structured program: āThe Sieve of Eratosthenesā. BCS, Computer J. 15(4), 321ā325 (November 1972).
Hoare, C.A.R.: Proof of correctness of data representations. Acta Informatica 1(4), 271ā281 (1972).
Hoare, C.A.R.: Towards a theory of parallel programming. In: Operating System Techniques pp. 61ā71. Academic (1972).
Hoare, C.A.R.: Hints on programming language design. Technical Report STAN-CS-73-403, Stanford (October 1973).
Hoare, C.A.R.: A structured paging system. BCS Comput. J. 16(3), 209ā215 (August 1973).
Hoare, C.A.R., Wirth, N.: An axiomatic definition of the programming language PASCAL. Acta Informatica 2(4), 335ā355 (1973).
Hoare, C.A.R., Lauer, P.E.: Consistent and complementary formal theories of the semantics of programming languages. Acta Informatica 3(2), 135ā153 (1974).
Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM 17(10), 549ā557 (October 1974).
Hoare, C.A.R.: Parallel programming: An axiomatic approach. Comput. Languages 1(2), 151ā160 (June 1975).
Ashcroft, E.A., Clint, M., Hoare, C.A.R.: Remarks on āprogram proving: Jumps and functionsā. Acta Informatica 6(3), 317ā318 (1976).
Welsh, J., Sneeringer, W.J., Hoare, C.A.R.: Ambiguities and insecurities in PASCAL. Software Practice Experience 7(6), 685ā96 (NovemberāDecember 1977).
Francez, N., Hoare, C.A.R., Lehmann, D.J., de Roever, W.P.: Semantics of nondeterminism, concurrency and communication. J. Comput. System Sci. 19(3), 290ā308 (December 1979).
Hoare, C.A.R., Brookes, S.D., Roscoe, A.W.: A theory of communicating sequential processes. Technical Report PRG 16, Oxford University Computing Laboratory, Programming Research Group (1981).
Hoare, C.A.R.: A calculus of total correctness for communicating processes. The Sci. Computer Programming 1(1ā2), 49ā72 (October 1981).
Hoare, C.A.R.: The emperorās old clothes. Commun. ACM 24(2), 75ā83 (February 1981).
Hoare, C.A.R., Olderog, E.R.: Specification-oriented semantics for communicating processes. In: Automata Languages and Programming 10th Colloquium, vol. 154 of Lecture Notes in Computer Science, pp. 561ā572. Springer (1983).
Brookes, S.D., Hoare, C.A.R., Roscoe, A.W.: A theory of communicating sequential processes. J. ACM 31(3), 560ā599 (July 1984).
Hoare, C.A.R., Roscoe, A.W.: Programs as executable predicates. In: Proceedings of the International Conference on Fifth Generation Computer Systems, November 6ā9 1984, Tokyo, Japan, pp. 220ā228. ICOT (1984).
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall (1985). 256 pp., ISBN 0-13-153271-5.
Hoare, C.A.R.: Programs are predicates. In: Hoare, C.A.R. Shepherdson, J.C. (eds.), Mathematical Logic and Programming Languages, pp. 141ā154. Prentice-Hall (1985).
Hoare, C.A.R., He, J.: The weakest prespecification I. Fundamenta Informaticae 9(1), 51ā84 (March 1986).
He, J., Hoare, C.A.R., Sanders, J.W.: Data refinement refined. In Robinet, B., Wilhelm, R. (eds.), ESOP ā86: Proceedings of the European Symposium on Programming, vol. 213 of Lecture Notes in Computer Science. Springer (1986).
Roscoe, A.W., Hoare, C.A.R.: Laws of occam programming. Monograph PRG-53,Oxford University Computing Laboratory, Programming Research Group (February 1986).
Hoare, C.A.R., Hayes, I.J., He, J., Morgan, C.C., Roscoe, A.W., Sanders, J.W., SĆørensen, I.H., Spivey, J.M., Sufrin, B.A.: The laws of programming. Commun. of the ACM 30(8), 672ā687 (August 1987). see Corrigenda in Commun. ACM 30(9), 770. * * * * * * * * * * * * * * * * * * * * *The following is a list of all Hoareās papers since 1988, complementing the list published in [HJ89].
Hoare, C.A.R., Gordon, M.J.C.: Partial correctness of CMOS switching circuits: An exercise in applied logic. In: LICS, pp. 28ā36 (1988).
Roscoe, A.W., Hoare, C.A.R.: The laws of occam programming. Theoret. Comput. Sci. 60, 177ā229 (1988).
He, J., Hoare, C.A.R.: Categorical semantics for programming languages. In: Mathematical Foundations of Programming Semantics, pp. 402ā417 (1989).
Hoare, C.A.R., Jones, C.B.: Essays in Computing Science. Prentice Hall International, 1989.
Hoare, C.A.R.: The varieties of programming language. In: TAPSOFT, Vol.1, pages 1ā18, 1989.
BjĆørner, D., Hoare, C.A.R., Langmaack, H.: VDM ā90, VDM and Z ā Formal Methods in Software Development, Third International Symposium of VDM Europe, Kiel, FRG, April 17ā21, 1990, Proceedings, vol. 428 of Lecture Notes in Computer Science. Springer (1990).
Hoare, C.A.R.: Fixed points of increasing functions. Inf. Process. Lett. 34(3), 111ā112 (1990).
Hoare, C.A.R.: Letās make models (abstract). In: CONCUR, p. 32 (1990).
Hoare, C.A.R.: A theory of conjunction and concurrency. In: PARBASE / Architectures, pp. 18ā30 (1990).
Hoare, C.A.R.: A theory for the derivation of combinational CMOS circuit designs. Theoret. Comput. Sci. 90(1), 235ā251 (1991).
Hoare, C.A.R.: The transputer and occam: A personal story. Concurrency Practice Exp., 3(4), 249ā264 (1991).
Martin, C.E., Hoare, C.A.R., He, J.: Pre-adjunctions in order enriched categories. Mathematical Struct. Comput. Sci. 1(2), 141ā158 (1991).
Zhou, Ch., Hoare, C.A.R., Ravn, A.P.: A calculus of durations. Inf. Process. Lett. 40(5), 269ā276 (1991).
Hoare, C.A.R., Gordon, M.J.C. (eds.), Mechanised Reasoning and Hardware Design. Prentice Hall International Series in Computer Science. ISBN 0-13-572405-8 (1992).
Hoare, C.A.R.: Programs are predicates. In: FGCS, pp. 211ā218 (1992).
Zhou, C., Hoare, C.A.R.: A model for synchronous switching circuits and its theory of correctness. Formal Methods System Design 1(1), 7ā28 (1992).
He, J., Hoare, C.A.R.: From algebra to operational semantics. Inf. Process. Lett. 45(2), 75ā80 (1993).
Hoare, C.A.R., He, J., Sampaio, A.: Normal form approach to compiler design. Acta informatica 30(8), 701ā739 (1993).
Hoare, C.A.R.: Algebra and models. In: SIGSOFT FSE, pp. 1ā8 (1993).
He, J., Hoare, C.A.R., FrƤnzle, M., MĆ¼ller-Olm, M., Olderog, E.-R., Schenke, M., Hansen, M.R., Ravn, A.P., Rischel, H.: Provably correct systems. In: FTRTFT, pp. 288ā335 (1994).
Hoare, C.A.R.: Editorial. J. Log. Comput. 4(3), 215ā216 (1994).
Hoare, C.A.R., Page, I.: Hardware and software: The closing gap. In: Programming Languages and System Architectures, pp. 49ā68 (1994).
Hoare, C.A.R.: Unification of theories: A challenge for computing science. In: COMPASS/ADT, pp. 49ā57 (1995).
Burghard van Karger, B., Hoare, C.A.R.: Sequential calculus. Inf. Process. Lett 53(3), 123ā130 (1995).
Hoare, C.A.R.: How did software get so reliable without proof? In: FME, pp. 1ā17 (1996).
Hoare, C.A.R.: The logic of engineering design. Microprocess. Microprogramm. 41(8-9), 525ā539 (1996).
Hoare, C.A.R.: Mathematical models for computing science. In: NATO ASI DPD, pp. 115ā164 (1996).
Hoare, C.A.R.: The role of formal techniques: Past, current and future or how did software get so reliable without proof? (extended abstract). In: ICSE, pp. 233ā234, (1996).
Hoare, C.A.R.: Unifying theories: A personal statement. ACM Comput. Surv. 28(4es) 46 (1996).
Wirth, N., Hoare, C.A.R.: A contribution to the development of ALGOL. Communi. of the ACM 9(6) 413ā432 (June 1966).
Hoare, C.A.R., He, J.: Unifying theories for parallel programming. In: Euro-Par, pp. 15ā30 (1997).
Hoare, C.A.R., He, J.: Unifying Theories of Programming. Prentice Hall (1998).
He, J., Hoare, C.A.R.: Linking theories in probabilistic programming. Inf. Sci. 119, (3-4) 205ā218 (1999).
Hoare, C.A.R., He, J.: A trace model for pointers and objects. In: ECOOP, pp. 1ā17 (1999).
Hoare, C.A.R.: Theories of programming: Top-down and bottom-up and meeting in the middle. In: Correct System Design, pp. 3ā28 (1999).
Hoare, C.A.R.: Theories of programming: Top-down and bottom-up and meeting in the middle. In: World Congress on Formal Methods, pp. 1ā27 (1999).
PĆ©yton Jones, S.L., Reid, A., Henderson, F., Hoare, C.A.R., Marlow, S.: A semantics for imprecise exceptions. In: PLDI, pp. 25ā36 (1999).
Seres, S., Spivey, M.J., Hoare, C.A.R.: Algebra of logic programming. In: ICLP, pp. 184ā199 (1999).
He, J., Hoare, C.A.R.: Unifying theories of healthiness condition. In: APSEC, pp. 70ā, 2000.
Hoare, C.A.R., He, J., Sampaio, A.: Algebraic derivation of an operational semantics. In: Proof, Language, and Interaction, pp. 77ā98 (2000).
Hoare, C.A.R.: Assertions. In: IFM, pp. 1ā2 (2000).
Hoare, C.A.R.: A hard act to follow. Higher-Order and Symbolic Comput 13(1/2), 71ā72 (2000).
Hoare, C.A.R.: Legacy code. In: ICFEM, p. 75 (2000).
Hoare, C.A.R.: Growing use of assertions. In: TOOLS (38), p. 3 (2001).
Hoare, C.A.R.: Legacy. Inf. Process. Lett., 77(2-4):123ā129, 2001.
Boyer, R.S., Feijen, W.H.J., Gries, D., Hoare, C.A.R., Misra, J, Moore, J., Richards, H.: In: memoriam: Edsger w. Dijkstra 1930ā2002. Commun. ACM 45(10):21ā22 (2002).
Hoare, C.A.R.: Assertions in modern software engineering practice. In: COMPSAC, pp. 459ā462 (2002).
Hoare, C.A.R.: Assertions in programming: From scientific theory to engineering practice. In: Soft-Ware, pp. 350ā351 (2002).
Hoare, C.A.R.: Towards the verifying compiler. In: 10th Anniversary Colloquium of UNU/IIST, pp. 151ā160 (2002).
Hoare, C.A.R.: Assertions: A personal perspective. IEEE Ann. History Comput. 25(2), 14ā25 (2003).
Hoare, C.A.R.: The verifying compiler: A grand challenge for computing research. J. ACM 50(1), 63ā69 (2003). (This paper also appeared in a number of other publications).
Butler, M.J., Hoare, C.A.R., Ferreira, C.: A trace semantics for long-running transactions. In: 25 Years Communicating Sequential Processes, pp. 133ā150 (2004).
Fournet, C., Hoare, C.A.R., Rajamani, S.K., Rehof, J.: Stuck-free conformance. In: CAV, pp. 242ā254 (2004).
Hoare, C.A.R.: Process algebra: A unifying approach. In: 25 Years Communicating Sequential Processes, pp. 36ā60 (2004).
Hoare, C.A.R.: Towards the verifying compiler. In: Essays in Memory of Ole-Johan Dahl, pp. 124ā136 (2004).
Bruni, R., Butler, M.J., Ferreira, C., Hoare, C.A.R., Melgratti, H.C., Montanari, U.: Comparing two approaches to compensable flow composition. In CONCUR, pp. 383ā397 (2005).
He, J., Hoare, C.A.R.: Linking theories of concurrency. In: ICTAC, pp. 303ā317 (2005).
Hoare, C.A.R., Milner, R.: Grand challenges for computing research. Comput. J. 48(1), 49ā52 (2005).
Hoare, C.A.R., Misra, J.: Verified software: Theories, tools, experiments vision of a grand challenge project. In: VSTTE, pp. 1ā18 (2005).
Beckert, B., Hoare, C.A.R., HƤhnle, R., Smith, D.R., Green, C., Ranise, S., Tinelli, C., Ball, T., Rajamani, S.K.: Intelligent systems and formal methods in software engineering. IEEE Intelligent Systems 21(6), 71ā81 (2006).
Bicarregui, J., Hoare, C.A.R., Woodcock, J.C.P.: The verified software repository: A step towards the verifying compiler. Formal Asp. Comput. 18(2), 143ā151(2006).
He, J., Hoare, C.A.R.: CSP is a retract of CCS. In: UTP, pp. 38ā62 (2006). TCS 411 (issue 11--13), pp. 1311--1337, 2010doi:10.1016/j.tcs.2009.12.012
Hoare, C.A.R.: The ideal of verified software. In: CAV pp. 5ā16 (2006).
Hoare, C.A.R.: Why ever CSP? Electr. Notes Theoret. Comput. Sci. 162, 209ā215 (2006).
Vafeiadis, V., Herlihy, M., Hoare, C.A.R., Shapiro, M.: Proving correctness of highly.concurrent linearisable objects. In: PPOPP, pp. 129ā136 (2006).
Hoare, C.A.R.: Fine-grain concurrency. In: CPA, pp. 1ā19 (2007).
Hoare, C.A.R.: The ideal of program correctness: Third Computer Journal lecture. Comput. J. 50(3), 254ā260 (2007).
Hoare, C.A.R.: Science and engineering: A collusion of cultures. In: DSN, pp. 2ā9 (2007).
Hoare, C.A.R., OāHearn, P.W.: Separation logic semantics for communicating processes. Electr. Notes Theoret. Comput. Sci. 212:3ā25 (2008).
Hoare, C.A.R.: Keynote: A vision for the science of computing. In: BCS Int. Acad. Conf., pp. 1ā29 (2008).
Hoare, C.A.R.: Verification of fine-grain concurrent programs. Electr. Notes Theoret. Comput. Sci. 209, 165ā171 (2008).
Hoare, C.A.R.: Verified software: Theories, tools, experiments. In: ICECCS, p. 3 (2008).
Hoare, C.A.R., Misra, J.: Preface to special issue on software verification. ACM Comput. Surv. 41(4) (2009).
Hoare, C.A.R., Misra, J., Leavens, G.T., Shankar, N.: The verified software initiative: A manifesto. ACM Comput. Surv. 41(4), (2009).
Hoare, C.A.R., Mller, B., Struth, G., Wehrman, I.: Concurrent Kleene algebra. In: CONCUR, pp. 399ā414 (2009).
Hoare, C.A.R., Mƶller, B., Struth, G., Wehrman, I.: Foundations of concurrent Kleene algebra. In: RelMiCS, pp. 166ā186 (2009).
Hoare, C.A.R.: Viewpoint ā retrospective: an axiomatic basis for computer programming. Commun. ACM 52(10), 30ā32 (2009).
Wehrman, I., Hoare, C.A.R., OāHearn, P.W.: Graphical models of separation logic. Inf. Process. Lett. 109(17), 1001ā1004 (2009).
Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press (1996).
Apt, K.R.: Ten years of Hoareās logic: A survey ā part I. ACM Trans. Programm. Languages Systems 3, 431ā483 (1981).
Apt, K.R.: Ten years of Hoareās logic: A survey ā part II: Nondeterminism. Theoret. Comput. Sci., 28, 83ā109 (1984).
BekiÄ, H., BjĆørner, D., Henhapl, W., Jones, C.B., Lucas, P.: A formal definition of a PL/I subset. Technical Report 25.139, IBM Laboratory Vienna (December 1974).
BjĆørner, D., Jones, C.B. (eds.), The Vienna Development Method: The Meta-Language, vol. 61 of Lecture Notes in Computer Science. Springer (1978).
Brookes, S.D., Roscoe, A.W.: An improved failures model for communicating processes (1985).
Brookes, S.D.: A mathematical theory of communicating processes. PhD thesis, University of Oxford (1983).
Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall (1976).
De Nicola, R., Hennessy, M.C.B.: Testing equivalences for processes (1983).
Floyd, R.W.: Assigning meanings to programs. In: Proc. Symp. in Applied Mathematics, Vol.19: Mathematical Aspects of Computer Science, pp. 19ā32. American Mathematical Society (1967).
Goldsmith, M.H., Roscoe, A.W.: Transformation of occam programs. In: Design and Application of Parallel Digital Processors, 1988, pp. 180ā188 (1988).
Goldstine, H.H., von Neumann, J.: Planning and coding of problems for an electronic computing instrument, 1947. Part II, Vol. 1 of a Report prepared for U.S. Army Ord. Dept.; republished as pp. 80ā151 of [34].
Holt, R.C., Matthews, P.A., J.A, J.A., Cordy, J.R.: The Turing Programming Language: Design and Defintion. Prentice Hall International (1988).
Jones, C.B.: Software Development: A Rigorous Approach. Prentice Hall International (1980).
Jones, C.B.: The early search for tractable ways of reasoning about programs. IEEE, Annals of the History of Comput. 25(2), 26ā49 (2003).
Jones, C.B.: Splitting atoms safely. Theoret. Comput. Sci. 357, 109ā119 (2007).
King, J.C.: A Program Verifier. PhD thesis, Department of Computer Science, Carnegie-Mellon University (1969).
Lauer, P.E.: Consistent Formal Theories of the Semantics of Programming Languages. PhD thesis, Queenās University of Belfast, 1971. Printed as TR 25.121, IBM Lab. Vienna.
INMOS Ltd. Occam Programming Manual. Prentice Hall (1984).
Lucas, P., Walk, K.: On the Formal Description of PL/I, vol. 6, Part 3 of Annual Review in Automatic Programming. Pergamon Press (1969).
McCarthy, J.: A basis for a mathematical theory for computation. In: Braffort, P., Hirschberg, D. (eds.) Computer Programming and Formal Systems, pp. 33ā70. North-Holland (1963). (A slightly extended and corrected version of a talk given at the May 1961 Western Joint Computer Conference).
McCarthy, J.: A formal description of a subset of ALGOL. In: [33], pp. 1ā12 (1966).
Milner, R.: Processes: a mathematical model of computing agents. In: Logic Colloquium.73. North Holland (1973).
Milner. R.: Flowgraphs and flow algebras. J. ACM 26(4), 794ā818 (1979).
Milner, R.: A Calculus of Communicating Systems. Springer, New York, Inc. Secaucus, NJ, USA (1982).
Plotkin, G.D.: A powerdomain construction. SIAM. Comput. 5, 452 (1976).
Reilly, E.D.: Milestones in Computer Science and Information Technology. Greenwood Pub Group (2003).
Roscoe, A.W.: A mathematical theory of communicating processes. PhD thesis, University of Oxford (1982).
Roscoe, A.W.: Denotational Semantics for occam (1985).
Roscoe, A.W.: Occam in the specification and verification of microprocessors. Philosophical Transactions: Physical Sciences and Engineering, pp. 137ā151 (1992).
Roscoe, A.W.: The Theory and Practice of Concurrency. Prentice-Hall (1997).
Roscoe, A.W.: Understanding Concurrent Systems. Springer (2010).
Steel, T.B.: Formal Language Description Languages for Computer Programming. North-Holland (1966).
Taub, A.H. (ed.), John von Neumann: Collected Works, vol. V: Design of Computers, Theory of Automata and Numerical Analysis. Pergamon Press (1963).
Turing. A.M.: Checking a large routine. In: Report of a Conference on High Speed Automatic Calculating Machines, pp. 67ā69. University Mathematical Laboratory, Cambridge (June 1949).
van Wijngaarden, A.: Numerical analysis as an independent science. BIT 6:66ā81 (1966). (Text of 1964 talk).
Acknowledgements
The authors are grateful to Tony Hoare and Robin Milner for their recollections about the development of process algebra, to David May, Gordon Plotkin, Brian Randell, Willem-Paul de Roever and others for their memories and comments, and to many of Tonyās academic descendants for contributing to the family tree below.
We are extremely grateful to Lucy Li of Oxford University Computing Laboratory who undertook the monumental task of assembling the family tree as well as helping us to put together the extended bibliography.
The first authorās research is supported by the EPSRC Platform Grant on āTrustworthy Ambient Systemsā and EU FP7 āDEPLOY projectā. The second authorās is supported by the EPSRC Grant āCSP Model Checking: New Technologies and Techniquesā and by grants from the US ONR.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2010 Springer London
About this chapter
Cite this chapter
Jones, C.B., Roscoe, A.W. (2010). Insight, Inspiration and Collaboration. In: Roscoe, A., Jones, C., Wood, K. (eds) Reflections on the Work of C.A.R. Hoare. Springer, London. https://doi.org/10.1007/978-1-84882-912-1_1
Download citation
DOI: https://doi.org/10.1007/978-1-84882-912-1_1
Published:
Publisher Name: Springer, London
Print ISBN: 978-1-84882-911-4
Online ISBN: 978-1-84882-912-1
eBook Packages: Computer ScienceComputer Science (R0)