Linda is a *(programming language) from David Gelernter at Yale for parallel programming. The main idea is decoupling communication from effective presence of communicating agents by defining a global tuple space where agents may publish tuples. Tuples are persistently retained in the space, and are freely accessible by all the agents, which have primitives to read and extract tuples from the space by _(pattern-matching). The idea seems nice, but it's basically a very very particular case of what the _(pi calculus) in its asynchronous variant allows. The original Linda semantics has been proved underspecified by Busi, Gorriero and Zavattaro at University of Bologna, as it is not clearly stated whether the emitting agent may continue before the tuple becomes visible to other agents, or not. The difference is meaningful since the first semantics (named unordered) is not Turing-complete, while the second (named ordered) is.

Many implementations are available of the Linda _(paradigm), named "generative communication". The most relevant are IBM's TSpaces and Sun's JavaSpaces, in Java. The latter is also integrated in Jini. These also introduce reactive operations, whose semantics has been investigated at University of Bologna. Many extensions have been proposed to overcome the limits of having a global shared dataspace, like KLAIM and Lime. These introduce multiple tuple spaces and primitives for distributed tuple access (KLAIM) and transient sharing (Lime).

<ul class="links">
<li>_(The Linda Group|http://www.cs.yale.edu/Linda/linda.html) at Yale</li>
<li>_(TSpaces|http://www.almaden.ibm.com/cs/TSpaces/)</li>
<li>_(JavaSpaces|http://java.sun.com/products/javaspaces/)</li>
<li>_(Gianluigi Zavattaro|http://www.cs.unibo.it/~zavattar/)'s home page, with papers on the formal semantics of Linda-like languages</li>
<li>_(KLAIM|http://music.dsi.unifi.it/klaim.html) is a Kernel Language for Agent Interaction and Mobility</li>
<li>_(Lime|http://lime.sourceforge.net/) is Linda In a Mobile Environment. Homonymous tuple spaces at communicating agents are transiently shared, and emitted tuple can be delivered to specific agents as they become reachable. Reactive primitives are available</li>
<li>_(LighTS|http://lights.sourceforge.net) is a lightweight, fast, extensible and minimal implementation of the Linda tuple space idea, first created for Lime.</li>
</ul>
