Linda

У этого термина существуют и другие значения, см. Линда (значения).
Linda
Класс языка язык программирования
Появился в 1985
Автор Дэвид Гелернтер[англ.], Nicholas Carriero
Разработчик Дэвид Гелернтер[вд]

Lindaязык программирования, предназначенный для параллельной обработки данных. При использовании языка Linda прикладной процесс делится на группу процессов, среди которых выделяется главный. Указанные процессы осуществляются одновременно и синхронизированы один относительно другого. Язык предоставляет программистам эффективные средства создания параллельных программ. Ядром языка является пространство кортежей — совокупностей взаимосвязанных данных. Каждая из них содержит ключевое слово для выборки кортежа.

Язык Linda позволяет писать параллельные программы на обычных языках: языке Си, языке Фортран, языке Лисп, дополняя их операциями организации межпроцессорного обмена данными. Важной характеристикой языка Linda является то, что он может использоваться для написания программ, выполняемых на суперкомпьютерах с различной архитектурой. Благодаря тому, что Linda позволяет большой прикладной процесс разбивать на много небольших, это упрощает и распараллеливает этот процесс. Между тем, нужно соблюдать и некоторую осторожность. Если процесс будет разделен на большое число мелких, то теряется много времени на обмен данными между процессами, результатами и получением новых заданий.

Основные операции

В изначальной модели Linda существовало 4 операции для работы над кортежами и пространством кортежей:

  • in атомарно считывает и стирает кортеж из пространства
  • rd неизменяющее чтение кортежа
  • out запись кортежа в пространство кортежей
  • eval порождает новый процесс для обработки кортежей; результат работы процесса будет записан в общее пространство.

Факты

Примечания

  1. Markoff, John (1992-01-19). "David Gelernter's Romance With Linda". The New York Times. Архивировано 22 апреля 2016. Дата обращения: 28 сентября 2017.

Литература

  • N.J. Carriero, D. Gelernter, T.G. Mattson, A.H. Sherman. The Linda Alternative to Message Passing Systems (англ.) // Parallel Computing. — 1994. — Vol. 20, no. 4. — P. 633 -- 655.
  • Carriero, Nicholas and Gelernter, David. How to Write Parallel Programs: A Guide to the Perplexed (англ.) // ACM Comput. Surv.. — ACM, 1989. — Vol. 21, no. 3. — P. 323--357. — ISSN 0360-0300. — doi:10.1145/72551.72553.

Ссылки

  • LINDA INTRODUCTION.
  • Linda for Prolog.
  • Linda for C.
  • Linda for Java.