Skip to main content

Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages

  • Conference paper
  • First Online:
Automated Reasoning with Analytic Tableaux and Related Methods (TABLEAUX 2017)

Abstract

Language semantics that is formal and mathematically precise, is the essential prerequisite for the design of logics and calculi that permit automated reasoning about programs. The most popular approach to programming language semantics—small step operational semantics (SOS)—is not modular in the sense that it does not separate conceptual layers in the target language. SOS is also hard to relate formally to program logics and calculi. Minimalist semantic formalisms, such as automata, Petri nets, or \(\pi \)-calculus are inadequate for rich programming languages. We propose a new formal trace semantics for a concurrent, active objects language. It is designed with the explicit aim of being compatible with a sequent calculus for a program logic and has a strong model theoretic flavor. Our semantics separates sequential and object-local from concurrent computation: the former yields abstract traces which in a second stage are combined into global system behavior.

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 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.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

Notes

  1. 1.

    The official citation is [4], but the approach goes back to the early 1980s.

  2. 2.

    This future is never retrieved by any completion reaction event and can be thought of as the client who started P’s execution.

References

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

    Article  MATH  Google Scholar 

  2. Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Upper Saddle (1976)

    MATH  Google Scholar 

  3. Beckert, B., Klebanov, V., Weiß, B.: Dynamic logic for Java. In: Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Schmitt, P., Ulbrich, M. (eds.) Deductive Software Verification–The KeY Book: From Theory to Practice. LNCS, vol. 10001, pp. 49–106. Springer, Heidelberg (2016). doi:10.1007/978-3-319-49812-6

    Chapter  Google Scholar 

  4. Plotkin, G.D.: A structural approach to operational semantics. J. Log. Algebraic Program. 60–61, 17–139 (2004)

    MATH  MathSciNet  Google Scholar 

  5. Drossopoulou, S., Eisenbach, S.: Describing the semantics of Java and proving type soundness. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 41–82. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  6. Krebbers, R., Wiedijk, F.: A typed C11 semantics for interactive theorem proving. In: Conference on Certified Programs and Proofs, 15–27. ACM (2015)

    Google Scholar 

  7. Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: a core language for abstract behavioral specification. In: Aichernig, B.K., de Boer, F.S., Bonsangue, M.M. (eds.) 9th International Symposium on Formal Methods for Components and Objects (FMCO 2010), vol. 6957, pp. 142–164. Springer, Berlin (2011). doi:10.1007/978-3-642-25271-6_8

    Chapter  Google Scholar 

  8. Filliâtre, J.C., Marché, C.: The Why/Krakatoa/Caduceus platform for deductive program verification. In: Damm, W., Hermanns, H. (eds.) 19th International Conference on Computer Aided Verification, CAV 2007. LNCS, vol. 4590, pp. 173–177. Springer, Berlin (2007). doi:10.1007/978-3-540-73368-3_21

    Google Scholar 

  9. Leino, K.R.M.: Dafny: an automatic program verifier for functional correctness. In: Clarke, E.M., Voronkov, A. (eds.) LPAR 2010. LNCS, vol. 6355, pp. 348–370. Springer, Heidelberg (2010). doi:10.1007/978-3-642-17511-4_20

    Chapter  Google Scholar 

  10. Brookes, S.: Traces, pomsets, fairness and full abstraction for communicating processes. In: Brim, L., Křetínský, M., Kučera, A., Jančar, P. (eds.) CONCUR 2002. LNCS, vol. 2421, pp. 466–482. Springer, Heidelberg (2002). doi:10.1007/3-540-45694-5_31

    Chapter  Google Scholar 

  11. Meyer, B.: Applying "design by contract". IEEE Comput. 25(10), 40–51 (1992)

    Article  Google Scholar 

  12. Nielson, F., Nielson, H.R., Hankin, C.L.: Principles of Program Analysis. Springer, Heidelberg (1999). doi:10.1007/978-3-662-03811-6

    Book  MATH  Google Scholar 

  13. Hentschel, M., Hähnle, R., Bubel, R.: Visualizing unbounded symbolic execution. In: Seidl, M., Tillmann, N. (eds.) TAP 2014. LNCS, vol. 8570, pp. 82–98. Springer, Cham (2014). doi:10.1007/978-3-319-09099-3_7

    Google Scholar 

  14. Nakata, K., Uustalu, T.: A Hoare logic for the coinductive trace-based big-step semantics of While. Log. Methods Comput. Sci. 11(1), 1–32 (2015)

    Article  MATH  MathSciNet  Google Scholar 

  15. Boer, F.S., Clarke, D., Johnsen, E.B.: A complete guide to the future. In: Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 316–330. Springer, Heidelberg (2007). doi:10.1007/978-3-540-71316-6_22

    Chapter  Google Scholar 

  16. Din, C.C., Bubel, R., Hähnle, R.: KeY-ABS: a deductive verification tool for the concurrent modelling language ABS. In: Felty, A.P., Middeldorp, A. (eds.) CADE 2015. LNCS, vol. 9195, pp. 517–526. Springer, Cham (2015). doi:10.1007/978-3-319-21401-6_35

    Chapter  Google Scholar 

  17. Bubel, R., Din, C.C., Hähnle, R., Nakata, K.: A dynamic logic with traces and coinduction. In: Nivelle, H. (ed.) TABLEAUX 2015. LNCS, vol. 9323, pp. 307–322. Springer, Cham (2015). doi:10.1007/978-3-319-24312-2_21

    Chapter  Google Scholar 

  18. Din, C.C., Dovland, J., Johnsen, E.B., Owe, O.: Observable behavior of distributed systems: component reasoning for concurrent objects. J. Logic Algebraic Program. 81(3), 227–256 (2012)

    Article  MATH  MathSciNet  Google Scholar 

  19. Din, C.C., Owe, O.: Compositional reasoning about active objects with shared futures. Formal Asp. Comput. 27(3), 551–572 (2015)

    Article  MATH  MathSciNet  Google Scholar 

  20. Ameur-Boulifa, R., Henrio, L., Kulankhina, O., Madelaine, E., Savu, A.: Behavioural semantics for asynchronous components. J. Logical Algebraic Methods Program. 89, 1–40 (2017)

    Article  MATH  MathSciNet  Google Scholar 

  21. Brookes, S.: A semantics for concurrent separation logic. Theor. Comput. Sci. 375(1–3), 227–270 (2007)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Acknowledgement

We are grateful to Dave Sands for useful hints and feedback and to Georges P. for inspiring our use of constraints.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Reiner Hähnle .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Din, C.C., Hähnle, R., Johnsen, E.B., Pun, K.I., Tapia Tarifa, S.L. (2017). Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages. In: Schmidt, R., Nalon, C. (eds) Automated Reasoning with Analytic Tableaux and Related Methods. TABLEAUX 2017. Lecture Notes in Computer Science(), vol 10501. Springer, Cham. https://doi.org/10.1007/978-3-319-66902-1_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-66902-1_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-66901-4

  • Online ISBN: 978-3-319-66902-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics