Issue No. 08 - August (1995 vol. 6)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.406962
<p><it>Abstract</it>—This paper proposes extensions of sequential programming languages for parallel programming that have the following features:</p><l2><li><p>Dynamic Structures: The process structure is dynamic. Processes and variables can be created and deleted.</p></li><li><p>Paradigm Integration: The programming notation supports shared memory and message passing models.</p></li><li><p>Determinism: Demonstrating that a program is deterministic_all executions with the same input produce the same output—is straightforward. Programs can be written so that compilers can verify that the programs are deterministic. Nondeterministic constructs can be introduced in a sequence of refinement steps to obtain greater efficiency if required.</p></li></l2><p>The ideas have been incorporated in an extension of Fortran, but the underlying sequential imperative language is not central to the ideas described here. A compiler for the Fortran extension, called Fortran M, is available by anonymous ftp from Argonne National Laboratory. Fortran M has been used for a variety of parallel applications.</p>
parallel programming languages, determinism, functional programming, multicomputers, debugging.
K. M. Chandy and I. Foster, "A Notation for Deterministic Cooperating Processes," in IEEE Transactions on Parallel & Distributed Systems, vol. 6, no. , pp. 863-871, 1995.