ArticleslgStudy

science

Linda (coordination language)

Linda (coordination language) is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Linda (coordination language) rather than just read about it. In short: In computer science, Linda is a coordination model that aids communication in parallel computing environments. Developed by David Gelernter, it is meant to be used alongside a full-fledged computation language like Fortran or C where Linda's role is to "create computational activities and to support communication among them".

Key takeaways

  • Linda (coordination language) belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Linda (coordination language) to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Linda (coordination language) from memory before moving on to harder problems.

Reference excerpt

In computer science, Linda is a coordination model that aids communication in parallel computing environments. Developed by David Gelernter, it is meant to be used alongside a full-fledged computation language like Fortran or C where Linda's role is to "create computational activities and to support communication among them".

History David Gelernter wrote the first version of Linda as a Ph.D. candidate in 1979, naming it after Linda Lovelace, who appeared in the pornographic film Deep Throat. At the time, the main language for parallel processing was Ada (named for the unrelated Ada Lovelace), which Gelernter considered an "inelegant and bulky" language. It was widely released in 1986, when Gelernter, along with his Yale colleague Nicholas Carriero and Sudhir Ahuja at AT&T Bell Laboratories, published "Linda and Friends" in an IEEE journal. By the early 1990s, Linda was widely used by corporations to more efficiently conduct big data analyses, including Wall Street brokerages as well as AT&T, Boeing, and United Technologies. There were even companies that specialized in creating specialized parallel computing applications based on Linda, the largest of which was Scientific Computing Associates, a New Haven-based company founded by several Yale computer scientists (Gelernter occasionally consulted for them but did not work there). Interest in Linda dropped in the mid-1990s, only to make a comeback in the late 1990s with several corporations implementing Linda in Java, including Sun Microsystems and IBM.

Overview

Model The Linda model provides a distributed shared memory, known as a tuple space because its basic addressable unit is a tuple, an ordered sequence of typed data objects; specifically in Linda, a tuple is a sequence of up to 16 typed fields enclosed in parentheses. The tuple space is "logically shared by processes" which are referred to as workers that store and retrieve tuples.

Operations One of Linda's main advantages is simplicity, with only six operations that workers perform on the tuples to access tuplespace:

out: Puts a tuple into the tuplespace in: Takes out a tuple that matches a given pattern from the tuplespace (if there's no match, the operation is blocked) rd: Copies a tuple that matches a given pattern from the tuplespace (if there's no match, the operation is blocked) eval: Creates a new process to evaluate tuples inp: A non-blocking version of in (if there's no match, an error message is returned) rdp: A 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.

Linda-calculus The Linda-calculus is a formalisation of the above model with the difference that in the following o u t e v a l {\displaystyle \mathrm {outeval} } subsumes both out and eval operations.

Syntax We abstract the concrete representation of tuples. We just assume that we have a set of tuples t ∈ T {\displaystyle t\in {\mathcal {T}}} and we are allowed to form and apply a substitution function σ {\displaystyle \sigma } on tuples substituting variables for terms that yields a tuple. For example, given we have a tuple t = ( h e l l o , x ) {\displaystyle t=({\mathit {hello}},x)} , then applying a substitution σ = { w o r l d / x } {\displaystyle \sigma =\{{\mathit {world}}/x\}} on t {\displaystyle t} yields ( h e l l o , w o r l d ) {\displaystyle ({\mathit {hello}},{\mathit {world}})}

The Linda-calculus processes are defined by the following grammar.

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with Linda (coordination language)

Start with the simplest possible case. Write down what Linda (coordination language) claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Linda (coordination language) before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Linda (coordination language) ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Linda (coordination language)

In research
Linda (coordination language) appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Linda (coordination language) in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Linda (coordination language) is common in secondary-school and first-year university syllabi. It links to neighbouring topics Concurrent programming languages, Programming languages, so understanding it makes those chapters shorter.
In everyday life
Look for Linda (coordination language) outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Linda (coordination language)” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Linda (coordination language) in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Linda (coordination language) means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Linda (coordination language) out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Linda (coordination language) in simple terms?

In computer science, Linda is a coordination model that aids communication in parallel computing environments. Developed by David Gelernter, it is meant to be used alongside a full-fledged computation language like Fortran or C where Linda's role is to "create computational activities and to suppor…

Why does Linda (coordination language) matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Linda (coordination language)?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Linda (coordination language).

Tags

  • Concurrent programming languages
  • Programming languages

Keep exploring