Behavioral Contracts for Concurrent and Message-Passing Programs
Welcome to the home page of the Behave! project, a research effort within the Software Productivity Tools Research group at Microsoft Research, on checking behavioral properties of concurrent, message-passing programs. This page contains information about:
Background and approach
Concurrent, asynchronous, message-passing programming is becoming increasingly important. However, such programs are notoriously hard to design and test. The goal of the Behave! project is to build tools for checking behavioral properties (like deadlock freedom, invariant checking, message understood properties) of asynchronous message-passing programs. We want to do this by directly analyzing source code written in an asynchronous programming language.
In hardware and protocol design, behavioral properties are checked by manually constructing models of the system as communicating finite state machines, and using a model checker to algorithmically explore the state space of the model. Three main issues arise when applying model checking to distributed message-passing software:
Our general approach is to use a behavioral type system, both
for specifying properties and for directing the extraction of models from the source code.
Using behavioral type specifications, or contracts, model checking is performed compositionally.
In the most general form,
types are CCS processes, and subtyping is a simulation relation on CCS
processes, as exemplified in
our behavioral type theory for the Pi-calculus.
People The people involved in the
Behave! project are: Papers
model checking: we rely on
research and technology from the Zing project
at MSR, which develops a state-of-the-art-and-beyond concurrent software model checker.
Links to papers and technical reports from the Behave! project:
Copyright notice:
These papers have been accepted for publication, and the copyright of each paper has been transferred to the publisher of the conference/journal in which that paper will appear. Copyright is retained by the publisher, notwithstanding that these works are offered here electronically. It is understood that all persons copying this information will adhere to the terms and constraints invoked by each publisher's copyright, as stated in the copyright notice on each preprint. In particular, these works may not be further duplicated or reposted without the explicit permission of the copyright holder.
To appear, Proceedings CAV 04,
16th International Conference on
Computer Aided Verification, Boston, USA, July 2004.
Abstract
Cedric Fournet, Tony Hoare, Sriram K. Rajamani and Jakob Rehof
Microsoft Research Technical Report, February 2004.
Abstract
Sriram K. Rajamani and Jakob Rehof
Proceedings CAV 02, International
Conference on Computer Aided Verification
Abstract
Sagar Chaki, Sriram K. Rajamani and Jakob Rehof
Proceedings POPL 02, 29th Annual ACM SIGPLAN - SIGACT Symposium on
Principles of Programming Languages,
Portland, January 16-18, 2002.
Abstract
Sagar Chaki, Sriram K. Rajamani and Jakob Rehof
Microsoft Research Technical Report, MSR-TR-2001-71, August 2001.
A conference paper based on this report is to appear in Proceedings POPL 2002.
Abstract
Sriram K. Rajamani and Jakob Rehof
Proceedings SAS 01, Static Analysis Symposium, Paris, France,
July 2001. Springer LNCS 2126, 375-394.
Abstract
Talks
Talks related to the Behave! project: