Присоединиться к Java

редактировать
Присоединиться к Java
Paradigm Procedural, Reflective
Разработано G. Стюарт фон Ицштейн
Впервые появился2000 (2000)
Веб-сайтjoinjava.unisa.edu.au
Испытал влияние
Java

Присоединиться к Java язык программирования, основанный на шаблоне соединения, который расширяет стандартный язык программирования Java семантикой соединения исчисления соединения. Он был написан доктором фон Ицштейном в Университете Южной Австралии в Лаборатории реконфигурируемых вычислений.

Содержание
  • 1 Характеристики языка
    • 1.1 Методы соединения
    • 1.2 Модификаторы порядка
    • 1.3 Асинхронные методы
  • 2 Связанные языки
  • 3 Ссылки
  • 4 Внешние ссылки
Характеристики языка

Расширение Java Join представляет три новых языковых конструкции:

  • Методы соединения
  • Асинхронные методы
  • Модификаторы класса Order для определения порядка сопоставления шаблонов

Параллелизм в большинстве популярных языков программирования реализуется с использованием таких конструкций, как семафоры и мониторы. Появляются библиотеки (такие как библиотека параллелизма Java JSR-166), которые обеспечивают семантику параллелизма более высокого уровня. Взаимодействующие последовательные процессы (CSP), исчисление коммуникационных систем (CCS) и Pi имеют поведение синхронизации более высокого уровня, неявно определяемое посредством композиции событий на интерфейсах параллельных процессов. Исчисление соединений, напротив, имеет явную синхронизацию, основанную на локализованном соединении событий, определенных как правила сокращения. Семантика соединения пытается предоставить явные выражения синхронизации, не нарушая объектно-ориентированную идею модульности, включая динамическое создание и уничтожение процессов и каналов.

Язык Java Join может выражать практически все опубликованные шаблоны параллелизма без явного обращения к вызовам монитора низкого уровня. В общем, программы Java Join более лаконичны, чем их эквиваленты на Java. Накладные расходы, вносимые в Join Java выражениями более высокого уровня, полученными из исчисления Join, управляемы. Выражения синхронизации, связанные с мониторами (ожидание и уведомление), которые обычно находятся в теле методов, могут быть заменены выражениями Java Java (методы соединения), которые составляют часть сигнатуры метода.

Методы соединения

Метод соединения определяется двумя или более фрагментами соединения. Метод соединения будет выполняться после того, как будут вызваны все фрагменты шаблона соединения. Если возвращаемый тип является стандартным типом Java, тогда ведущий фрагмент будет блокировать вызывающую сторону до тех пор, пока шаблон соединения не будет завершен и метод не будет выполнен. Если тип возврата имеет тип signal, тогда начальный фрагмент вернется немедленно. Все завершающие фрагменты асинхронны, поэтому вызывающий объект не будет заблокирован.

Пример:

class JoinExample {int fragment1 () fragment2 (int x) {// вернет значение x // вызывающему фрагмент1 return x; }}

Модификаторы порядка

Фрагменты соединения могут повторяться в нескольких шаблонах соединения, поэтому может быть случай, когда несколько шаблонов соединения завершаются при вызове фрагмента. Такой случай может произойти в примере ниже, если вызываются B (), C () и D (), затем A (). Последний фрагмент A () завершает три шаблона, поэтому есть три возможных метода, которые могут быть вызваны. Модификатор класса orders используется здесь, чтобы определить, какой метод Join будет вызываться. По умолчанию и при использовании модификатора класса неупорядоченный один из методов выбирается случайным образом. С модификатором заказанный методы получают приоритет в соответствии с порядком их объявления.

Пример:

класс упорядочен SimpleJoinPattern {void A () B () {} void A () C () {} void A () D () {} signal D () E () {}}

Асинхронные методы

Асинхронные методы определяются с использованием возвращаемого типа signal. Он имеет те же характеристики, что и тип void, за исключением того, что метод вернется немедленно. Когда вызывается асинхронный метод, создается новый поток для выполнения тела метода.

Пример:

class ThreadExample {сигнальный поток (SomeObject x) {// этот код будет выполняться в новом потоке}}
Родственные языки

Полифонический C-диез ближайший родственный язык.. преемник полифонического до-диеза.

язык расширен. Присоединитесь к Java для реализации аппаратной семантики. Этот язык расширил семантику Join Java на приложения FPGA.

Ссылки
  • фон Итцштейн, Г. Стюарт. и Ясюнас, М. (2003). О реализации высокоуровневого параллелизма в Java. Достижения в архитектуре компьютерных систем 2003, Aizu Japan, Springer Verlag.
  • von Itzstein, G, Stewart. и Д. Кирни (2002). Приложения Join Java. Труды седьмой Азиатско-Тихоокеанской конференции по архитектуре компьютерных систем ACSAC'2002. Мельбурн, Австралия, Австралийское компьютерное общество: 1-20.
  • фон Ицштейн, G, Стюарт. и Д. Кирни (2004). Выражение общих шаблонов параллелизма в Java Join. Международная конференция по методам и приложениям параллельной и распределенной обработки, Лас-Вегас.
  • Хопф, Дж., Фон Ицштейн, Дж., Стюарт и др. (2002). Оборудование присоединяется к Java: язык высокого уровня для разработки реконфигурируемого оборудования. Международная конференция по программируемым технологиям, Гонконг.
Внешние ссылки
Последняя правка сделана 2021-05-25 03:13:50
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте