Соединение-исчисление


Из Википедии, бесплатной энциклопедии
  (Перенаправлено из исчисления соединений )
Перейти к навигации Перейти к поиску

Объединенное исчисление - это исчисление процессов, разработанное в INRIA . Объединенное исчисление было разработано для обеспечения формальной основы для проектирования распределенных языков программирования и поэтому намеренно избегает коммуникационных конструкций, встречающихся в других вычислениях процессов, таких как рандеву , которые трудно реализовать в распределенной среде. [1] Несмотря на это ограничение, объединенное исчисление столь же выразительно, как и полное π-исчисление . Было продемонстрировано кодирование π-исчисления в исчислении соединений и наоборот. [2]

Джойн-исчисление является членом семейства π-исчислений процессных исчислений и по своей сути может рассматриваться как асинхронное π-исчисление с несколькими строгими ограничениями: [3]

  • Ограничение области действия, прием и повторный прием синтаксически объединены в единую конструкцию - определение ;
  • Связь происходит только с определенными именами;
  • Для каждого определенного имени существует ровно один повторный прием.

Однако, как язык программирования, исчисление соединений предлагает по крайней мере одно удобство по сравнению с π-исчислением, а именно использование шаблонов многостороннего соединения , возможность сопоставлять сообщения из нескольких каналов одновременно.

Реализации

Языки, основанные на исчислении соединений

Язык программирования объединенного исчисления - это новый язык, основанный на исчислении процесса объединенного исчисления. Он реализован в виде интерпретатора, написанного на OCaml , и поддерживает статически типизированное распределенное программирование, прозрачную удаленную связь, мобильность на основе агентов и некоторое обнаружение сбоев. [4]

  • Хотя это и не основано явно на исчислении соединений, система правил CLIPS реализует его, если каждое правило удаляет свои входы при срабатывании (убирает соответствующие факты при срабатывании).

Многие реализации объединенного исчисления были сделаны как расширения существующих языков программирования:

  • JoCaml - это версия OCaml, расширенная примитивами объединенного исчисления.
  • Полифонический C # и его преемник расширяют C #
  • MC # и Parallel C # расширяют Polyphonic C #
  • Присоединяйтесь к Java, расширяет Java
  • Предложение Concurrent Basic, использующее исчисление соединений
  • JErlang (J - соединение, erjang - Erlang для JVM) [5]

Встраивания в другие языки программирования

Эти реализации не изменяют базовый язык программирования, но вводят операции исчисления соединения через пользовательскую библиотеку или DSL:

  • Библиотеки ScalaJoins и Chymyst находятся на Scala.
  • JoinH от Эйнара Карттунена и syallop / Join-Language от Сэмюэля Яллопа - это DSL для расчета соединений в Haskell
  • Joinads - различные реализации исчисления соединений в F #
  • CocoaJoin - экспериментальная реализация в Objective-C для iOS и Mac OS X
  • Библиотека Join Python находится в Python 3
  • C ++ через Boost [6] (для ускорения с 2009 г., примерно версия 40, текущая (декабрь 19) - 72).

использованная литература

  1. ^ Седрик Фурнье, Жорж Гонтье (1995). «Рефлексивный ЧАМ и объединенное исчисление» . Цитировать журнал требует |journal=( помощь ) , стр. 1
  2. ^ Седрик Фурнье, Жорж Гонтье (1995). «Рефлексивный ЧАМ и объединенное исчисление» . Цитировать журнал требует |journal=( помощь ) , стр. 2
  3. ^ Седрик Фурнье, Жорж Гонтье (1995). «Рефлексивный ЧАМ и объединенное исчисление» . Цитировать журнал требует |journal=( помощь ) , стр. 19
  4. ^ Седрик Фурне, Жорж Гонтье (2000). «Исчисление соединения: язык распределенного мобильного программирования» . Цитировать журнал требует |journal=( помощь )
  5. ^ "JErlang: Erlang с объединениями" . Архивировано из оригинала на 2017-12-08 . Проверено 18 апреля 2015 .
  6. ^ Yigong Liu - Объединение асинхронной координации сообщений и библиотеки параллелизма

внешние ссылки

  • INRIA, Присоединяйтесь к домашней странице Calculus
  • Microsoft Research, Объединенное исчисление: язык распределенного мобильного программирования
Источник « https://en.wikipedia.org/w/index.php?title=Join-calculus&oldid=1013833107 »