Денотационная семантика модели Актера - Denotational semantics of the Actor model

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

Семантика фиксированной точки актора

Денотационная теория семантики вычислительных систем занимается поиском математических объектов, которые представляют то, что системы делают. Коллекции таких объектов называются домены. В Актер использует область сценариев диаграммы событий. Обычно предполагают некоторые свойства области, например, наличие пределов цепей (см. cpo ) и нижний элемент. Часто разумны и полезны различные дополнительные свойства: статья о теория предметной области есть более подробная информация.

Домен обычно частичный заказ, что можно понимать как порядок определенности. Например, для заданных сценариев диаграммы событий Икс и у, можно позволить "x≤y"значит это"у расширяет вычисления Икс".

Математическое обозначение системы S находится путем построения все более лучших приближений из начального пустого обозначения, называемого S используя некоторую аппроксимирующую функцию обозначения прогрессS построить обозначение (значение) для S следующее:

Можно было ожидать, что прогрессS было бы монотонный, т.е., если x≤y тогда прогрессS(х) ≤прогрессS(у). В более общем плане мы ожидаем, что

Если ∀я∈ω ИксяИкся+1, тогда

Последнее указанное свойство прогрессS называется ω-непрерывностью.

Центральный вопрос денотационной семантики состоит в том, чтобы охарактеризовать, когда возможно создавать денотации (значения) в соответствии с уравнением для ОбозначитьS. Фундаментальная теорема теории вычислительных областей состоит в том, что если прогрессS ω-непрерывно, то ОбозначитьS будет существовать.

Из ω-непрерывности прогрессS который

прогрессS(ОбозначитьS) = ОбозначитьS

Приведенное выше уравнение мотивирует терминологию, которая ОбозначитьS это фиксированная точка из прогрессS.

Кроме того, эта неподвижная точка является наименьшей среди всех неподвижных точек прогрессS.

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

Важный аспект денотационная семантика языков программирования - это композиционность, с помощью которой обозначение программы строится из обозначений ее частей. Например, рассмотрим выражение "<выражение1> + <выражение2>". Композиционность в данном случае должна придавать значение"<выражение1> + <выражение2>"с точки зрения значений <выражение1> и <выражение2>.

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

Среды

Среды содержат привязки идентификаторов. Когда окружение отправляется Искать сообщение с адресом идентификатора Икс, он возвращает последнюю (лексическую) привязку Икс.

В качестве примера того, как это работает, рассмотрим лямбда-выражение <L> ниже, который реализует древовидную структуру данных при предоставлении параметров для leftSubTree и rightSubTree. Когда такое дерево получает сообщение с параметром "getLeft", он возвращается leftSubTree и аналогично, когда ему дают сообщение "быть правым" он возвращается rightSubTree.

 λ (leftSubTree, rightSubTree) λ (сообщение) если (сообщение == "getLeft") тогда leftSubTree иначе если (сообщение == "getRight") тогда rightSubTree

Рассмотрим, что происходит, когда выражение формы "( 1 2)" отправлено Eval сообщение с окружающей средой E. Семантика для таких выражений приложения, как это, следующая: , 1 и 2 каждый отправлен Eval сообщения с окружающей средой E. Целые числа 1 и 2 немедленно ответить на Eval сообщение с собой.

Тем не мение, <L> отвечает на Eval сообщение, создав закрытие Актер (процесс) C у которого есть адрес (называется тело) за <L> и адрес (называется среда) за E. Актер "( 1 2)" затем отправляет C сообщение [1 2].

Когда C получает сообщение [1 2], он создает новую среду Актера F который ведет себя следующим образом:

  1. Когда он получает Искать сообщение для идентификатора leftSubTree, он отвечает 1
  2. Когда он получает Искать сообщение для идентификатора rightSubTree, он отвечает 2
  3. Когда он получает Искать сообщение для любого другого идентификатора, оно перенаправляет Искать сообщение E

Актер (процесс) C затем отправляет Eval сообщение с окружающей средой F следующему субъекту (процессу):

   λ (сообщение) если (сообщение == "getLeft") тогда leftSubTree иначе если (сообщение == "getRight") тогда rightSubTree

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

В качестве другого примера рассмотрим Актера для выражения "<выражение1> + <выражение2>"который имеет адреса двух других участников (процессов) <выражение1> и <выражение2>. Когда составное выражение Actor (процесс) получает Eval сообщение с адресами для Актера окружения E и покупатель C, он отправляет Eval сообщения для <выражение1> и <выражение2> с окружающей средой E и отправляет C новый Актер (процесс) C0. Когда C0 получил обратно два значения N1 и N2, он отправляет C Значение N1 + N2. Таким образом, денотационная семантика для технологические расчеты и Актерская модель обеспечить денотационную семантику для "<выражение1> + <выражение2>"с точки зрения семантики для <выражение1> и <выражение2>.

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

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

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

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

Область вычислений акторов

Клинджер [Clinger, 1981] объяснил область вычислений акторов следующим образом:

Расширенные диаграммы событий Актера [см. Теория модели актера ] образуют частично упорядоченное множество < Диаграммы,   > из которого можно построить область власти п[Диаграммы] (см. раздел о Обозначения ниже). Расширенные диаграммы - это частичные истории вычислений, представляющие «моментальные снимки» [относительно некоторой системы отсчета] вычисления на пути к завершению. За Икс,уДиаграммы, x≤y средства Икс это этап, через который могут пройти вычисления на пути к у. Завершенные элементы Диаграммы представляют вычисления, которые завершились, и неопределенные вычисления, которые стали бесконечными. Завершенные элементы можно абстрактно охарактеризовать как максимальные элементы Диаграммы [см. William Wadge 1979]. Конкретно завершенные элементы - это те, у которых есть незавершенные события. Интуитивно Диаграммы не является ω-полный поскольку существуют возрастающие последовательности конечных частичных вычислений
в котором некоторое ожидающее событие остается незавершенным навсегда, в то время как количество реализованных событий неограниченно растет, вопреки требованию конечной задержки [прибытия]. У такой последовательности не может быть предела, потому что любое ограничение будет представлять завершенное незавершенное вычисление, в котором событие все еще ожидает обработки.
Повторюсь, область диаграммы событий актера Диаграммы является неполным из-за требования конечной задержки прибытия, которая допускает любую конечную задержку между событием и событием, которое оно активирует, но исключает бесконечную задержку.

Обозначения

В своей докторской диссертации Уилл Клингер объяснил, как области власти получаются из неполных областей, следующим образом:

Из статьи о Силовые домены: п[D] набор замкнутых вниз подмножеств области D которые также замкнуты относительно существующих наименьших верхних границ направленных множеств в D. Обратите внимание, что при заказе на п[D] задается отношением подмножества, точные верхние оценки, вообще говоря, не совпадают с объединениями.

Для области диаграммы событий актера Диаграммы, элемент п[Диаграммы] представляет список возможных начальных историй вычисления. Поскольку для элементов Икс и у из Диаграммы, x≤y Значит это Икс начальный отрезок исходной истории у, требование, чтобы элементы п[Диаграммы] быть закрытым вниз имеет ясную основу в интуиции.
...
Обычно требуется, чтобы частичный порядок, из которого строится область мощности, был ω-полный. На это есть две причины. Первая причина заключается в том, что большинство степенных доменов являются просто обобщениями доменов, которые использовались в качестве семантических доменов для обычных последовательных программ, и все такие домены являются полными из-за необходимости вычислять фиксированные точки в последовательном случае. Вторая причина состоит в том, что ω-полнота позволяет решать рекурсивные уравнения области, включающие область мощности, такую ​​как
который определяет область возобновления [Гордон Плоткин, 1976]. Тем не мение, силовые домены можно определить для любого домена. Кроме того, степенная область области по существу является степенной областью ее ω-пополнения, поэтому рекурсивные уравнения, включающие степенную область неполной области, все еще могут быть решены, обеспечивая области, в которых обычные конструкторы (+, ×, → и *) являются ω-полными. Бывает, что определение семантики акторов, как в Clinger [1981], не требует решения каких-либо рекурсивных уравнений, включающих область степеней.
Короче говоря, нет никаких технических препятствий для построения энергетических доменов из неполных доменов. Но зачем это нужно?
В поведенческая семантика, разработан Ирен Грейф, смысл программы - это спецификация вычислений, которые могут выполняться программой. Вычисления формально представлены диаграммами событий Актера. Грейф определил диаграммы событий с помощью причинных аксиом, управляющих поведением отдельных Актеров [Greif 1975].
Генри Бейкер представил недетерминированный интерпретатор, генерирующий мгновенные расписания, которые затем отображаются на диаграммы событий. Он предположил, что соответствующий детерминированный интерпретатор, работающий с наборами мгновенных расписаний, может быть определен с использованием семантики области мощности [Baker 1978].
Семантика, представленная в [Clinger 1981], является версией поведенческой семантики. Программа обозначает набор диаграмм событий Актера. Множество определяется экстенсивно с использованием семантики области мощности, а не интенсионально с использованием причинных аксиом. Поведение отдельных Актеров определяется функционально. Тем не менее, показано, что результирующий набор диаграмм событий Актеров состоит именно из тех диаграмм, которые удовлетворяют аксиомам причинности, выражающим функциональное поведение Актеров. Таким образом, поведенческая семантика Грейфа совместима с семантикой денотационной области власти.
Мгновенный график Бейкера ввел понятие ожидающие события, которые представляют собой сообщения на пути к своим целям. Каждое ожидающее событие должно рано или поздно стать реальным (реализованным) событием прибытия, требование, называемое конечная задержка. Дополнение диаграмм событий акторов наборами ожидающих событий помогает выразить свойство конечной задержки, которое характерно для истинного параллелизма [Schwartz 1979].

Последовательные вычисления образуют ω-полную подобласть области вычислений Actor

В своей диссертации 1981 года Клинджер показал, как последовательные вычисления формируют подобласть параллельных вычислений:

Вместо того, чтобы начинать с семантики для последовательных программ, а затем пытаться расширить ее для параллелизма, семантика акторов рассматривает параллелизм как первичный и получает семантику последовательных программ как особый случай.
...
Тот факт, что существуют возрастающие последовательности без наименьших верхних границ, может показаться странным для тех, кто привык думать о семантике последовательных программ. Это может помочь указать, что все возрастающие последовательности, создаваемые последовательными программами, имеют наименьшие верхние границы. Действительно, частичные вычисления, которые могут быть произведены последовательными вычислениями, образуют ω-полную подобласть области вычислений Акторов. Диаграммы. Неофициальное доказательство следует.
С точки зрения Актера, последовательные вычисления - это частный случай параллельных вычислений, которые можно отличить по их диаграммам событий. Диаграмма событий последовательного вычисления имеет начальное событие, и ни одно событие не активирует более одного события. Другими словами, порядок активации последовательных вычислений является линейным; диаграмма событий представляет собой обычную последовательность выполнения. Это означает, что конечные элементы Диаграммы
соответствующие конечным начальным сегментам последовательной последовательности выполнения все имеют ровно одно ожидающее событие, за исключением самого большого завершенного элемента, если вычисление завершается. Одно свойство расширенной области диаграмм событий < Диаграммы,   > это если x≤y и х ≠ у, затем какое-то ожидающее событие Икс реализуется в у. Поскольку в этом случае каждый Икся имеет не более одного ожидающего события, каждое ожидающее событие в последовательности становится реализованным. Следовательно, последовательность
имеет точную верхнюю границу в Диаграммы в соответствии с интуицией.
Приведенное выше доказательство применимо ко всем последовательным программам, даже к тем, которые имеют точки выбора, такие как охраняемые команды. Таким образом, семантика акторов включает в себя последовательные программы как частный случай и согласуется с обычной семантикой таких программ.

Модель временных диаграмм

Хьюитт [2006b] опубликовал новую денотационную семантику для Актеров, основанную на временных диаграммах. Модель временных диаграмм отличается от модели Клингера [Clinger, 1981], который построил ω-полную область мощности из лежащей в основе неполной области диаграмм, которая не включала время. Преимущество модели domainTimed Diagrams состоит в том, что она физически мотивирована, а полученные вычисления имеют желаемое свойство ω-полноты (следовательно, неограниченный недетерминизм), что обеспечивает гарантию обслуживания.

Область вычислений синхронизированных актеров

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

  1. Время доставки - это положительное рациональное число, которое не совпадает со временем доставки любого другого сообщения.
  2. Время доставки больше, чем фиксированное значение δ, превышающее время его активации. Позже выяснится, что величина δ не имеет значения. Фактически, значение δ может даже линейно уменьшаться со временем, чтобы соответствовать закону Мура.

Временные диаграммы событий Актера образуют частично упорядоченный набор <Временные диаграммы, ≤>. Диаграммы представляют собой частичные истории вычислений, представляющие «моментальные снимки» (относительно некоторой системы отсчета) вычислений, приближающихся к завершению. Ford1, d2εВременные диаграммы, d1≤d2 означает, что d1 - это этап, который вычисления могут пройти на пути к d2. Временные диаграммы представляют вычисления, которые завершились, и неограниченные вычисления, которые стали бесконечными. Полные элементы можно абстрактно охарактеризовать как максимальные элементы Временные диаграммы. Конкретно завершенные элементы - это те, у которых нет ожидающих событий.

Теорема: Временные диаграммы является ω-полной областью вычислений Actor, т.е.

  1. Если D⊆Временные диаграммы направлено, точная верхняя грань ⊔D существует; кроме того, ⊔D подчиняется всем законам Теория модели актера.
  2. Конечные элементы Временные диаграммы счетны, если элемент xεВременные диаграммы конечно (изолированно) тогда и только тогда, когда D⊆Временные диаграммы направлено и x≤VD, существует dεD с x≤d. Другими словами, x конечно, если нужно пройти через x, чтобы подняться до или выше x с помощью предельного процесса.
  3. Каждый элемент Временные диаграммы - точная верхняя грань счетной возрастающей последовательности конечных элементов.

Силовые домены

  • Определение: Область TimedDiagrams], ⊆> - множество возможных начальных историй M вычисления таких, что
    1. М закрывается вниз, т.е. если dεM, то ∀d’εTimedDiagrams d’≤d ⇒ d’εM
    2. M замкнуто относительно точных верхних границ направленных множеств, т.е. если D⊆M направлено, то VDεM
  • Примечание. Хотя Power [Временные диаграммы] упорядочен по, пределы не задаются U. Т.е.,
    (∀i∈ω Mя≤Mя + 1) ⇒ Ui∈ω Mя ⊆ ⊔i∈ω Mя
    Например, если ∀i dяεВременные диаграммы и гя≤dя + 1 И мя= {dk | k ≤i} тогда
    {{{1}}}
  • Теорема: Мощность [Временные диаграммы] является ω-полной областью.

Теорема о представлении параллелизма

Вычисление Актера может продвигаться разными способами. Пусть d будет диаграммой со следующим запланированным событием e и X ≡ {e ’| е ─≈ →1 сообщение e ’} (см. Теория модели актера ), Flow (d) определяется как набор всех временных диаграмм с d и расширениями d посредством X, такими, что

  1. прибытие всех событий X было запланировано, где
  2. события X запланированы во всех возможных порядках среди запланированных будущих событий d
  3. при условии, что каждое событие в X запланировано по крайней мере через δ после e, а каждое событие в X запланировано как минимум один раз в каждом интервале δ после этого.

(Напомним, что δ - это минимальное время для доставки сообщения.)

Поток (d) ≡ {d}, если d полный.

Пусть S - система актеров, прогрессияS это отображение

