Specifying Confluent Processes

We address the problem of specifying concurrent processes that can make local nondeterministic decisions without affecting global system behavior—the sequence of events communicated along each inter-process communication channel. Such nondeterminism can be used to cope with unpredictable execution rates and communication delays. Our model resembles Kahn’s, but does not include unbounded buffered communication, so it is much simpler to reason about and implement. After formally characterizing these so-called confluent processes, we propose a collection of operators, including sequencing, parallel, and our own creation, confluent choice, that guarantee confluence by construction. The result is a set of primitive constructs that form the formal basis of a concurrent programming language for both hardware and software systems that gives deterministic behavior regardless of the relative execution rates of the processes. Such a language greatly simplifies the verification task because any correct implementation of such a system is guaranteed to have the same behavior, a property rarely found in concurrent programming environments.

[1]  Thomas Martyn Parks,et al.  Bounded scheduling of process networks , 1996 .

[2]  A. Sangiovanni-Vincentelli,et al.  Formal analysis of synchronous circuits , 1996 .

[3]  Kees van Berkel,et al.  Handshake Circuits: An Asynchronous Architecture for VLSI Programming , 1993 .

[4]  Jan L. A. van de Snepscheut,et al.  Trace Theory and VLSJ Design , 1985, Lecture Notes in Computer Science.

[5]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[6]  Mark B. Josephs,et al.  An analysis of determinacy using a trace-theoretic model of asynchronous circuits , 2003, Ninth International Symposium on Asynchronous Circuits and Systems, 2003. Proceedings..

[7]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[8]  Mark B. Josephs,et al.  Receptive process theory , 1992, Acta Informatica.

[9]  Marly Roncken,et al.  The VLSI-programming language Tangram and its translation into handshake circuits , 1991, Proceedings of the European Conference on Design Automation..

[10]  Ellen Sentovich,et al.  An Implementation of Constructive Synchronous Programs in POLIS , 2000, Formal Methods Syst. Des..

[11]  Stephen A. Edwards,et al.  SHIM: a deterministic model for heterogeneous embedded systems , 2005, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[12]  Sharad Malik Analysis of cyclic combinational circuits , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[13]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[14]  Paulus Lucassen A denotational model and composition theorems of delay-insentive specifications , 1994 .

[15]  Jan Tijmen Udding,et al.  A formal model for defining and classifying delay-insensitive circuits and systems , 1986, Distributed Computing.

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

[17]  Martin Rem,et al.  VLSI Programming of Asynchronous Circuits for Low Power , 1995 .

[18]  Rüdiger Reinecke,et al.  Hoares Communicating Sequential Processes: Erweiterung des Spurenmodells , 1985 .

[19]  Scott F. Smith,et al.  Correct Compilation of Specifications to Deterministic Asynchronous Circuits , 1993, CHARME.

[20]  Scott F. Smith,et al.  Correct compilation of specifications to deterministic asynchronous circuits , 1993, Formal Methods Syst. Des..

[21]  Nancy A. Lynch,et al.  A Proof of the Kahn Principle for Input/Output Automata , 1989, Inf. Comput..

[22]  M. B. Josephs,et al.  An overview of D-I algebra , 1993, [1993] Proceedings of the Twenty-sixth Hawaii International Conference on System Sciences.

[23]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.