Linda (Programmiersprache)

Linda (Programmiersprache)

Linda ist eine Programmiersprache für verteilte Programmierung. Sie wurde Mitte der 80er Jahre von David Gelernter an der Yale-Universität entwickelt.[1]

Konzept

Ziel von Linda ist es, Prozessen einer Anwendung zu erlauben, miteinander zu kommunizieren, ohne identifizierende Information voneinander zu besitzen. Die ursprüngliche Spezifikation von Linda geht von einem Tupelraum (engl. Tuple Space) als einer abstrakten Umgebung aus, die die Basis für Lindas Kommunikationsmodell darstellt. Verschiedene nebenläufige Prozesse eines verteilten Programms kommunizieren über einen gemeinsamen Tupelraum dadurch, dass jeder dieser Prozesse diesem Tupelraum beliebig Tupel hinzufügen und Tupel daraus entfernen kann.

Ein Prozess A lässt einem Prozess B Information zukommen, indem er eine gebündelte Menge von Werten, ein Tupel, im Tupelraum ablegt. Prozess B kann anschließend das Tupel lesen oder es aus dem Tupelraum entfernen, womit der Kommunikationsakt abgeschlossen ist. Der Prozess A benötigt weder einen Namen, eine Adresse oder sonstige identifizierende Information von Prozess B; für Prozess A ist es völlig irrelevant, ob Prozess B oder irgendein beliebiger anderer Prozess, mehrere Prozesse oder kein Prozess das Tupel liest. Derjenige Prozess, der das Tupel des Prozesses A entnimmt, muss nicht einmal zur gleichen Zeit wie Prozess A aktiv sein oder existieren. Das von A generierte Tupel ist von seinem Erzeugerprozess vollkommen unabhängig, das bedeutet, dass Prozess A zum Zeitpunkt der Entnahme seines Tupels durch Prozess B schon lange beendet sein kann.

Die hieraus resultierende zeitliche und aufgrund der Verteilung auch räumliche Entkoppelung ermöglicht einen Entwurf verteilter Protokolle, die flexibel und robust auf die Herausforderungen verteilter Programmierung durch Latenz, erhöhten Synchronisationsaufwand und mögliche Teilausfälle des Systems reagieren können.

Die erste Spezifikation von Linda besaß einen einzigen globalen Tupelraum. Die nahe liegende Erweiterung des Konzepts auf mehrere Tupelräume folgte mit der Spezifikation von Melinda.[2]

Weitere Erweiterungen, beispielsweise um nicht-blockierende Operationen und Stapel-Operationen (bulk operations), folgten 1998.[3]

Implementierungen

Die erste Linda-Implementierung wurde 1984 von Carriero umgesetzt.[4] Eine beträchtliche Anzahl weiterer Implementierungen in unterschiedlichen Programmiersprachen wie Prolog, C, C++ (CppLINDA) oder Java (JavaSpaces) folgten. Die Standardbibliothek (stdlib) von Ruby enthält eine Implementierung namens Rinda.

Quellen

  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 I. T. 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 Gelernter. “Generative communication in linda”. ACM Trans. Program. Lang. Syst., 7 (1): 80–112, 1985.

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Linda — steht für: Linda (Vorname), ein weiblicher Vorname Linda (Waschmittel), eine Waschmittelmarke in der DDR Linda (Zeitschrift), eine niederländische Frauenzeitschrift Linda (Kartoffel), eine Kartoffelsorte Linda (Sängerin), eine russische… …   Deutsch Wikipedia

  • Deklarative Programmiersprache — Die deklarative Programmierung ist ein Programmierparadigma, bei dem die Beschreibung des Problems im Vordergrund steht. Der Lösungsweg wird dann automatisch ermittelt. Zu den deklarativen Programmiersprachen gehören: funktionale Sprachen (z. B.… …   Deutsch Wikipedia

  • Liste der Programmiersprachen — A A (Programmiersprache) A# A+ A 0 A 1 A 2 A 3 A9 AACC AADL AAIMS aal AAPL Aardappel AARDVARK Abacus ABACUS 10 ABACUS/X ABAP ActionScript Ada ADbasic AgentSpeak(L) Agilent VEE AHDL Aleph ALGOL (ALGOL 60, ALGOL W, ALGOL 68) Amber …   Deutsch Wikipedia

  • Evim — Vim Vim Logo Basisdaten Entwickler: Bram Moolenaar und andere Aktuelle Version …   Deutsch Wikipedia

  • Gvim — Vim Vim Logo Basisdaten Entwickler: Bram Moolenaar und andere Aktuelle Version …   Deutsch Wikipedia

  • KVim — Vim Vim Logo Basisdaten Entwickler: Bram Moolenaar und andere Aktuelle Version …   Deutsch Wikipedia

  • Liste von Programmiersprachen — Inhaltsverzeichnis A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A A# A+ …   Deutsch Wikipedia

  • David Gelernter — David Hillel Gelernter (* 5. März 1955) ist ein US amerikanischer Informatiker und Kulturjournalist. Gelernter studierte an der Yale University zunächst Judaistik (Master Abschluss 1977) und wurde 1982 in Informatik an der State University of New …   Deutsch Wikipedia

  • Deklarative Programmierung — Die deklarative Programmierung ist ein Programmierparadigma, bei dem die Beschreibung des Problems im Vordergrund steht. Der Lösungsweg wird dann automatisch ermittelt. Zu den deklarativen Programmiersprachen gehören: funktionale Sprachen… …   Deutsch Wikipedia

  • JavaSpaces — ist eine Spezifikation des Konzepts Object Spaces in der Programmiersprache Java. Ein Object Space ist hierbei ein assoziativer Speicher von verteilten, über das Netz erreichbaren Objekten. Kommunikationspartner (peers) kommunizieren… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”