Введение

Денотационная семантика модели акторов является предметом исследования в области теории доменов для акторов. Историческое развитие этой темы изложено в [Hewitt 2008b].

Композиционность в языках программирования

Важным аспектом денотационной семантики языков программирования является композиционность, посредством которой денотация программы строится из денотаций ее частей. Например, рассмотрим выражение "". Композиционность в этом случае заключается в том, чтобы предоставить значение для "" в терминах значений и . Модель актора обеспечивает современный и очень общий способ анализа композиционности программ. Скотт и Стречи [1971] предложили свести семантику языков программирования к семантике лямбда-исчисления и, таким образом, унаследовать денотационную семантику лямбда-исчисления. Однако оказалось, что параллельные вычисления нельзя реализовать в лямбда-исчислении (см. Неопределенность в параллельных вычислениях). Таким образом, возникла проблема того, как обеспечить модульную денотационную семантику для языков параллельного программирования. Одним из решений этой проблемы является использование модели вычислений Actor. В модели Actor программы являются акторами, которым отправляются сообщения с адресом окружения (описанного ниже), так что программы наследуют свою денотационную семантику из денотационной семантики модели Actor (идея, опубликованная в Hewitt [2006]).

Арифметические выражения

Для другого примера рассмотрим Актора для выражения "", у которого есть адреса двух других акторов (процессов). Когда составной Актор (процесс) получает сообщение с адресами Актора-окружения E и клиента C, он отправляет сообщения и с Актором-окружением E и отправляет клиенту C нового Актора (процесса) C0. Когда C0 получает два значения N1 и N2, он отправляет C значение N1 - N2. Таким образом, денотационная семантика для исчислений процессов и модели Актора предоставляет денотационную семантику для "" в терминах семантики для и .

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

Представленная выше денотационная композиционная семантика очень общая и может применяться к функциональным, императивным, параллельным, логическим и другим программам (см. [Hewitt 2008a]). Например, она легко предоставляет денотационную семантику для конструкций, которые сложно формализовать другими подходами, такими как задержки и обещания.

Модель Клингера

В своей докторской диссертации Уилл Клингер разработал первую денотационную семантику для модели акторов.