Мощность[Временные диаграммы] → Мощность [Временные диаграммы]
ПрогрессS(М) ≡ UdεM Расход (d)

Теорема: ПрогрессS ω-непрерывна.

Т.е., если ∀i Mя⊆Mя + 1 затем прогрессS(⊔iεω Mя) = ⊔iεω ПрогрессS(Mя)

Кроме того, наименьшая фиксированная точка прогрессииS дается теоремой о представлении параллелизма следующим образом:

iεω ПрогрессSя(⊥S)

где ⊥S - начальная конфигурация S.

Обозначение ОбозначитьS акторной системы S - это множество всех вычислений S.

Определить абстракция времени временной диаграммы должна быть диаграммой с удаленными временными аннотациями.

Теорема представления: Обозначение ОбозначитьS системы актеров S - это временная абстракция

iεω ПрогрессSя (⊥S)

Использование домена Временные диаграммы, который является ω-полным, важен, потому что он обеспечивает прямое выражение вышеупомянутой теоремы о представлении для обозначений систем акторов путем непосредственного построения минимальной неподвижной точки.

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

Рекомендации

  • Дана Скотт и Кристофер Стрейчи. К математической семантике компьютерных языков Техническая монография Oxford Programming Research Group. ПРГ-6. 1971 г.
  • Ирен Грейф. Семантика общения параллельных профессий Докторская диссертация MIT EECS. Август 1975 г.
  • Джозеф Э. Стой, Денотационная семантика: подход Скотта-Стрейчи к семантике языков программирования. MIT Press, Кембридж, Массачусетс, 1977 г. (Классический, хотя и устаревший учебник).
  • Гордон Плоткин. Конструкция энергетической области SIAM Journal on Computing сентябрь 1976 г.
  • Эдсгер Дейкстра. Дисциплина программирования Prentice Hall. 1976.
  • Кшиштоф Р. Апт, Дж. В. де Баккер. Упражнения по денотационной семантике MFCS 1976: 1-11
  • Дж. У. де Баккер. Повторное посещение наименьших фиксированных точек Теор. Comput. Sci. 2 (2): 155-181 (1976).
  • Карл Хьюитт и Генри Бейкер Актеры и непрерывные функционалы Материалы рабочей конференции ИФИП по формальному описанию концепций программирования. 1–5 августа 1977 г.
  • Генри Бейкер. Актерские системы для вычислений в реальном времени Докторская диссертация MIT EECS. Январь 1978 г.
  • Майкл Смит. Силовые домены Журнал компьютерных и системных наук. 1978.
  • МАШИНА. Hoare. Связь последовательных процессов CACM. Август 1978 г.
  • Джордж Милн и Робин Милнер. Параллельные процессы и их синтаксис JACM. Апрель 1979 г.
  • Ниссим Франсез, МАШИНА. Hoare, Даниэль Леманн и Виллем-Поль де Ровер. Семантика недетерминизма, параллелизма и коммуникации Журнал компьютерных и системных наук. Декабрь 1979 г.
  • Нэнси Линч и Майкл Дж. Фишер. Об описании поведения распределенных систем в семантике параллельных вычислений. Springer-Verlag. 1979.
  • Джеральд Шварц Денотационная семантика параллелизма в семантике параллельных вычислений. Springer-Verlag. 1979 г.
  • Уильям Уэдж. Расширенное лечение тупика потока данных Семантика параллельных вычислений. Springer-Verlag. 1979 г.
  • Ральф-Йохан Бэк. Семантика неограниченного недетерминизма ИКАЛП 1980.
  • Дэвид Парк. О семантике справедливого параллелизма Материалы Зимней школы по формальной спецификации программного обеспечения. Springer-Verlag. 1980 г.
  • Уилл Клингер, Основы актерской семантики. Докторская диссертация по математике Массачусетского технологического института, июнь 1981 г. (Цитируется с разрешения автора).
  • Карл Хьюитт Что такое обязательство? Физические, организационные и социальные Пабло Норьега и другие. редакторы. LNAI 4386. Springer-Verlag. 2007 г.