Linda (coordination language)

Linda is a language for distributed programming. It was developed in the mid 1980s by David Gelernter at Yale University.

Concept

Linda target is to enable an application process to communicate to each other without having identifying information. The original specification of Linda expects a tuple space ( engl. tuple space ) as an abstract environment, which is the basis for Linda's communication model. Several concurrent processes in a distributed program to communicate over a common tuple space, characterized in that each of these processes to add this tuple space and can remove any tuple Tuple thereof.

A process A can send information to a process B by, drops a bundled set of values ​​, a tuple in the tuple space. Process B can then read the tuple or remove it from the tuple space, thus the act of communication is complete. The process A does not require a name, address or other identifying information of process B; for process A, it is completely irrelevant whether process B or just any other process, multiple processes, and no process reads the tuple. The one process that removes the tuples of the process A, does not even exist or be active at the same time as process A. The signal generated by A tuple is completely independent of its creator process, which means that process A can be finished for a long time at the time of his removal tuple by process B.

The resulting temporal and spatial decoupling due to the distribution also allows the design of distributed protocols that can respond flexibly and robustly to the challenges of distributed programming by latency, increased synchronization overhead and possible partial failures of the system.

The first specification of Linda had a single global tuple space. The obvious extension of the concept to multiple tuple spaces followed by the specification of Melinda.

Further extensions, for example, non- blocking operations and batch operations (bulk operations), followed in 1998.

Implementations

The first Linda implementation has been implemented by Carriero 1984. A considerable number of other implementations in different programming languages ​​such as Prolog, C, C ( CppLINDA ) or Java ( JavaSpaces ) followed. The standard library ( stdlib ) of Ruby includes an implementation called Rinda.

Swell

  • Programming language
  • Distributed Computing
513714
de