Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Program correctness over abstract data types, with error-state semantics
Program correctness over abstract data types, with error-state semantics
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
Mathematical Theory of Program Correctness
Mathematical Theory of Program Correctness
A Logic of Object-Oriented Programs
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Logical foundations for typed object-oriented languages
PROCOMET '98 Proceedings of the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods
Observable Behavior of Dynamic Systems: Component Reasoning for Concurrent Objects
Electronic Notes in Theoretical Computer Science (ENTCS)
A Verification System for Distributed Objects with Asynchronous Method Calls
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
A system for compositional verification of asynchronous objects
Science of Computer Programming
A relational trace logic for simple hierarchical actor-based component systems
Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
Hi-index | 5.23 |
This paper introduces a compositional Hoare logic for reasoningabout the partial correctness and absence of deadlock of a certainclass of programs. Considered are programs that describe networkscomposed of a dynamically evolving collection of processes whichare all executing in parallel, and which know each other bymaintaining and passing around process-references via anasynchronous communication mechanism based on (unbounded) FIFObuffers. The Hoare logic formalizes reasoning about such dynamicnetworks on an abstraction level that is at least as high as thatof the programming language. This means that the only operations on`pointers' (that is, references to processes) are testing forequality and dereferencing. Moreover, in a given state of thesystem, it is only possible to mention the processes that exist inthat state. Processes that have not (yet) been created do not playa role. Soundness and completeness of the logic is proved withrespect to a compositional characterization of the initial/finalstate semantics of programs. This characterization generalizes thecompositional semantics of deterministic Kahn (data-flow) networks(where the number of processes and communication structure isfixed).