Пи-исчисление: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
дополнение
→‎Применение: дополнение
Строка 79: Строка 79:
== Применение ==
== Применение ==
<math>\pi</math>-исчисление — один из наиболее популярных формализмов в сообществе [[BPM (управленческая концепция)|управления бизнес-процессами (BPM)]]. Например, популярная литература утверждает (и подвергается критике<ref>{{cite web|author=W.M.P. van der Aalst|title=Pi calculus versus Petri nets: Let us eat “humblepie” rather than further inflate the “Pi hype”|url=http://www.workflowpatterns.com/documentation/documents/pi-hype.pdf}}</ref>{{sfn|Havey|2005}}), что [[XLANG]], [[WSCI]], [[BPML]], [[BPEL]] и [[WS-CDL]] основаны на этом исчислении. По крайней мере, свойства <math>\pi</math>-исчисления — порядок вычисления, связи на основе сообщений, мобильность ({{lang-en|mobility}}) — могут служить основой для языков BPM{{sfn|Havey|2005}}.
<math>\pi</math>-исчисление — один из наиболее популярных формализмов в сообществе [[BPM (управленческая концепция)|управления бизнес-процессами (BPM)]]. Например, популярная литература утверждает (и подвергается критике<ref>{{cite web|author=W.M.P. van der Aalst|title=Pi calculus versus Petri nets: Let us eat “humblepie” rather than further inflate the “Pi hype”|url=http://www.workflowpatterns.com/documentation/documents/pi-hype.pdf}}</ref>{{sfn|Havey|2005}}), что [[XLANG]], [[WSCI]], [[BPML]], [[BPEL]] и [[WS-CDL]] основаны на этом исчислении. По крайней мере, свойства <math>\pi</math>-исчисления — порядок вычисления, связи на основе сообщений, мобильность ({{lang-en|mobility}}) — могут служить основой для языков BPM{{sfn|Havey|2005}}.

Другим неожиданным направлением использования <math>\pi</math>-исчисления является моделирование [[Биомолекулы|биомолекулярных]] систем<ref name="Regev A., Shapiro E. (2004) The π-calculus as an Abstraction for Biomolecular Systems. In: Ciobanu G., Rozenberg G. (eds) Modelling in Molecular Biology. Natural Computing Series. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-18734-6_11">{{публикация|книга|автор=Regev A., Shapiro E.|заглавие=Modelling in Molecular Biology. Natural Computing Series|часть=The π-calculus as an Abstraction for Biomolecular Systems|ссылка=https://doi.org/10.1007/978-3-642-18734-6_11|ответственный=Ciobanu G., Rozenberg G.|место=Berlin, Heidelberg|издательство=Springer|год=2004}}</ref>.


== Примечания ==
== Примечания ==

Версия от 07:02, 5 апреля 2021

-исчисление в теоретической информатике  — исчисление процессов, изначально разработанное Робином Милнером, Иоахимом Пэрроу и Дэвидом Уокером как продолжение работы над исчислением общающихся систем. Целью -исчисления является возможность описать параллельные вычисления, конфигурация которых может меняться на протяжении вычисления.

Неформальное определение

-исчисление принадлежит к семейству исчислений процессов. Фактически -исчисление как λ-исчисление настолько минимально, что не содержит примитивов, таких как числа, булевы выражения, структуры данных, переменные, функции или операторы управления потоком (например, if-then-else, while).

Пи-исчисление определяет динамически взаимодействующие друг с другом параллельные процессы. Каждый процесс может состоять из одного или нескольких действий, расположенных последовательно или параллельно, а также альтернативно или рекурсивно. Действием может быть отправка или получение данных по каналу. Сообщение от одного процесса другому включает имя канала, который может быть использован для ответа. Имя является переменной[1].

Конструкции процесса

Центральным для -исчисления является понятие имени. Простота исчисления заключается в двойной роли имён, которые выступают и как каналы связи и как переменные. В исчислении доступны следующие конструкции процесса (точные определения даны в следующих секциях):

  • конкуренция, обозначается , где и  — два процесса или потока, выполняемых конкурентно.
  • связь, где
    • префикс ввода  — процесс, ожидающий сообщение, отправленное по каналу связи , перед тем как продолжаться как , привязывающий полученное имя к имени . Как правило, это моделирует процесс ожидания связи из сети, или метку c, которую можно использовать с помощью операции goto c.
    • префикс вывода описывает, что имя передаётся через канал , перед тем как продолжаться как . Как правило, это моделирует отправку сообщения через сеть или операцию goto c.
  • репликация, обозначается , которая может быть рассмотрена как процесс, который может всегда создавать новую копию . Как правило, эти модели или сетевой сервис или метка c, ожидающая любое число goto c операций.
  • создание нового имени, обозначается , которое может быть рассмотрено как процесс, размещающий новую константу внутри . Константы -исчисления определяются только через своё имя и всегда являются каналами связи.
  • ноль процесс, обозначается 0, процесс, выполнение которого завершено и остановлено.

Минимализм -исчисления не позволяет писать программы в обычном смысле этого слова, но исчисление можно легко расширить. В частности, просто определить структуры управления (такие как рекурсия, циклы и последовательная композиция) и типы данных (такие как функции первого порядка, значения истинности, списки и целые числа). Кроме того, были предложены расширения -исчисления для криптографии с публичным ключом. Прикладное π-исчисление, разработанное Абади и Фурне, даёт этим различным расширениям π-исчисления формальную основу с помощью произвольных типов данных.

Небольшой пример

Ниже приведён пример процесса из трёх параллельных компонент. Канал известен только в двух первых компонентах.

Первые две компоненты способны связываться через канал , при этом связывается с . Следующий шаг процесса:

В этом примере не затрагивается, так как он определён во внутренней области видимости. Теперь вторая и третья параллельные компоненты могут связаться через канал , при этом связывается с . Следующий шаг процесса:

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

Формальное определение

Применение

-исчисление — один из наиболее популярных формализмов в сообществе управления бизнес-процессами (BPM). Например, популярная литература утверждает (и подвергается критике[2][1]), что XLANG, WSCI, BPML, BPEL и WS-CDL основаны на этом исчислении. По крайней мере, свойства -исчисления — порядок вычисления, связи на основе сообщений, мобильность (англ. mobility) — могут служить основой для языков BPM[1].

Другим неожиданным направлением использования -исчисления является моделирование биомолекулярных систем[3].

Примечания

  1. 1 2 3 Havey, 2005.
  2. W.M.P. van der Aalst. Pi calculus versus Petri nets: Let us eat “humblepie” rather than further inflate the “Pi hype”.
  3. Regev A., Shapiro E. The π-calculus as an Abstraction for Biomolecular Systems // Modelling in Molecular Biology. Natural Computing Series / Ciobanu G., Rozenberg G.. — Berlin, Heidelberg : Springer, 2004.

Литература

  • Milner, Robin. Communicating and Mobile Systems: The π-calculus. — Cambridge, UK : Cambridge University Press, 1999. — ISBN 0-521-65869-1.
  • Milner, Robin. The Polyadic π-Calculus: A Tutorial // Logic and Algebra of Specification / F. L. Hamer ; W. Brauer ; H. Schwichtenberg. — Springer-Verlag, 1993.
  • Sangiorgi, Davide. The π-calculus: A Theory of Mobile Processes / Davide Sangiorgi, David Walker. — Cambridge, UK : Cambridge University Press, 2001. — ISBN 0-521-78177-9.
  • Michael Havey. 3.2. The Pi-Calculus // Essential Business Process Modeling. — O'Reilly Media, Inc., 2005. — ISBN 9780596008437.