Легкость (язык программирования)
Парадигмы | Параллельные , взаимодействующие последовательные процессы |
---|---|
Разработано | Стивен Эрикссон-Зенит |
Впервые появился | 1991 год |
Дисциплина набора текста | Сильный |
Платформа | Параллельно |
Под влиянием | |
оккам |
Ease общего назначения — язык параллельного программирования . Он разработан Стивеном Эрикссоном-Зенитом, исследователем Йельского университета , Института передовых наук и техники в Силиконовой долине, Калифорния, Высшей национальной горной школы Парижа и Университета Пьера и Марии Кюри , научного факультета Сорбонна . [ 1 ]
Книга « Модели взаимодействия процессов» представляет собой спецификацию языка Ease. Ease объединяет конструкции процессов взаимодействия последовательных процессов (CSP) с логически разделяемыми структурами данных, называемыми контекстами . Контексты — это параллельные типы данных, которые создаются процессами и обеспечивают способ взаимодействия процессов.
Язык включает два конструктора процессов.
Кооперация включает явную барьерную синхронизацию и записывается:
Если один процесс завершается раньше другого, он будет ждать завершения других процессов.
Подчинение контексты создает процесс, который совместно использует , находящиеся в области действия при создании, и завершается после завершения (он не ожидает других процессов) и записывается:
Подчиненные процессы останавливаются, если они пытаются взаимодействовать с контекстом , который завершился из-за остановки родительского процесса. Это позволяет создавать спекулятивные процессы, которые завершатся, если их результат не понадобится.
Мощный синтаксис репликации позволяет создавать несколько процессов. Например,
создает n синхронизированных процессов, каждый из которых имеет локальную константу i .
Процессы не могут совместно использовать локальные переменные и сотрудничать при создании общих контекстов. Определенные типы контекста, называемые ресурсами , обеспечивают семантику ответа на вызов.
В контекстах есть четыре функции:
- read (контекст, переменная) — копирует значение из общего контекста в переменную .
- write (контекст, выражение) — копирует значение выражения в общий контекст .
- put (context,name) — перемещает значение, привязанное к имени , в общий контекст . Значение name впоследствии становится неопределенным .
- get (context,name) — перемещает значение из контекста и привязывает его к name . Значение удаляется из контекста.
Типы контекста — Singletons , Bags или Streams и могут быть индексированными массивами.
Легкость имеет семиотическое определение . Это означает, что он учитывает влияние языка на программистов и на то, как они разрабатывают алгоритмы. Язык был разработан для облегчения разработки параллельных программ.
Ссылки
[ редактировать ]- ^ Эрикссон-Зенит, Стивен (1 июля 2011 г.) [июль 1992 г.]. Модели взаимодействия процессов . Сиэтл, Вашингтон, США: Независимая издательская платформа CreateSpace. ISBN 978-1463777913 .
Библиография
[ редактировать ]- Джон Редман, Реализация языка программирования Ease, Университет Западной Австралии, 1991 г.
- Т.Х. Маккензи, Т.И. Дикс, «Многопроцессорная реализация C-with-Ease с распределенной памятью», Международная конференция IEEE по параллельным и распределенным системам, 2002 г.
- Т.Х. Маккензи, Т.И. Дикс, «Объектно-ориентированные параллельные примитивы на основе Ease в C++», icpads, стр. 623, 1998 г. Международная конференция по параллельным и распределенным системам (ICPADS'98), 1998 г.