Abstract
Distributed and concurrent object-oriented systems are difficult to analyze due to the complexity of their concurrency, communication, and synchronization mechanisms. The future mechanism extends the traditional method call communication model by facilitating sharing of references to futures. By assigning method call result values to futures, third party objects may pick up these values. This may reduce the time spent waiting for replies in a distributed environment. However, futures add a level of complexity to program analysis, as the program semantics becomes more involved. This paper presents a model for asynchronously communicating objects, where return values from method calls are handled by futures. The model facilitates invariant specifications over the locally visible communication history of each object. Compositional reasoning is supported and proved sound, as each object may be specified and verified independently of its environment. A kernel object-oriented language with futures inspired by the ABS modeling language is considered. A compositional proof system for this language is presented, formulated within dynamic logic.
Similar content being viewed by others
References
Ahrendt W, Dylla M (2012) A system for compositional verification of asynchronous objects. Sci Comput Program. 77(12):1289-1309. doi:10.1016/j.scico.2010.08.003
Agha G, Frølund S, Kim WY, Panwar R, Patterson A, Sturman D (1993) Abstraction and modularity mechanisms for concurrent computing. Parallel Distrib Technol Syst Appl IEEE 1(2), 3–14
Ábrahám E, Grabe I, Grüner A, Steffen M (2009) Behavioral interface description of an object-oriented language with futures and promises. J Log Algebr Program 78(7), 491–518
Alpern B, Schneider FB (1985) Defining liveness. Inf Process Lett 21(4), 181–185
Ahern A, Yoshida N (2007) Formalising java rmi with explicit code mobility. Theor Comput Sci 389(3):341–410. Semantic and Logical Foundations of Global Computing
Beckert B, Hähnle R, Schmitt PH (eds) (2007) Verification of object-oriented software: the KeY approach. LNCS, vol 4334. Springer, Berlin
Baker Jr HG, Hewitt C (1977) The incremental garbage collection of processes. In: Proceedings of the 1977 symposium on artificial intelligence and programming languages, New York, NY, USA. ACM, pp 55–59
Brooke PJ, Paige RF (2009) Cameo: an alternative model of concurrency for Eiffel. Form Asp Comput 21(4), 363–391
Broy M, Stølen K (2001) Specification and development of interactive systems. Monographs in computer science. Springer
Clavel M, Durán F, Eker S, Lincoln P, Martí-Oliet N, Meseguer J, Talcott CL (2007) All about Maude—a high-performance logical framework, how to specify, program and verify systems in rewriting logic. LNCS, vol 4350. Springer, Berlin
Dahl O-J (1977) Can program proving be made practical? In: Amirchahy M, Néel D (eds) Les Fondements de la Programmation. Institut de Recherche d’Informatique et d’Automatique, Toulouse, France, December 1977, pp 57–114
Dahl O-J (1987) Object-oriented specifications. In: Research directions in object-oriented programming. MIT Press, Cambridge, pp 561–576
Dahl O-J (1992) Verifiable programming. International series in computer science. Prentice Hall, New York
de Boer FS (2002) A Hoare logic for dynamic networks of asynchronously communicating deterministic processes. Theor Comput Sci 274, 3–41
de Boer FS, Clarke D, Johnsen EB (2007) A complete guide to the future. In: de Nicola R (ed) Proceedings of the 16th European symposium on programming (ESOP’07), March 2007. LNCS, vol 4421. Springer, Berlin, pp 316–330
Din CC, Dovland J, Johnsen EB, Owe O (2012) Observable behavior of distributed systems: component reasoning for concurrent objects. J Log Algebr Program 81(3), 227–256
Din CC, Dovland J, Owe O (2012) An approach to compositional reasoning about concurrent objects and futures. Research Report 415, Department of Informatics, University of Oslo, February 2012. http://urn.nb.no/URN:NBN:no-30589
Din CC, Dovland J, Owe O (2012) Compositional reasoning about shared futures. In: Eleftherakis G, Hinchey M, Holcombe M (eds) Proceedings of the international conference on software engineering and formal methods (SEFM’12). LNCS, vol 7504. Springer, Berlin, pp 94–108
Dean J, Ghemawat S (2008) MapReduce: simplified data processing on large clusters. Commun. ACM 51(1), 107–113
Dovland J, Johnsen EB, Owe O (2005) Verification of concurrent objects with asynchronous method calls. In: Proceedings of the IEEE international conference on software science, technology and engineering (SwSTE’05), February 2005. IEEE Computer Society Press, pp 141–150
Dahl O-J, Owe O (1998) Formal methods and the RM-ODP. Research Report 261, Department of Informatics, University of Oslo, Norway, May 1998
de Roever W-P, de Boer F, Hannemann U, Hooman J, Lakhnech Y, Poel M, Zwiers J (2001) Concurrency verification: introduction to compositional and noncompositional methods. Cambridge University Press, New York
Falkner KEK, Coddington PD, Oudshoorn MJ (1999) Implementing asynchronous remote method invocation in java
Full ABS Modeling Framework (2011). Deliverable 1.2 of project FP7-231620 (HATS). http://www.hats-project.eu
Halstead RH Jr (1985) Multilisp: a language for concurrent symbolic computation. ACM Trans Program Lang Syst 7(4), 501–538
Hoare CAR (1985) Communicating sequential processes. International series in computer science. Prentice Hall, Englewood Cliffs
International Telecommunication Union (1995) Open distributed processing-reference model parts 1–4. Technical report, ISO/IEC, Geneva, July 1995
Johnsen EB, Owe O (2004) Object-oriented specification and open distributed systems. In: Owe O, Krogdahl S, Lyche T (eds) From object-orientation to formal methods: essays in memory of Ole-Johan Dahl. LNCS, vol 2635. Springer, Berlin, pp 137–164
Johnsen EB, Owe O (2007) An asynchronous communication model for distributed concurrent objects. Softw Syst Model 6(1), 35–58
Jeffrey ASA, Rathke J (2005) Java Jr.: fully abstract trace semantics for a core Java language. In: Proceedings of the European symposium on programming. LNCS, vol 3444. Springer, Berlin, pp 423–438
Liskov BH, Shrira L (1988) Promises: linguistic support for efficient asynchronous procedure calls in distributed systems. In: Wise DS (ed) Proceedings of the SIGPLAN conference on programming language design and implementation (PLDI’88). ACM Press, pp 260–267
Morandi B, Bauer SS, Meyer B (2008) SCOOP—a contract-based concurrent object-oriented programming model. In: Müller P (ed) Advanced lectures on software engineering, LASER Summer School 2007/2008. Lecture notes in computer science, vol 6029. Springer, Berlin, pp 41–90
Meseguer J (1992) Conditional rewriting logic as a unified model of concurrency. Theor Comput Sci 96, 73–155
Meyer B (1993) Systematic concurrent object-oriented programming. Commun. ACM 36(9), 56–80
Meyer B (1997) Object-oriented software construction. 2nd edn Prentice-Hall, Inc.
Soundararajan N V Axiomatic semantics of communicating sequential processes. ACM Trans Program Lang Syst 6(4), 647–662
Soundararajan N (1984) A proof technique for parallel programs. Theor Comput Sci 31(1–2), 13–29
Yonezawa A, Briot J-P, Shibayama E (1986) Object-oriented concurrent programming in ABCL/1. In: Conference on object-oriented programming systems, languages and applications (OOPSLA’86). Sigplan Notices, vol 21, no 11, pp 258–268, November 1986
Author information
Authors and Affiliations
Corresponding authors
Additional information
George Eleftherakis, Mike Hinchey, and Michael Butler
Rights and permissions
About this article
Cite this article
Din, C.C., Owe, O. Compositional reasoning about active objects with shared futures. Form Asp Comp 27, 551–572 (2015). https://doi.org/10.1007/s00165-014-0322-y
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-014-0322-y