Linda (Programmiersprache)

Transcrição

Linda (Programmiersprache)
10.12.12
Linda (Programmiersprache) – Wikipedia
Linda (Programmiersprache)
aus Wikipedia, der freien Enzyklopädie
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
(http://sourceforge.net/projects/cpplinda) ) oder Java (JavaSpaces) folgten. Die Standardbibliothek (stdlib) von
Ruby enthält eine Implementierung namens Rinda (http://ruby-doc.org/stdlib/libdoc/rinda/rdoc/index.html) .
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.
de.wikipedia.org/wiki/Linda_(Programmiersprache)
1/2
10.12.12
Linda (Programmiersprache) – Wikipedia
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.
Von „http://de.wikipedia.org/w/index.php?title=Linda_(Programmiersprache)&oldid=80963084“
Kategorien: Programmiersprache Verteiltes Rechnen
Diese Seite wurde zuletzt am 1. November 2010 um 02:13 Uhr geändert.
Abrufstatistik
Der Text ist unter der Lizenz „Creative Commons Attribution/Share Alike“ verfügbar; zusätzliche
Bedingungen können anwendbar sein. Einzelheiten sind in den Nutzungsbedingungen beschrieben.
Wikipedia® ist eine eingetragene Marke der Wikimedia Foundation Inc.
2/2

Documentos relacionados