2015 20th International Conference on Engineering of Complex Computer Systems (ICECCS) (2015)
Gold Coast, Australia
Dec. 9, 2015 to Dec. 12, 2015
Communication-centered programming is one of the most challenging programming paradigms. Development of modern software applications requires expressive mechanisms to specify and verify the communications between different parties. In the last decade, many works have used session types to characterize the various aspects of structured communications. Different from session types, we propose a novel session logic with disjunctions to specify and verify the implementation of communication protocols. Our current logic is based on only twoparty channel sessions, but it is capable of handling delegation naturally through the use of higher-order channels. Due to our use of disjunctions to model both internal and external choices, we rely solely on conditional statements to support such choices, as opposed to specialized switch constructs in prior proposals. Furthermore, since our proposal is based on an extension of separation logic, it also supports heap-manipulating programs and copyless message passing. We demonstrate the expressivity and applicability of our logic on a number of examples.
Protocols, Proposals, Switches, Message passing, Safety, Contracts, Message systems
F. Craciun, T. Kiss and A. Costea, "Towards a Session Logic for Communication Protocols," 2015 20th International Conference on Engineering of Complex Computer Systems (ICECCS), Gold Coast, Australia, 2015, pp. 140-149.