Towards a \(\mathbb {K}\)ool Future

  • Dorel Lucanu
  • Traian-Florin Şerbănuţă
  • Grigore Roşu
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9660)


The \(\mathbb {K}\) framework was successfully used for defining formal semantics for several practical languages, e.g. C, Java, Java Script, but no language with distributed concurrent objects was defined in \(\mathbb {K}\) up to now. In this paper we investigate how the model of asynchronous method calls, using the so-called futures for handling the return values, can be added to an existing \(\mathbb {K}\) definition using the ideas from the Complete Guide to the Future paper. As the running example we use the \(\mathbb {K}\) definition of KOOL, a pedagogical and research language that captures the essence of the object-oriented programming paradigm. This is a first step toward a generic methodology for modularly adding future-based mechanisms to allow asynchronous method calls.



This paper is written in honour of Frank de Boer on the occasion of his 60th birthday and celebrates his exceptional contribution to the object-oriented paradigm. The first author had the privilege to cooperate with Frank and he is deeply grateful to him for that fruitful experience.

The work presented here was partially supported by Romanian Contract 161/15.06.2010, SMIS-CSNR 602-12516 (DAK), which made possible the development of the main first versions of the \(\mathbb {K}\) Framework.


  1. 1.
    Ábrahám, E., Grabe, I., Grüner, A., Steffen, M.: Behavioral interface description of an object-oriented language with futures and promises. J. Logic Algebraic Program. 78(7), 491–518 (2009)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Arusoaie, A., Lucanu, D., Rusu, V.: A generic framework for symbolic execution: theory and applications. Research Report RR-8189, Inria, September 2015Google Scholar
  3. 3.
    de Boer, F.S., Clarke, D., Johnsen, E.B.: A complete guide to the future. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 316–330. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  4. 4.
    Bogdănaş, D., Roşu, G.: K-Java: a complete semantics of Java. In: Proceedings of the 42nd Symposium on Principles of Programming Languages (POPL 2015), pp. 445–456. ACM, January 2015Google Scholar
  5. 5.
    Caromel, D., Henrio, L., Serpette, B.P.: Asynchronous and deterministic objects. In: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL, 14–16 January 2004, Venice, Italy, pp. 123–134. ACM (2004)Google Scholar
  6. 6.
    Caromel, D., Henrio, L., Serpette, B.P.: Asynchronous sequential processes. Inf. Comput. 207(4), 459–495 (2009)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Danvy, O., Nielsen, L.R.: Refocusing in reduction semantics. RS RS-04-26, BRICS, DAIMI, Department of Computer Science, University of Aarhus, Aarhus, Denmark, November 2004. This report supersedes BRICS report RS-02-04. A preliminary version appears in the informal proceedings of the Second International Workshop on Rule-Based Programming, RULE 2001, Electronic Notes in Theoretical Computer Science, vol. 59.4 (2001)Google Scholar
  8. 8.
    Din, C.C., Owe, O.: A sound and complete reasoning system for asynchronous communication with shared futures. J. Logical Algebraic Meth. Program. 83(5–6), 360–383 (2014)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Ellison, C., Roşu, G.: An executable formal semantics of C with applications. In: Proceedings of the 39th Symposium on Principles of Programming Languages (POPL 2012), pp. 533–544. ACM (2012)Google Scholar
  10. 10.
    Filaretti, D., Maffeis, S.: An executable formal semantics of PHP. In: Jones, R. (ed.) ECOOP 2014. LNCS, vol. 8586, pp. 567–592. Springer, Heidelberg (2014)Google Scholar
  11. 11.
    Friedman, D.P., Wand, M., Haynes, C.T.: Essentials of Programming Languages, 2nd edn. MIT Press, Cambridge (2001)zbMATHGoogle Scholar
  12. 12.
    Henrio, L., Khan, M.U.: Asynchronous components with futures: semantics and proofs in Isabelle/HOL. Electron. Notes Theor. Comput. Sci. 264(1), 35–53 (2010)CrossRefGoogle Scholar
  13. 13.
    Johnsen, E.B., Owe, O., Yu, I.C.: Creol: a type-safe object-oriented model for distributed concurrent systems. Theor. Comput. Sci. 365(1–2), 23–66 (2006)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Halstead Jr., R.H.: MULTILISP: a language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7(4), 501–538 (1985)CrossRefzbMATHGoogle Scholar
  15. 15.
    Park, D., Ştefănescu, A., Roşu, G.: KJS: a complete formal semantics of JavaScript. In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2015), pp. 346–356. ACM, June 2015Google Scholar
  16. 16.
    Roşu, G.: Matching logic – extended abstract. In: Proceedings of the 26th International Conference on Rewriting Techniques and Applications (RTA 2015). Leibniz International Proceedings in Informatics (LIPIcs), vol. 36, pp. 5–21. Dagstuhl, Germany, July 2015Google Scholar
  17. 17.
  18. 18.
    Roşu, G., Ştefănescu, A.: From hoare logic to matching logic reachability. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 387–402. Springer, Heidelberg (2012)Google Scholar
  19. 19.
    Roşu, G., Ştefănescu, A., Ciobâcă, Ş., Moore, B.M.: One-path reachability logic. In: Proceedings of the 28th Symposium on Logic in Computer Science (LICS 2013), pp. 358–367. IEEE, June 2013Google Scholar
  20. 20.
    Roşu, G., Şerbănuţă, T.F.: An overview of the K semantic framework. J. Logic Algebraic Program. 79(6), 397–434 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Roşu, G., Ştefănescu, A.: Checking reachability using matching logic. In: OOPSLA, pp. 555–574. ACM, Also available as technical report (2012).
  22. 22.
    Ştefănescu, A., Ciobâcă, Ş., Mereuta, R., Moore, B.M., Şerbănută, T.F., Roşu, G.: All-path reachability logic. In: Dowek, G. (ed.) RTA-TLCA 2014. LNCS, vol. 8560, pp. 425–440. Springer, Heidelberg (2014)Google Scholar
  23. 23.
    Welc, A., Jagannathan, S., Hosking, A.L.: Safe futures for Java. In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA, 16–20 October 2005, San Diego, CA, USA, pp. 439–453. ACM (2005)Google Scholar
  24. 24.
    Wooldridge, M.: An Introduction to MultiAgent Systems, 2nd edn. Wiley, New York (2009)Google Scholar
  25. 25.
    Yonezawa, A., Shibayama, E., Takada, T., Honda, Y.: Object-oriented concurrent programming-modelling and programming in an object-oriented concurrent language, ABCL/1. In: Object-oriented Concurrent Programming, pp. 55–89 (1987)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Dorel Lucanu
    • 1
  • Traian-Florin Şerbănuţă
    • 2
  • Grigore Roşu
    • 3
  1. 1.Alexandru Ioan Cuza UniversityIaşiRomania
  2. 2.University of BucharestBucharestRomania
  3. 3.University of Illinois at Urbana-ChampaignUrbanaUSA

Personalised recommendations