Present concurrent languages do not support any form of
analysis of the communication structure of programs.
To support high level specification and analysis of distributed
systems, we propose two new constructs- {\em handshake} and {\em unit}.
The handshake construct
is a remote procedure call generalized for multiple
parties. The unit construct restricts the
possible calls to various handshake procedures, and thereby provides a
synchronization mechanism. These constructs are part of
a formal model called the Decomposed Petri Net
(DPN), which lends itself to
automatic analysis. The current system
called ConC(Concurrent C) extends "C" for concurrent programming and
runs on a Sun cluster under Unix 4.2 BSD.