Join-calculus

Join-calculus

The join-calculus is a process calculus developed at INRIA. The join-calculus was developed to provide a formal basis for the design of distributed programming languages, and therefore intentionally avoids communications constructs found in other process calculi, such as rendezvous communications, which are difficult to implement in a distributed setting [cite paper | author=Cedric Fournet, Georges Gonthier | title=The reflexive CHAM and the join-calculus | date = 1995 | url=http://citeseer.ist.psu.edu/fournet95reflexive.html, pg. 1] . Despite this limitation, the join-calculus is equally as expressive as the full pi-calculus. Encodings of the pi-calculus in the join-calculus, and vice-versa, have been demonstrated [cite paper | author=Cedric Fournet, Georges Gonthier | title=The reflexive CHAM and the join-calculus | date = 1995 | url=http://citeseer.ist.psu.edu/fournet95reflexive.html, pg. 2] .

The join-calculus is a member of the pi-calculus family of process calculi, and can be considered, at its core, an asynchronous pi-calculus with several strong restrictions [cite paper | author=Cedric Fournet, Georges Gonthier | title=The reflexive CHAM and the join-calculus | date = 1995 | url=http://citeseer.ist.psu.edu/fournet95reflexive.html, pg. 19] :
*Scope restriction, reception, and replicated reception are syntactically merged into a single construct, the "definition";
*Communication occurs only on defined names;
*For every defined name there is exactly one replicated reception.However, as a language for programming, the join-calculus offers at least one convenience over the pi-calculus — namely the use of "multi-way join patterns", the ability to match against messages from multiple channels simultaneously.

Languages based on the join-calculus

The join-calculus programming language is based on the join-calculus process calculus. It is implemented as an interpreter written in OCaml, and supports statically typed distributed programming, transparent remote communication, agent-based mobility, and failure-detection [cite paper | author=Cedric Fournet, Georges Gonthier | title=The Join Calculus: A Language for Distributed Mobile Programming | date = 2000 | url=http://citeseer.ist.psu.edu/670457.html] .

JoCaml is a version of OCaml extended with join-calculus primitives.

Polyphonic C# and its successor Cω extend C#. MC# extends Polyphonic C# and also devoted to .NET.
Join Java extends Java.

The [http://channel.sourceforge.net/ Boost.Join] library is an implementation in C++.

References

External links

* INRIA, [http://moscova.inria.fr/join/index.shtml Join Calculus homepage]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Join-calculus (programming language) — In computer science, the join calculus is a programming language based on the identically named join calculus process calculus. It is implemented as an interpreter written in Ocaml, and supports statically typed distributed programming,… …   Wikipedia

  • Join Java — is a programming language that extends the standard Java programming language with the Join Semantics of the Join Calculus. It was written at the University of South Australia within the Reconfigurable Computing Lab by Dr. Von Itzstein. Language… …   Wikipedia

  • Calculus (disambiguation) — Calculus is Latin for pebble, and has a number of meanings in English: In mathematics and computer science Calculus , in its most general sense, is any method or system of calculation. To modern theoreticians the answer to the question what is a… …   Wikipedia

  • Join — may refer to: * Join (law), to include additional counts or additional defendants on an indictment * Join (mathematics), a least upper bound in lattice theory * Join (relational algebra), a type of binary operator * Join (SQL), a SQL and… …   Wikipedia

  • Calculus — This article is about the branch of mathematics. For other uses, see Calculus (disambiguation). Topics in Calculus Fundamental theorem Limits of functions Continuity Mean value theorem Differential calculus  Derivative Change of variables …   Wikipedia

  • Pi-calculus — In theoretical computer science, the pi calculus is a process calculus originally developed by Robin Milner, Joachim Parrow and David Walker as a continuation of work on the process calculus CCS (Calculus of Communicating Systems). The aim of the …   Wikipedia

  • π-calculus — In theoretical computer science, the π calculus (or pi calculus) is a process calculus originally developed by Robin Milner, Joachim Parrow and David Walker as a continuation of work on the process calculus CCS (Calculus of Communicating Systems) …   Wikipedia

  • Relational calculus — consist of two calculi, the tuple relational calculus and the domain relational calculus, that are part of the relational model for databases and provide a declarative way to specify database queries. This in contrast to the relational algebra… …   Wikipedia

  • List of programming languages by category — Programming language lists Alphabetical Categorical Chronological Generational This is a list of programming languages grouped by category. Some languages are listed in multiple categories. Contents …   Wikipedia

  • Actor model and process calculi — In computer science, the Actor model and process calculi are two closely related approaches to the modelling of concurrent digital computation. See Actor model and process calculi history.There are many similarities between the two approaches,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”