A compositional proof system for dynamic object systems

Current object-oriented approaches to distributed programs may be criticized in several respects. First, method calls are generally synchronous, which leads to much waiting in distributed and unstable networks. Second, the common model of thread concurrency makes reasoning about program behavior very challenging. Object-oriented models based on concurrent objects communicating by asynchronous method calls, have been proposed to combine object orientation and distribution in a more satisfactory way. In this report, a high-level language and proof system are developed for such a model, emphasizing simplicity and modularity. In particular, the proof system is used to derive external specifications of observable behavior for objects, encapsulating their state. A simple and compositional proof system is paramount to allow verification of real programs. The proposed proof rules are derived from the Hoare rules of a standard sequential language by a semantic encoding preserving soundness and relative completeness. Thus, the report demonstrates that these models not only address the first criticism above, but also the second.

[1]  Einar Broch Johnsen,et al.  An Asynchronous Communication Model for Distributed Concurrent Objects , 2004, SEFM.

[2]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[3]  Per Brinch Hansen,et al.  Java's insecure parallelism , 1999, SIGP.

[4]  Frank S. de Boer,et al.  A Hoare logic for dynamic networks of asynchronously communicating deterministic processes , 2002, Theor. Comput. Sci..

[5]  Ernst-Rüdiger Olderog,et al.  Fairness in parallel programs: the transformational approach , 1988, TOPL.

[6]  Frank S. de Boer,et al.  An assertion-based proof system for multithreaded Java , 2005, Theor. Comput. Sci..

[7]  Martin Wirsing,et al.  An Event-Based Structural Operational Semantics of Multi-Threaded Java , 1999, Formal Syntax and Semantics of Java.

[8]  Johan Dovland,et al.  Verification of concurrent objects with asynchronous method calls , 2005, IEEE International Conference on Software - Science, Technology & Engineering (SwSTE'05).

[9]  Tom Lyche,et al.  From object-orientation to formal methods : essays in memory of Ole-Johan Dahl , 2004 .

[10]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey Part II: Nondeterminism , 1984, Theor. Comput. Sci..

[11]  Frank S. de Boer,et al.  How to Cook a Complete Hoare Logic for Your Pet OO Language , 2003, FMCO.

[12]  F. S. deBoer,et al.  A Hoare logic for dynamic networks of asychronously communicating deterministic processes , 2002 .

[13]  Martin Wirsing,et al.  Formal Syntax and Semantics of Java , 1999 .

[14]  Martin Wirsing,et al.  A Hoare Calculus for Verifying Java Realizations of OCL-Constrained Design Models , 2001, FASE.

[15]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[16]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[17]  Bart Jacobs,et al.  Java Program Verification via a Hoare Logic with Abrupt Termination , 2000, FASE.

[18]  Einar Broch Johnsen,et al.  Object-Oriented Specification and Open Distributed Systems , 2004, Essays in Memory of Ole-Johan Dahl.

[19]  C. A. R. Hoare,et al.  Communicating Sequential Processes (Reprint) , 1983, Commun. ACM.

[20]  Bernhard Beckert,et al.  Verification of Object-Oriented Software. The KeY Approach - Foreword by K. Rustan M. Leino , 2007, The KeY Approach.

[21]  Manfred Broy,et al.  Specification and Development of Interactive Systems , 2001, Monographs in Computer Science.

[22]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[23]  Neelam Soundararajan,et al.  A proof technique for parallel programs , 1984, Theor. Comput. Sci..

[24]  Arnd Poetzsch-Heffter,et al.  A Programming Logic for Sequential Java , 1999, ESOP.

[25]  Neelam Soundararajan,et al.  Axiomatic semantics of communicating sequential processes , 1984, ACM Trans. Program. Lang. Syst..

[26]  Manfred Broy,et al.  Distributed Concurrent Object-Oriented Software , 2004, Essays in Memory of Ole-Johan Dahl.

[27]  Einar Broch Johnsen,et al.  Inheritance in the Presence of Asynchronous Method Calls , 2005, Proceedings of the 38th Annual Hawaii International Conference on System Sciences.