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

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

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

Можно также сказать, что -исчисление — это открытая теория, которая зависит от некоторой теории имен. Например, с операционной точки зрения π-исчислении можно представить как процедуру, которая для данной теории имен даёт теорию процессов над этими именами.

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

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

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

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

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

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

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

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

Применение

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

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

Пример бизнес-процесса Следующий пример может дать представление об описании бизнес-процесса при помощи пи-исчисления (перефразирован из ):

Клиент(заказ,клиент)= <клиент>.клиент(блюдо) ОфициантПринимаетЗаказ(заказ,заказГотов,заказНеГотов,кухня)= заказ(клиент).<заказГотов,заказНеГотов> .ОфициантПриноситЕду(заказГотов,заказНеГотов,клиент) ОфициантПриноситЕду(заказГотов,заказНеГотов,клиент)= заказГотов(блюдо).<блюдо> + заказНеГотов(извинения).<извинения> Кухня(кухня,заказГотов,заказНеГотов)= кухня(заказГотов,заказНеГотов).<"борщ"> Ресторан= (ν зкз,клнт,готов,неГотов,кух) Клиент(зкз,клнт) | ОфициантПринимаетЗаказ(зкз,готов,неГотов,кух) | Кухня(кух,готов,неГотов)

Для данного примера исчисление было расширено оператором выбора (P + Q).

Примечания

Литература

Категория:Исчисление процессов Категория:Теория информации