non-blocking version of rd (if there's no match, an error message is returned) Comparison Compared to other parallel-processing models, Linda is more orthogonal in treating process coordination as a separate activity from computation, and it is more general in being able to subsume various levels of concurrency—uniprocessor, multi-threaded multiprocessor, or networked—under a single model. Its orthogonality allows processes computing in different languages and platforms to interoperate using the same primitives. Its generality allows a multi-threaded Linda system to be distributed across multiple computers without change. Whereas message-passing models require tightly coupled processes sending messages to each other in some sequence or protocol, Linda processes are decoupled from other processes, communicating only through the tuplespace; a process need have no notion of other processes except for the kinds of tuples consumed or produced. Criticisms of Linda from the multiprocessing community tend to focus on the decreased speed of operations in Linda systems as compared to Message Passing Interface (MPI) systems. While not without justification, these claims were largely refuted for an important class of problems. Detailed criticisms of the Linda model can also be found in Steven Ericsson-Zenith's book Process Interaction Models. Researchers have proposed more primitives to support different types of communication and co-ordination between (open distributed) computer systems, and to solve particular problems arising from various uses of the model. Researchers have also experimented with various means of implementing the virtual shared memory for this model. Many of these researchers proposed larger modifications to the original Linda model, developing a family of systems known as Linda-like systems and implemented as orthogonal technology (unlike original version). An example of this is the language Ease designed by Steven Ericsson-Zenith. Linda's approach has also been compared to that of flow-based programming. Coordination Language - A small discussion about the differences between the approach of Linda and that of Flow-based programming Linda-calculus The Linda-calculus is a formalisation of the above model with the difference that in the following subsumes both out and eval operations. Syntax We abstract the concrete representation of tuples. We just assume that we have a set of tuples and we are allowed to form and apply a substitution function on tuples substituting variables for terms that yields a tuple. For example, given we have a tuple , then applying a substitution on yields The Linda-calculus processes are defined by the following grammar. The syntax includes the aftermentioned Linda operations,