Linda (programming language)

from Wikipedia, the free encyclopedia

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

concept

The aim of Linda is to allow processes of an application to communicate with one another without having identifying information from one another. 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. Different concurrent processes of a distributed program communicate via a common tuple space in that each of these processes can add any tuples to this tuple space and remove tuples from it.

A process A provides a process B with information by storing 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, completing the act of communication. Process A does not need a name, an address or other identifying information from process B; for process A it is completely irrelevant whether process B or any other process, multiple processes, or no process reads the tuple. The process that takes the tuple from process A does not even have to be active or exist at the same time as process A. The tuple generated by A is completely independent of its creation process, which means that process A may have ended a long time at the time its tuple is extracted by process B.

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

Linda's first specification had a single global tuple space. The obvious extension of the concept to several tuple spaces followed with the specification of Melinda.

Further expansions, such as non-blocking operations and bulk operations , followed in 1998.

Implementations

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

Web links

swell

  1. David Gelernter, Nicholas Carriero, Sarat Chandran, and Silva Chang. “Parallel programming in linda”. In International Conference on Parallel Processing , pages 255-263, 1985.
  2. Susanne Hupfer. Melinda: Linda with multiple tuple spaces , 1990.
  3. Antony IT Rowstron and Alan Wood. "Solving the linda multiple rd problem using the copy-collect primitive". Science of Computer Programming , 31 (2-3): 335-358, 1998.
  4. David Learned. “Generative communication in linda”. ACM Trans. Program. Long. Syst. , 7 (1): 80-112, 1985.