Advertisement

Stateful Behavioral Types for Active Objects

  • Eduard KamburjanEmail author
  • Tzu-Chun Chen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11023)

Abstract

It is notoriously hard to correctly implement a multiparty protocol which involves asynchronous/concurrent interactions and constraints on states of multiple participants. To assist developers in implementing such protocols, we propose a novel specification language to specify interactions within multiple object-oriented actors and the side-effects on heap memory of those actors. A behavioral-type-based analysis is presented for type checking. Our specification language formalizes a protocol as a global type, which describes the procedure of asynchronous method calls, the usage of futures, and the heap side-effects with a first-order logic. To characterize runs of instances of types, we give a model-theoretic semantics for types and translate them into logical constraints over traces. We prove protocol adherence: If a program is well-typed w.r.t. a protocol, then every trace of the program adheres to the protocol, i.e., every trace is a model for the formula of the protocol’s type.

Notes

Acknowledgments

This work is partially supported by FormbaR, part of the Innovation Alliance between TU Darmstadt and Deutsche Bahn AG.

References

  1. 1.
    Ahrendt, W., Beckert, B., Bubel, R., Hähnle, R., Schmitt, P.H., Ulbrich, M. (eds.): Deductive Software Verification - The KeY Book - From Theory to Practice. LNCS, vol. 10001. Springer, Heidelberg (2016).  https://doi.org/10.1007/978-3-319-49812-6CrossRefGoogle Scholar
  2. 2.
    Albert, E., Flores-Montoya, A., Genaim, S., Martin-Martin, E.: May-happen-in-parallel analysis for actor-based concurrency. ACM Trans. Comput. Log. 17(2), 11 (2016)MathSciNetzbMATHGoogle Scholar
  3. 3.
    Ancona, D., Bono, V., Bravetti, M.: Behavioral Types in Programming Languages. Now Publishers Inc., Hanover (2016)Google Scholar
  4. 4.
    Baker, H.G., Hewitt, C.: The incremental garbage collection of processes. SIGART Newsl. 64, 55–59 (1977)CrossRefGoogle Scholar
  5. 5.
    Bocchi, L., Demangeon, R., Yoshida, N.: A multiparty multi-session logic. In: Palamidessi, C., Ryan, M.D. (eds.) TGC 2012. LNCS, vol. 8191, pp. 97–111. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-41157-1_7CrossRefGoogle Scholar
  6. 6.
    Bocchi, L., Honda, K., Tuosto, E., Yoshida, N.: A theory of design-by-contract for distributed multiparty interactions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 162–176. Springer, Heidelberg (2010).  https://doi.org/10.1007/978-3-642-15375-4_12CrossRefzbMATHGoogle Scholar
  7. 7.
    Bocchi, L., Lange, J., Tuosto, E.: Three algorithms and a methodology for amending contracts for choreographies. Sci. Ann. Comp. Sci. 22(1), 61–104 (2012)MathSciNetGoogle Scholar
  8. 8.
    Caires, L., Pfenning, F.: Session types as intuitionistic linear propositions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 222–236. Springer, Heidelberg (2010).  https://doi.org/10.1007/978-3-642-15375-4_16CrossRefGoogle Scholar
  9. 9.
    Carbone, M., Lindley, S., Montesi, F., Schürmann, C., Wadler, P.: Coherence generalises duality: a logical explanation of multiparty session types. In: CONCUR 2016. LIPIcs, vol. 59, pp. 33:1–33:15. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik (2016)Google Scholar
  10. 10.
    Castagna, G., Gesbert, N., Padovani, L.: A theory of contracts for web services. ACM Trans. Program. Lang. Syst. 31(5), 19:1–19:61 (2009)CrossRefGoogle Scholar
  11. 11.
    Crafa, S., Padovani, L.: The chemical approach to typestate-oriented programming. ACM Trans. Program. Lang. Syst. 39(3), 13:1–13:45 (2017)CrossRefGoogle Scholar
  12. 12.
    de Boer, F.S., et al.: A survey of active object languages. ACM Comput. Surv. 50(5), 76:1–76:39 (2017)CrossRefGoogle Scholar
  13. 13.
    Dezani-Ciancaglini, M., Drossopoulou, S., Mostrous, D., Yoshida, N.: Objects and session types. Inf. Comput. 207(5), 595–641 (2009)MathSciNetCrossRefGoogle Scholar
  14. 14.
    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 (LNAI), vol. 9195, pp. 517–526. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-21401-6_35CrossRefGoogle Scholar
  15. 15.
    Din, C.C., Owe, O.: A sound and complete reasoning system for asynchronous communication with shared futures. J. Log. Algebr. Meth. Program. 83(5–6), 360–383 (2014)MathSciNetCrossRefGoogle Scholar
  16. 16.
    Din, C.C., Tapia Tarifa, S.L., Hähnle, R., Johnsen, E.B.: History-based specification and verification of scalable concurrent and distributed systems. In: Butler, M., Conchon, S., Zaïdi, F. (eds.) ICFEM 2015. LNCS, vol. 9407, pp. 217–233. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-25423-4_14CrossRefGoogle Scholar
  17. 17.
    Flores-Montoya, A.E., Albert, E., Genaim, S.: May-happen-in-parallel based deadlock analysis for concurrent objects. In: Beyer, D., Boreale, M. (eds.) FMOODS/FORTE -2013. LNCS, vol. 7892, pp. 273–288. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-38592-6_19CrossRefGoogle Scholar
  18. 18.
    Gay, S.J., Gesbert, N., Ravara, A., Vasconcelos, V.T.: Modular session types for objects. Log. Methods Comput. Sci. 11(4) (2015)Google Scholar
  19. 19.
    Gay, S.J., Vasconcelos, V.T., Wadler, P., Yoshida, N.: Theory and applications of behavioural types (dagstuhl seminar 17051). Dagstuhl Reports 7(1), 158–189 (2017)Google Scholar
  20. 20.
    Giachino, E., Henrio, L., Laneve, C., Mastandrea, V.: Actors may synchronize, safely! In: PPDP, pp. 118–131. ACM (2016)Google Scholar
  21. 21.
    Giachino, E., Laneve, C., Lienhardt, M.: A framework for deadlock detection in core ABS. Softw. Syst. Model. 15(4), 1013–1048 (2016)CrossRefGoogle Scholar
  22. 22.
    Harel, D.: First-Order Dynamic Logic. Springer, Secaucus (1979).  https://doi.org/10.1007/3-540-09237-4CrossRefzbMATHGoogle Scholar
  23. 23.
    Henkin, L.: Relativization with respect to formulas and its use in proofs of independence. Compositio Mathematica 20, 88–106 (1968)MathSciNetzbMATHGoogle Scholar
  24. 24.
    Henrio, L., Laneve, C., Mastandrea, V.: Analysis of synchronisations in stateful active objects. In: Polikarpova, N., Schneider, S. (eds.) IFM 2017. LNCS, vol. 10510, pp. 195–210. Springer, Cham (2017).  https://doi.org/10.1007/978-3-319-66845-1_13CrossRefGoogle Scholar
  25. 25.
    Hewitt, C., Bishop, P., Steiger, R.: A universal modular ACTOR formalism for artificial intelligence. In: Proceedings of the 3rd International Joint Conference on Artificial Intelligence, IJCAI 1973, pp. 235–245. Morgan Kaufmann Publishers Inc. (1973)Google Scholar
  26. 26.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)CrossRefGoogle Scholar
  27. 27.
    Honda, K., Yoshida, N., Carbone, M.: Multiparty asynchronous session types. J. ACM 63(1), 1–67 (2016)MathSciNetCrossRefGoogle Scholar
  28. 28.
    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.) FMCO 2010. LNCS, vol. 6957, pp. 142–164. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-25271-6_8CrossRefGoogle Scholar
  29. 29.
    Kamburjan, E.: Session types for ABS. Technical report, TU Darmstadt (2016). http://formbar.raillab.de/en/techreportsessiontypesabs/
  30. 30.
    Kamburjan, E., Chen, T.: Stateful behavioral types for ABS. CoRR, abs/1802.08492 (2018)Google Scholar
  31. 31.
    Kamburjan, E., Din, C.C., Chen, T.-C.: Session-based compositional analysis for actor-based languages using futures. In: Ogata, K., Lawford, M., Liu, S. (eds.) ICFEM 2016. LNCS, vol. 10009, pp. 296–312. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-47846-3_19CrossRefGoogle Scholar
  32. 32.
    King, J.C.: Symbolic execution and program testing. Commun. ACM 19(7), 385–394 (1976)MathSciNetCrossRefGoogle Scholar
  33. 33.
    Lange, J., Yoshida, N.: Characteristic formulae for session types. In: Chechik, M., Raskin, J.-F. (eds.) TACAS 2016. LNCS, vol. 9636, pp. 833–850. Springer, Heidelberg (2016).  https://doi.org/10.1007/978-3-662-49674-9_52CrossRefGoogle Scholar
  34. 34.
    Odersky, M., et al.: Scala Programming Language. http://www.scala-lang.org
  35. 35.
    Padovani, L.: Deadlock-free typestate-oriented programming. Submitted to The Art, Science, and Engineering of Programming (2017, preprint). https://hal.archives-ouvertes.fr/hal-01628801/file/main.pdf
  36. 36.
    Schmitt, P.H., Ulbrich, M., Weiß, B.: Dynamic frames in java dynamic logic. In: Beckert, B., Marché, C. (eds.) FoVeOOS 2010. LNCS, vol. 6528, pp. 138–152. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-18070-5_10CrossRefGoogle Scholar
  37. 37.
    Tasharofi, S., Dinges, P., Johnson, R.E.: Why do scala developers mix the actor model with other concurrency models? In: Castagna, G. (ed.) ECOOP 2013. LNCS, vol. 7920, pp. 302–326. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-39038-8_13CrossRefGoogle Scholar
  38. 38.
    Toninho, B., Yoshida, N.: Certifying data in multiparty session types. J. Log. Algebr. Meth. Program. 90, 61–83 (2017)MathSciNetCrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.Department of Computer ScienceTechnische Universität DarmstadtDarmstadtGermany

Personalised recommendations