Соединительное исчисление

редактировать

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

Исчисление соединений является членом π-исчисления семейства процессов исчислений, и можно рассматривать, по своей сути, как асинхронное π-исчисление с несколькими строгими ограничениями:

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

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

Содержание
  • 1 Реализации
    • 1.1 Языки, основанные на исчислении соединений
    • 1.2 Встраивания в другие языки программирования
  • 2 Ссылки
  • 3 Внешние ссылки
Реализации

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

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

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

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

  • JoCaml - это версия OCaml, расширенная примитивами объединенного исчисления
  • Polyphonic C # и его преемником extend C#
  • MC # и Parallel C # extension Polyphonic C #
  • Join Java extends Java
  • Предложение Concurrent Basic, в котором используется метод Join-исчисления
  • JErlang (J для соединения, erjang для JVM)

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

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

  • Библиотеки ScalaJoins и Chymyst находятся в Scala
  • JoinHs Эйнара Карттунена и syallop / Join-Language Самуэля Yallop - это DSL для вычисления соединения в Haskell
  • Joinads - различные реализации вычисления соединения в F#
  • CocoaJoin - экспериментальная реализация в Objective-C для iOS и Mac OS X
  • Библиотека Join Python находится в Python 3
  • C ++ через Boost (для повышения с 2009 г., ок. v. 40, текущий (декабрь 19) - 72).
Ссылки
  1. ^Седрик Фурне, Жорж Гонтье (1995). «Рефлексивный ЧАМ и объединенное исчисление». Журнал цитирования требует | journal =(), стр. 1
  2. ^Седрик Фурне, Жорж Гонтье (1995). «Рефлексивный ЧАМ и объединенное исчисление». Журнал цитирования требует | journal =(), pg. 2
  3. ^Седрик Фурне, Жорж Гонтье (1995). «Рефлексивный ЧАМ и объединенное исчисление». Журнал цитирования требует | journal =(), pg. 19
  4. ^Седрик Фурне, Жорж Гонтье (2000). «Исчисление соединений: язык распределенного мобильного программирования». Для цитирования журнала требуется | journal =()
  5. ^«JErlang: Erlang с объединениями». Архивировано из оригинала 08.12.2017. Проверено 18.04.2015.
  6. ^Yigong Liu - Асинхронная библиотека для координации сообщений и параллелизма с присоединением
Внешние ссылки
Последняя правка сделана 2021-05-25 03:13:44
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте