Дивергенция (информатика)

Вычисление, которое не завершается или завершается в исключительном состоянии

В информатике говорят, что вычисление расходится, если оно не завершается или завершается в исключительном состоянии . [1] : 377  В противном случае говорят, что оно сходится . В областях, где вычисления, как ожидается, будут бесконечными, таких как исчисления процессов , говорят, что вычисление расходится, если оно не может быть продуктивным (т. е. продолжать производить действие в течение конечного периода времени).

Определения

Различные разделы компьютерной науки используют разные, но математически точные определения того, что означает сходимость или расходимость вычисления.

Переписывание

В абстрактном переписывании абстрактная система переписывания называется конвергентной, если она является одновременно конфлюэнтной и завершающей . [2]

Запись tn означает, что t приводится к нормальной форме n за ноль или более редукций , t ↓ означает, что t приводится к некоторой нормальной форме за ноль или более редукций, а t ↑ означает, что t не приводится к нормальной форме; последнее невозможно в терминальной системе переписывания.

В лямбда-исчислении выражение является расходящимся, если оно не имеет нормальной формы . [3]

Денотационная семантика

В денотативной семантике функция объекта f  : AB может быть смоделирована как математическая функция , где ⊥ ( внизу ) указывает на то, что функция объекта или ее аргумент расходятся. ф : А { } Б { } {\displaystyle f:A\cup \{\perp \}\rightarrow B\cup \{\perp \}}

Теория параллелизма

В исчислении последовательных процессов связи (CSP) дивергенция — это драматическая ситуация, когда процесс выполняет бесконечную серию скрытых действий. Например, рассмотрим следующий процесс, определенный нотацией CSP:

С л о с к = т я с к С л о с к {\displaystyle Часы=тик\rightarrow Часы}

Следы этого процесса определяются как:

следы ( С л о с к ) = { , т я с к , т я с к , т я с к , } = { т я с к } {\displaystyle \operatorname {traces} (Часы)=\{\langle \rangle ,\langle тик\rangle ,\langle тик,тик\rangle ,\cdots \}=\{тик\}^{*}}

Теперь рассмотрим следующий процесс, который скрывает событие тика процесса Clock :

П = С л о с к т я с к {\displaystyle P=Часы\обратная косая черта тик}

По определению, P называется расходящимся процессом.

Смотрите также

Примечания

  1. ^ CAR Hoare (октябрь 1969 г.). "Аксиоматическая основа компьютерного программирования" (PDF) . Сообщения ACM . 12 (10): 576–583. doi :10.1145/363235.363259. S2CID  207726175.
  2. ^ Баадер и Нипков 1998, стр. 9.
  3. Пирс 2002, стр. 65.

Ссылки


Retrieved from "https://en.wikipedia.org/w/index.php?title=Divergence_(computer_science)&oldid=1249601216"