Skip to main content

Reasoning About Shared-Variable Concurrency: Interactions Between Research Threads

  • Conference paper
  • First Online:
Formal Methods. FM 2019 International Workshops (FM 2019)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 12233))

Included in the following conference series:

  • 389 Accesses

Abstract

Most research on concurrency involves either communication-based approaches or accepts the shared-variable model. This paper addresses the latter approach and traces the research from Hoare’s axiomatic approach, through Sue Owicki’s work up to separation logics and rely/guarantee methods. Researchers in these last two approaches have been involved in a friendly rivalry and cooperation. The focus is on the insights that have arisen rather than technical details.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    With respect to the topics considered in this paper, the most productive period was probably the 1970s/80s but the whole history of WG2.3 deserves closer study.

  2. 2.

    More recently, so-called “weak memory” hardware with thread-local caches has added further difficulty—a paper that links with the material below is  [56].

  3. 3.

    This term is attributed to Ed Ashcroft whose contributions are covered in Sect. 2.1.

  4. 4.

    Hoare is one of the most highly cited computer scientists—although his CSP paper  [36] has even more citations, [33] has over 7,000 (GS) citations and has maintained an almost constant level for many years.

  5. 5.

    Mark Priestly’s invited talk at the 2019 History of Formal Methods workshop in Porto suggests a revision of the assessment of von Neumann’s contribution. In particular, Priestly’s archive research has precisely identified the letter to Goldstine in which von Neumann proposes assertion boxes.

  6. 6.

    Floyd acknowledges Gorn and Perlis as the originators of the ideas—Knuth suggested that this was overly modest.

  7. 7.

    This only became clear in the published version of  [35]: an early draft offered a post facto proof of the final program and these proofs were extremely hard to check—Hoare revised the paper to exhibit a stepwise development that was much more convincing (the title of the paper was not changed).

  8. 8.

    It is worth noting that Hoare argued at the 1964 Formal Language Description Languages conference at Baden-bei-Wien  [84] for a language definition style that could leave things undefined. Also  [33, §6] talks about language definition. It could be argued that what has become the cornerstone of 50 years of research into formal development of programs was found during an attempt to solve a different problem (i.e. that of writing a semantic description of a language).

  9. 9.

    A reader who is tempted to view this section in particular as too linear should remember that in the 1970s there were fewer active researchers than there are today. Furthermore, this paper is deliberately limited to shared-variable concurrency—subjects such as process algebras were progressing in parallel (see Sect. 5.2).

  10. 10.

    Florentin and this paper’s author had extensive contacts during the 1960s/70s when the latter worked for IBM.

  11. 11.

    Interestingly, Ashcroft supervised Matthew Hennessy’s PhD—Hennessy’s main research area is process algebras.

  12. 12.

    This paper’s author was present at the 1968 Mathematical Theory of Computation conference at IBM Yorktown Heights where John McCarthy strongly advocated Manna’s developments of Floyd’s approach.

  13. 13.

    Since this paper was published in an AI journal, the examples are mainly about search algorithms but McCarthy’s 91 function is also tackled.

  14. 14.

    As an aside, this bears a strong resemblance to the Control Trees that are part of the “grand state” in early Vienna operational descriptions of the semantics of programming languages (see  [59] for more on VDL and  [50] for a discussion of the problems with these descriptions).

  15. 15.

    This paper indicates that it was intended to be “Part I” but there is no trace of subsequent parts and a recent private contact with Owicki confirmed that none was written.

  16. 16.

    Gries obtained his PhD from what is now known as “Technische Universität München” under supervision of Bauer which is the explanation of a German adjective for the key proof obligation in the approach.

  17. 17.

    IFIP working groups have a process of inviting observers (sometimes several times) before considering people for membership.

  18. 18.

    This is sometimes referred to as “Reynolds’ rule” but John Reynolds disowned it in a conversation with this paper’s author.

  19. 19.

    Another venue where useful exchanges on these topics occurred was Schloss Dagstuhl: there were two events on Atomicity in April 2004  [15, 48] and spring 2006  [18].

  20. 20.

    VDM had consistently employed relations as post conditions—in fact, this goes back to before the name “VDM” was coined  [41]. Use of data abstraction was also a key arrow in VDM’s quiver  [40] with  [42] being an early book to emphasis its use. This becomes important with Rely/Guarantee ideas—see Sect. 2.3.

  21. 21.

    This quintuple version of rely-guarantee obviously follows Hoare triples (see Sect. 1.1). There are other ways of conveying the same information (see Sect. 5.2).

  22. 22.

    The simplification is that a stronger post condition can use information from the guarantee conditions.

  23. 23.

    Hongjin Liang’s doctoral research was supervised by Xinyu Feng whose own research on SAGL is mentioned below.

  24. 24.

    Peter O’Hearn emphasised the debt to  [39] during his talk in Cambridge honouring Tony Hoare in April 2009.

  25. 25.

    At the MFPS-XXI conference referred to below, this paper’s author suggested that the adjective “ownership” might describe the logic better than using “separation”. The link back to Reynolds’ research was too strong for this suggestion to be followed.

  26. 26.

    The current author suspects that the negative flavour of the adjective was no accident. Furthermore it is contradicted by the fact that there are examples where an early stage of design allows races on abstract variables as a stepping stone to designing a race free representation—see  [53].

