Locally Abstract, Globally Concrete Semantics of Concurrent Programming Languages

  • Crystal Chang Din
  • Reiner Hähnle
  • Einar Broch Johnsen
  • Ka I Pun
  • Silvia Lizeth Tapia Tarifa
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10501)

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.

References

  1. 1.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969). (583)CrossRefMATHGoogle Scholar
  2. 2.
    Dijkstra, E.W.: A Discipline of Programming. Prentice-Hall, Upper Saddle (1976)MATHGoogle Scholar
  3. 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 CrossRefGoogle Scholar
  4. 4.
    Plotkin, G.D.: A structural approach to operational semantics. J. Log. Algebraic Program. 60–61, 17–139 (2004)MathSciNetMATHGoogle Scholar
  5. 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)CrossRefGoogle Scholar
  6. 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. 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 CrossRefGoogle Scholar
  8. 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. 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 CrossRefGoogle Scholar
  10. 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 CrossRefGoogle Scholar
  11. 11.
    Meyer, B.: Applying "design by contract". IEEE Comput. 25(10), 40–51 (1992)CrossRefGoogle Scholar
  12. 12.
    Nielson, F., Nielson, H.R., Hankin, C.L.: Principles of Program Analysis. Springer, Heidelberg (1999). doi:10.1007/978-3-662-03811-6 CrossRefMATHGoogle Scholar
  13. 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. 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)MathSciNetCrossRefMATHGoogle Scholar
  15. 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 CrossRefGoogle Scholar
  16. 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 CrossRefGoogle Scholar
  17. 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 CrossRefGoogle Scholar
  18. 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)MathSciNetCrossRefMATHGoogle Scholar
  19. 19.
    Din, C.C., Owe, O.: Compositional reasoning about active objects with shared futures. Formal Asp. Comput. 27(3), 551–572 (2015)MathSciNetCrossRefMATHGoogle Scholar
  20. 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)MathSciNetCrossRefMATHGoogle Scholar
  21. 21.
    Brookes, S.: A semantics for concurrent separation logic. Theor. Comput. Sci. 375(1–3), 227–270 (2007)MathSciNetCrossRefMATHGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Crystal Chang Din
    • 2
  • Reiner Hähnle
    • 1
  • Einar Broch Johnsen
    • 2
  • Ka I Pun
    • 2
  • Silvia Lizeth Tapia Tarifa
    • 2
  1. 1.Department of Computer ScienceTechnische Universität DarmstadtDarmstadtGermany
  2. 2.Department of InformaticsUniversity of OsloOsloNorway

Personalised recommendations