User Tools

Site Tools


paradigms

Concurrency paradigms

Parallel Programming Models and Paradigms

Shared variables

E.W. Dijkstra. Cooperating Sequential Processes. EWD 123. 1968.

Languages that exploit shared variables include Java.

Synchronous message passing

C.A.R. Hoare. Communicating Sequential Processes . Communications of the ACM, 21(8):666-677, August 1978.

Widely referred as CSP.

Languages that exploit synchronous message passing include Occam and Ada.

Asynchronous message passing

Languages that exploit asynchronous message passing include Pict and Erlang.

Relavent information: Kahn process networks (KPN) and Synchronous data flow (SDF)

An introduction to Pict.

Concurrent constraint programming

An example of a language that exploits this paradigm is ccp - concurrent constraint programming language.

Jo , Oz and Mozart are examples of concurrent constraint programming language.

Jo: A Concurrent Constraint Programming Language

Object-Oriented Concurrent Constraint Programming in Oz

One extension of this language has also been introduced with temporal/timed constraints and is called tccp - timed concurrent constraint programming language. The motivation was to use this language in real-time/reactive systems.

Introduced by F.S. de Boer et al.

A Timed Concurrent Constraint Language - DOI: http://dx.doi.org/10.1006/inco.1999.2879

Coordination Model

Languages that exploit coordination model include Linda.

Coordination Langauges and their Significance http://www.caip.rutgers.edu/~virajb/readinglist/coordinationlang.pdf Communications of the ACM(1992),Carriero Nicholas

Wells, George. Coordination Languages: Back to the Future with Linda. Rhodes University. http://wcat05.unex.es/Documents/Wells.pdf

Design of a Linda Kernel using Causal Multicast

Actor Model

The Actor Model originated in a 1973 paper http://dli.iiit.ac.in/ijcai/IJCAI-73/PDF/027B.pdf introduced by Carl Hewitt, Peter Bishop, and Richard Steiger.

Languages imploying the Actor Model include: Act 1, 2 and 3, E programming language, Erlang, Gambit-C (with Termite), Io language, Ptolemy Project, Rebeca Modeling Language, SALSA, Scala, ABCL/1, ABCL/f, Acore.

Promise pipelining

Promise refers to an object that acts as a proxy for a result that is initially not known, usually because the computation of its value has not yet completed.

It was introduced in 1977 in a paper by Henry Baker and Carl Hewitt: Laws for Communicating Parallel Processes.

Languages also supporting promise pipelining include: Joule and E

paradigms.txt · Last modified: 2007/09/18 18:46 by niloo59