References

  1. Aczel, P.H.G.: On an inference rule for parallel composition (1983). (Private communication) Manuscript, Manchester

    Google Scholar 

  2. Apt, K., Olderog, E.R.: Fifty years of Hoare’s logic. Formal Aspects Comput. 31(6), 751–807 (2019)

    MathSciNet  MATH  Google Scholar 

  3. Apt, K.R.: Ten years of Hoare’s logic: a survey–part I. ACM Trans. Program. Lang. Syst. 3(4), 431–483 (1981)

    MATH  Google Scholar 

  4. Apt, K.R.: Ten years of Hoare’s logic: a survey–part II: nondeterminism. Theoret. Comput. Sci. 28(1–2), 83–109 (1983)

    MATH  Google Scholar 

  5. Apt, K.R., Olderog, E.R.: Verification of Sequential and Concurrent Programs. Texts and Monographs in Computer Science. Springer, New York (1991). https://doi.org/10.1007/978-1-4757-4376-0

    Book  MATH  Google Scholar 

  6. Ashcroft, E.A., Manna, Z.: Formalization of properties of parallel programs. Technical report AIM-110, Stanford Artificial Intelligence Project, February 1970. Published as [7]

    Google Scholar 

  7. Ashcroft, E.A., Manna, Z.: Formalization of Properties of Parallel Programs. In: Meltzer, B., Michie, D. (eds.) Machine Intelligence, vol. 6, pp. 17–41. Edinburgh University Press, Edinburgh (1971)

    Google Scholar 

  8. Ashcroft, E.A.: Proving assertions about parallel programs. J. Comput. Syst. Sci. 10(1), 110–135 (1975)

    MathSciNet  MATH  Google Scholar 

  9. Baeten, J.C.M., Weijland, W.P.: Process Algebra. Cambridge University Press, Cambridge (1990)

    MATH  Google Scholar 

  10. Ben-Ari, M.: Principles of Concurrent and Distributed Programming. Prentice Hall International Series in Computer Science. Prentice Hall, Upper Saddle River (1990)

    MATH  Google Scholar 

  11. Best, E., Devillers, R., Koutny, M.: Petri Net Algebra. Monographs in Theoretical Computer Science An EATCS Series. Springer, Heidelberg (2001). https://doi.org/10.1007/978-3-662-04457-5

    Book  MATH  Google Scholar 

  12. Bornat, R., Amjad, H.: Inter-process buffers in separation logic with rely-guarantee. Formal Aspects Comput. 22(6), 735–772 (2010). https://doi.org/10.1007/s00165-009-0141-8

    Article  MATH  Google Scholar 

  13. Bornat, R., Amjad, H.: Explanation of two non-blocking shared-variable communication algorithms. Formal Aspects Comput. 25(6), 893–931 (2013)

    MathSciNet  MATH  Google Scholar 

  14. Brookes, S., O’Hearn, P.W.: Concurrent separation logic. ACM SIGLOG News 3(3), 47–65 (2016)

    Google Scholar 

  15. Burton, J.I., Jones, C.B.: Atomicity in system design and execution. J. Univ. Comput. Sci. 11(5), 634–635 (2005). http://www.jucs.org/jucs_11_5/atomicity_in_system_design/managing.html

  16. Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R.: Handbook of Model Checking, vol. 10. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-10575-8

    Book  MATH  Google Scholar 

  17. Clint, M., Hoare, C.A.R.: Program proving: jumps and functions. Acta Informatica 1(3), 214–224 (1972)

    MATH  Google Scholar 

  18. Coleman, J.W., Jones, C.B.: Atomicity: a unifying concept in computer science. J. Univ. Comput. Sci. 13(8), 1042–1043 (2007). https://eprints.ncl.ac.uk/file_store/production/161042/DCEAA1B2-B87B-4B2D-8227-31DAE51FC776.pdf

  19. Coleman, J.W.: Constructing a tractable reasoning framework upon a fine-grained structural operational semantics. Ph.D. thesis, Newcastle University School of Computer Science, January 2008

    Google Scholar 

  20. De Roever, W.P., et al.: Concurrency Verification: Introduction to Compositional and Noncompositional Methods. Cambridge University Press, Cambridge (2001)

    MATH  Google Scholar 

  21. Dershowitz, N., Waldinger, R.: Zohar Manna (1939–2018). Formal Aspects Comput. 31(6), 643–660 (2019)

    MathSciNet  MATH  Google Scholar 

  22. Dingel, J.: Systematic parallel programming. Ph.D. thesis, Carnegie Mellon University (2000). cMU-CS-99-172

    Google Scholar 

  23. Dinsdale-Young, T., Birkedal, L., Gardner, P., Parkinson, M., Yang, H.: Views: compositional reasoning for concurrent programs. In: Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 287–300. ACM (2013)

    Google Scholar 

  24. Distefano, D., Fähndrich, M., Logozzo, F., O’Hearn, P.W.: Scaling static analyses at Facebook. CACM 62(8), 62–70 (2019)

    Google Scholar 

  25. Dodds, M., Feng, X., Parkinson, M., Vafeiadis, V.: Deny-guarantee reasoning. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 363–377. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-00590-9_26

    Chapter  Google Scholar 

  26. Feng, X.: Local rely-guarantee reasoning. In: Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2009, New York, NY, USA, pp. 315–327. ACM (2009). https://doi.org/10.1145/1480881.1480922

  27. Feng, X., Ferreira, R., Shao, Z.: On the relationship between concurrent separation logic and assume-guarantee reasoning. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 173–188. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71316-6_13

    Chapter  MATH  Google Scholar 

  28. Fisher, M.: An Introduction to Practical Formal Methods Using Temporal Logic. Wiley, Chichester (2011)

    MATH  Google Scholar 

  29. Floyd, R.W.: Assigning meanings to programs. In: Proceedings of Symposium in Applied Mathematics. Mathematical Aspects of Computer Science, vol. 19, pp. 19–32. American Mathematical Society (1967)

    Google Scholar 

  30. Goldstine, H.H., von Neumann, J.: Planning and coding of problems for an electronic computing instrument. Technical report, Institute of Advanced Studies, Princeton (1947)

    Google Scholar 

  31. de Gouw, S., Rot, J.: Effectively eliminating auxiliaries. In: Ábrahám, E., Bonsangue, M., Johnsen, E.B. (eds.) Theory and Practice of Formal Methods. LNCS, vol. 9660, pp. 226–241. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-30734-3_16

    Chapter  Google Scholar 

  32. Hayes, I.J., Jones, C.B.: A guide to rely/guarantee thinking. In: Bowen, J.P., Liu, Z., Zhang, Z. (eds.) SETSS 2017. LNCS, vol. 11174, pp. 1–38. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-02928-9_1

    Chapter  Google Scholar 

  33. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)

    MATH  Google Scholar 

  34. Hoare, C.A.R.: Procedures and parameters: an axiomatic approach. In: Engeler, E. (ed.) Symposium on Semantics of Algorithmic Languages. LNM, vol. 188, pp. 102–116. Springer, Heidelberg (1971). https://doi.org/10.1007/BFb0059696

    Chapter  Google Scholar 

  35. Hoare, C.A.R.: Proof of a program: FIND. Commun. ACM 14(1), 39–45 (1971). https://doi.org/10.1145/362452.362489

  36. Hoare, C.A.R.: Communicating sequential processes. Commun. ACM 21, 666–677 (1978)

    MATH  Google Scholar 

  37. Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall, Upper Saddle River (1985)

    MATH  Google Scholar 

  38. 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). https://doi.org/10.1007/BF00264034

    Article  MathSciNet  MATH  Google Scholar 

  39. Hoare, C.A.R.: Towards a theory of parallel programming. In: Hansen, P.B. (ed.) The Origin of Concurrent Programming, pp. 231–244. Springer, New York (1972). https://doi.org/10.1007/978-1-4757-3472-0_6

    Chapter  Google Scholar 

  40. Jones, C.B.: Formal development of correct algorithms: an example based on Earley’s recogniser. SIGPLAN Notices 7(1), 150–169 (1972)

    Google Scholar 

  41. Jones, C.B.: Operations and formal development. Technical report TN 9004, IBM Laboratory, Hursley, September 1972

    Google Scholar 

  42. Jones, C.B.: Software Development: A Rigorous Approach. Prentice Hall International, Englewood Cliffs (1980). http://portal.acm.org/citation.cfm?id=539771

  43. Jones, C.B.: Development methods for computer programs including a notion of interference. Ph.D. thesis, Oxford University, June 1981. Printed as: Programming Research Group, Technical Monograph 25

    Google Scholar 

  44. Jones, C.B.: Specification and design of (parallel) programs. In: Proceedings of IFIP 1983, North-Holland, pp. 321–332 (1983)

    Google Scholar 

  45. Jones, C.B.: Tentative steps toward a development method for interfering programs. Trans. Program. Lang. Syst. 5(4), 596–619 (1983). https://doi.org/10.1145/69575.69577. https://doi.acm.org/10.1145/69575.69577

  46. Jones, C.B.: Accommodating interference in the formal design of concurrent object-based programs. Formal Methods Syst. Des. 8(2), 105–122 (1996). https://doi.org/10.1007/BF00122417

    Article  Google Scholar 

  47. Jones, C.B.: Splitting atoms safely. Theoret. Comput. Sci. 375(1–3), 109–119 (2007). https://doi.org/10.1016/j.tcs.2006.12.029

    Article  MathSciNet  MATH  Google Scholar 

  48. Jones, C.B., Lomet, D., Romanovsky, A., Weikum, G.: The atomic manifesto. J. Univ. Comput. Sci. 11(5), 636–650 (2005). https://doi.org/10.3217/jucs-011-05-0636. http://www.jucs.org/jucs_11_5/the_atomic_manifesto

  49. Jones, C.B.: The early search for tractable ways of reasoning about programs. IEEE Ann. Hist. Comput. 25(2), 26–49 (2003). https://doi.org/10.1109/MAHC.2003.1203057. https://doi.ieeecomputer.society.org/10.1109/MAHC.2003.1203057

  50. Jones, C.B., Astarte, T.K.: An Exegesis of four formal descriptions of ALGOL 60. Technical report CS-TR-1498, Newcastle University School of Computer Science, September 2016

    Google Scholar 

  51. Jones, C.B., Hayes, I.J.: Possible values: exploring a concept for concurrency. J. Log. Algebr. Methods Program. (2016). https://doi.org/10.1016/j.jlamp.2016.01.002

    Article  MathSciNet  MATH  Google Scholar 

  52. Jones, C.B., Pierce, K.G.: Splitting atoms with rely/guarantee conditions coupled with data reification. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 360–377. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-87603-8_47. http://www.springerlink.com/content/d63746175654u503/fulltext.pdf

  53. Jones, C.B., Pierce, K.G.: Elucidating concurrent algorithms via layers of abstraction and reification. Formal Aspects Comput. 23(3), 289–306 (2011). https://doi.org/10.1007/s00165-010-0156-1. http://www.springerlink.com/content/e52509k41r31g880/

  54. Jones, C.B., Yatapanage, N.: Reasoning about separation using abstraction and reification. In: Calinescu, R., Rumpe, B. (eds.) SEFM 2015. LNCS, vol. 9276, pp. 3–19. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-22969-0_1

    Chapter  MATH  Google Scholar 

  55. Jones, C.B., Yatapanage, N.: Investigating the limits of rely/guarantee relations based on a concurrent garbage collector example. Formal Aspects Comput. 31(3), 353–374 (2019). https://doi.org/10.1007/s00165-019-00482-3. Online April 2018

  56. Lahav, O., Vafeiadis, V.: Owicki-Gries reasoning for weak memory models. In: Halldórsson, M.M., Iwama, K., Kobayashi, N., Speckmann, B. (eds.) ICALP 2015. LNCS, vol. 9135, pp. 311–323. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-47666-6_25

    Chapter  Google Scholar 

  57. Lamport, L.: Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley Longman Publishing Co., Inc., Boston (2002)

    Google Scholar 

  58. Liang, H.: Refinement verification of concurrent programs and its applications. Ph.D. thesis, USTC, China (2014)

    Google Scholar 

  59. Lucas, P., Walk, K.: On the formal description of PL/I. Ann. Rev. Autom. Program. 6, 105–182 (1969)

    MATH  Google Scholar 

  60. Magee, J., Kramer, J.: State Models and Java Programs. Wiley, Hoboken (1999)

    MATH  Google Scholar 

  61. Manna, Z., Pnueli, A.: Temporal Logic of Reactive Systems. Springer, New York (1991). https://doi.org/10.1007/978-1-4612-0931-7

    Book  MATH  Google Scholar 

  62. Manna, Z., Pnueli, A.: Temporal Verification of Reactive Systems. Springer, New York (1995). https://doi.org/10.1007/978-1-4612-4222-2

    Book  MATH  Google Scholar 

  63. Manna, Z.: The correctness of nondeterministic programs. Artif. Intell. 1(1–2), 1–26 (1970)

    MathSciNet  MATH  Google Scholar 

  64. Middelburg, C.A.: Syntax and semantics of VVSL: a language for structured VDM specifications. Ph.D. thesis, PTT Research, Leidschendam, Department of Applied Computer Science, September 1990

    Google Scholar 

  65. Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes. Inf. Comput. 100, 1–77 (1992)

    MathSciNet  MATH  Google Scholar 

  66. Milner, R.: Communication and Concurrency. Prentice Hall, Upper Saddle Rive (1989)

    MATH  Google Scholar 

  67. Morgan, C.: Programming from Specifications. Prentice-Hall, Upper Saddle River (1990)

    MATH  Google Scholar 

  68. Moszkowski, B.: Executing temporal logic programs. In: Brookes, S.D., Roscoe, A.W., Winskel, G. (eds.) CONCURRENCY 1984. LNCS, vol. 197, pp. 111–130. Springer, Heidelberg (1985). https://doi.org/10.1007/3-540-15670-4_6

    Chapter  Google Scholar 

  69. Naur, P.: Proof of algorithms by general snapshots. BIT Numer. Math. 6(4), 310–316 (1966)

    Google Scholar 

  70. O’Hearn, P.W.: Resources, concurrency and local reasoning. Theoret. Comput. Sci. 375(1–3), 271–307 (2007)

    MathSciNet  MATH  Google Scholar 

  71. Olderog, E.R.: Nets, Terms and Formulas: Three Views of Concurrent Processes and Their Relationship, vol. 23. Cambridge University Press, Cambridge (2005)

    MATH  Google Scholar 

  72. Owicki, S.S.: Axiomatic proof techniques for parallel programs. Ph.D. thesis, Department of Computer Science, Cornell University (1975). Published as technical report 75–251

    Google Scholar 

  73. Owicki, S.S., Gries, D.: An axiomatic proof technique for parallel programs I. Acta Informatica 6, 319–340 (1976)

    MathSciNet  MATH  Google Scholar 

  74. Parkinson, M.: The next 700 separation logics. In: Leavens, G.T., O’Hearn, P., Rajamani, S.K. (eds.) VSTTE 2010. LNCS, vol. 6217, pp. 169–182. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-15057-9_12

    Chapter  Google Scholar 

  75. Pierce, K.: Enhancing the useability of rely-guaranteee conditions for atomicity refinement. Ph.D. thesis, Newcastle University (2009)

    Google Scholar 

  76. Prensa Nieto, L.: Verification of parallel programs with the Owicki-Gries and rely-guarantee methods in Isabelle/HOL. Ph.D. thesis, Institut für Informatic der Technischen Universität München (2001)

    Google Scholar 

  77. Reisig, W.: Petri Nets: An Introduction, vol. 4. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-69968-9

    Book  MATH  Google Scholar 

  78. Reisig, W.: Understanding Petri Nets: Modeling Techniques, Analysis Methods, Case Studies. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-33278-4

    Book  MATH  Google Scholar 

  79. Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: Proceedings of 17th LICS, pp. 55–74. IEEE (2002)

    Google Scholar 

  80. de Roever, W.P., Engelhardt, K.: Data Refinement: Model-Oriented Proof Methods and Their Comparison. Cambridge University Press, Cambridge (1999)

    MATH  Google Scholar 

  81. Sangiorgi, D., Walker, D.: The \(\pi \)-calculus: A Theory of Mobile Processes. Cambridge University Press, Cambridge (2001)

    MATH  Google Scholar 

  82. Schellhorn, G., Tofan, B., Ernst, G., Pfähler, J., Reif, W.: RGITL: a temporal logic framework for compositional reasoning about interleaved programs. Ann. Math. Artif. Intell. 71(1–3), 131–174 (2014)

    MathSciNet  MATH  Google Scholar 

  83. Schneider, F.B.: On Concurrent Programming. Springer, New York (1997). https://doi.org/10.1007/978-1-4612-1830-2

    Book  MATH  Google Scholar 

  84. Steel, T.B.: Formal Language Description Languages for Computer Programming. North-Holland, Vienna (1966)

    MATH  Google Scholar 

  85. Stølen, K.: Development of parallel programs on shared data-structures. Ph.D. thesis, Manchester University (1990). Published as technical report UMCS-91-1-1

    Google Scholar 

  86. 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

    Google Scholar 

  87. Vafeiadis, V.: Modular fine-grained concurrency verification. Ph.D. thesis, University of Cambridge (2007)

    Google Scholar 

  88. Vafeiadis, V., Parkinson, M.: A marriage of rely/guarantee and separation logic. In: Caires, L., Vasconcelos, V.T. (eds.) CONCUR 2007. LNCS, vol. 4703, pp. 256–271. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-74407-8_18

    Chapter  Google Scholar 

  89. van Wijngaarden, A.: Numerical analysis as an independent science. BIT Numer. Math. 6(1), 66–81 (1966)

    MathSciNet  MATH  Google Scholar 

  90. Windsor, M.: Starling: a framework for automated concurrency verification. Ph.D. thesis, University of York (2019)

    Google Scholar 

  91. Xu, Q.: A theory of state-based parallel programming. Ph.D. thesis, Oxford University (1992)

    Google Scholar 

Download references

Acknowledgements

This paper is a post-conference version of the talk given at the History of Formal Methods meeting in Porto in October 2019. The author is grateful to the organisers for the event and the audience for their feedback. Furthermore, Troy Astarte kindly commented on a draft of this paper. I am extremely grateful for the perceptive and helpful input received from anonymous referees.

Past research has been funded by the EPSRC Strata Platform grant and earlier EPSRC responsive mode funding of the Rely/Guarantee research. On the purely technical front, I am a Partner Investigator on Ian Hayes’ ARC grant which is closely related to my concurrency research.

The Leverhulme grant (2019–2020) awarded to this paper’s author will provide funding to address more topics in the history of concurrency research.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Cliff B. Jones .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Jones, C.B. (2020). Reasoning About Shared-Variable Concurrency: Interactions Between Research Threads. In: Sekerinski, E., et al. Formal Methods. FM 2019 International Workshops. FM 2019. Lecture Notes in Computer Science(), vol 12233. Springer, Cham. https://doi.org/10.1007/978-3-030-54997-8_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-54997-8_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-54996-1

  • Online ISBN: 978-3-030-54997-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics