Введение

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

Сбор мусора

Сбор мусора (автоматическое освобождение неиспользуемой памяти) был важной темой в развитии модели Actor. В своей докторской диссертации Питер Бишоп разработал алгоритм сбора мусора в распределенных системах. Каждая система вела списки ссылок указателей на другие системы и от них. Циклические структуры собирались путем инкрементной миграции акторов (объектов) на другие системы, имеющие их адреса, до тех пор, пока циклическая структура полностью не окажется в пределах одной системы, где сборщик мусора мог освободить память. Генри Бейкер разработал алгоритм сбора мусора в реальном времени в своей докторской диссертации. Основная идея заключалась в чередовании операций сбора и выделения памяти, чтобы избежать длительных пауз во время сбора мусора. См. инкрементный сбор мусора. Генри Либерман и Карл Хьюитт [1983] разработали сбор мусора в реальном времени, основанный на времени жизни акторов (объектов). Основная идея заключалась в распределении акторов (объектов) по поколениям, чтобы во время сбора мусора приходилось проверять только последние поколения. См. сбор мусора по поколениям.

Языки программирования актеров

Генри Либерман, Дэн Терьо и другие разработали Act1, язык программирования Actor. Впоследствии, для своей магистерской диссертации, Дэн Терьо разработал Act2. Эти ранние языки, демонстрирующие концепцию, были довольно неэффективными и не подходили для практического применения. В своей докторской диссертации Кен Кан разработал Ani, который он использовал для создания нескольких анимаций. Билл Корнфельд разработал язык программирования Ether для концепции Scientific Community Metaphor в своей докторской диссертации. Уильям Атас и Нанет Боден [1988] разработали Cantor – язык программирования Actor для научных вычислений. Жан-Пьер Бриот [1988, 1999] разработал средства для расширения Smalltalk 80 с целью поддержки вычислений Actor. Кристин Томлинсон, Марк Шеевел, Грег Лавендер, Грег Мередит и др. [1995] в MCC разработали язык программирования Actor для агентов InfoSleuth в Rosette. Карл Хьюитт, Беппе Аттарди и Генри Либерман [1979] предложили механизмы делегирования в системах передачи сообщений. Это послужило причиной так называемой дискуссии об аномалии наследования в объектно-ориентированных, конкурентных языках программирования [Satoshi Matsuoka и Aki Yonezawa 1993, Giuseppe Milicia и Vladimiro Sassone 2004].

Денотационная модель систем Actor

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