Much of my work for the past several years has centered around the study of a particular paradigm for parallel computing, called ``dataflow networks.'' Such networks consist of a collection of concurrently and asynchronously executing processes that communicate by sending messages over FIFO channels. ``Determinate'' dataflow networks are those in which each process computes a function from inputs to outputs; the behavior of such networks has been fairly well understood for some time. Of greater current research interest are the less well-understood ``indeterminate'' networks, in which processes need not compute functions. One topic I have investigated concerns the power of indeterminate dataflow networks to perform various computational tasks, such as the merging of two input sequences into a single output sequence. Another area I have investigated is concerned with finding compositional semantics for indeterminate networks, which nicely generalize the classical denotational semantics (based on continuous functions between domains of ``streams'') for determinate networks.
Recently, I have been trying to bring research on dataflow networks into closer contact with mainstream work in concurrency theory; in particular, with Milner's Calculus of Communicating Systems (CCS). Towards this end, I have designed a formal calculus for dataflow networks with uninterpreted processes, with a structured operational semantics in the CCS style. I have investigated a bisimulation-based equivalence for this calculus, and have proved the soundness and completeness of an equational axiomatization.