Модель актера
Модель актера в информатике — это математическая модель параллельных вычислений рассматривается , в которой актер как основной строительный блок параллельных вычислений. В ответ на сообщение полученное актор может: принимать локальные решения, создавать новых акторов, отправлять больше сообщений и определять, как реагировать на следующее полученное сообщение. Актеры могут изменять свое собственное частное состояние , но могут влиять друг на друга только косвенно посредством обмена сообщениями (устраняя необходимость синхронизации на основе блокировки ).
Актерская модель зародилась в 1973 году. [ 1 ] Он использовался как основа для теоретического понимания вычислений , так и как теоретическая основа для нескольких практических реализаций параллельных систем . Связь модели с другими работами обсуждается в исчислениях модели актеров и процессов .
История
[ редактировать ]По словам Карла Хьюитта , в отличие от предыдущих моделей вычислений, модель актора была вдохновлена физикой , включая общую теорию относительности и квантовую механику . [ нужна ссылка ] На него также повлияли языки программирования Lisp , Simula , ранние версии Smalltalk , системы, основанные на возможностях , и коммутация пакетов . Его разработка была «мотивирована перспективой создания высокопараллельных вычислительных машин, состоящих из десятков, сотен или даже тысяч независимых микропроцессоров, каждый из которых имеет свою собственную локальную память и коммуникационный процессор, взаимодействующих через высокопроизводительную сеть связи». [ 2 ] С тех пор появление массового параллелизма посредством многоядерных и многоядерных компьютерных архитектур возродило интерес к модели акторов.
После публикации Хьюитта, Бишопа и Штайгера в 1973 году Ирен Грейф разработала операционную семантику модели актера. в рамках своего докторского исследования [ 3 ] Два года спустя Генри Бейкер и Хьюитт опубликовали набор аксиоматических законов для акторных систем. [ 4 ] [ 5 ] Среди других важных вех - Уильяма Клингера диссертация 1981 года, в которой представлена денотационная семантика, основанная на доменах власти. [ 2 ] и диссертация Гуля Аги 1985 года, в которой была развита семантическая модель, основанная на переходах, дополняющая модель Клингера. [ 6 ] Это привело к полному развитию теории модели актора .
Основная работа по реализации программного обеспечения была проделана Рассом Аткинсоном, Джузеппе Аттарди, Генри Бейкером, Джерри Барбером, Питером Бишопом, Питером де Йонгом, Кеном Каном, Генри Либерманом, Карлом Мэннингом, Томом Рейнхардтом, Ричардом Штайгером и Дэном Терио в группе семантики передачи сообщений в Массачусетский технологический институт (MIT). Исследовательские группы под руководством Чака Зейтца из Калифорнийского технологического института (Калифорнийский технологический институт) и Билла Дэлли из Массачусетского технологического института создали компьютерные архитектуры, которые довели до совершенства передачу сообщений в модели. См. Реализация модели актера .
Исследования модели актора проводились в Калифорнийском технологическом институте , Киотского университета Лаборатории Токоро , Корпорации микроэлектроники и компьютерных технологий (MCC), Лаборатории искусственного интеллекта Массачусетского технологического института , SRI , Стэнфордском университете , Университете Иллинойса в Урбане-Шампейне , [ 7 ] Университет Пьера и Марии Кюри (Парижский университет 6), Пизанский университет , Лаборатория Йонезава Токийского университета , Центр Вискунде и информатики (CWI) и другие.
Фундаментальные понятия
[ редактировать ]Модель актера принимает философию, согласно которой все является актером . Это похоже на философию «все — это объект», используемую в некоторых объектно-ориентированных языках программирования .
Актер — это вычислительная сущность, которая в ответ на полученное сообщение может одновременно:
- отправить ограниченное количество сообщений другим участникам;
- создать ограниченное число новых участников;
- указать поведение, которое будет использоваться для следующего полученного сообщения.
Не существует предполагаемой последовательности вышеуказанных действий, и они могут выполняться параллельно.
Отделение отправителя от отправляемых сообщений было фундаментальным достижением модели актера, позволяющей использовать асинхронные структуры связи и управления в качестве шаблонов передачи сообщений . [ 8 ]
Получатели сообщений идентифицируются по адресу, который иногда называют «почтовым адресом». Таким образом, актор может общаться только с акторами, адреса которых у него есть. Он может получить их из полученного сообщения или, если адрес предназначен для субъекта, которого он сам создал.
Модель актера характеризуется присущим ему параллелизмом вычислений внутри и между актерами, динамическим созданием актеров, включением адресов актеров в сообщения и взаимодействием только посредством прямой асинхронной передачи сообщений без ограничений на порядок прибытия сообщений.
Формальные системы
[ редактировать ]За прошедшие годы было разработано несколько различных формальных систем, которые позволяют рассуждать о системах в модели актора. К ним относятся:
- Операционная семантика [ 3 ] [ 9 ]
- Законы для систем акторов [ 4 ]
- Денотационная семантика [ 2 ] [ 10 ]
- Семантика перехода [ 6 ]
Существуют также формализмы, которые не полностью соответствуют модели актора, поскольку они не формализуют гарантированную доставку сообщений, включая следующие (см. « Попытки связать семантику актора с алгеброй и линейной логикой »):
- Несколько разных алгебр актеров [ 11 ] [ 12 ] [ 13 ]
- Линейная логика [ 14 ]
Приложения
[ редактировать ]Модель актора может использоваться в качестве основы для моделирования, понимания и рассуждений о широком спектре параллельных систем . [ 15 ] Например:
- Электронную почту ( e-mail ) можно смоделировать как систему субъектов. Учетные записи моделируются как актеры, а адреса электронной почты — как адреса актеров.
- Веб-сервисы можно моделировать как субъектов с конечными точками протокола простого доступа к объектам ( SOAP ), смоделированными как адреса субъектов.
- Объекты с блокировками ( например , как в Java и C# ) можно моделировать как сериализаторы при условии, что их реализации таковы, что сообщения могут поступать постоянно (возможно, путем сохранения во внутренней очереди ). Сериализатор — это важный тип актера, определяемый тем свойством, что он постоянно доступен для поступления новых сообщений; каждое сообщение, отправленное сериализатору, гарантированно доставлено. [ 16 ]
- Нотация тестирования и управления тестированием ( TTCN ), как TTCN-2, так и TTCN-3 , довольно близко соответствует модели актера. В TTCN актором является тестовый компонент: либо параллельный тестовый компонент (PTC), либо основной тестовый компонент (MTC). Компоненты тестирования могут отправлять и получать сообщения удаленным партнерам (компонентам однорангового тестирования или интерфейсу системы тестирования), причем последний идентифицируется по его адресу. К каждому тестовому компоненту привязано дерево поведения; тестовые компоненты выполняются параллельно и могут динамически создаваться родительскими тестовыми компонентами. Встроенные конструкции языка позволяют определять действия, которые необходимо предпринять при получении ожидаемого сообщения из внутренней очереди сообщений, например отправку сообщения другому одноранговому объекту или создание новых тестовых компонентов.
Семантика передачи сообщений
[ редактировать ]Модель актера касается семантики передачи сообщений .
Споры о неограниченном недетерминизме
[ редактировать ]Можно утверждать, что первыми параллельными программами были обработчики прерываний . В ходе нормальной работы компьютер должен был иметь возможность получать информацию извне (символы с клавиатуры, пакеты из сети и т. д. ). Поэтому, когда информация поступала, выполнение компьютера было прервано и вызывался специальный код (называемый обработчиком прерывания), чтобы поместить информацию в буфер данных , откуда ее можно было впоследствии извлечь.
В начале 1960-х годов прерывания стали использовать для имитации одновременного выполнения нескольких программ на одном процессоре. [ 17 ] Наличие параллелизма с общей памятью привело к возникновению проблемы управления параллелизмом . Первоначально эта проблема задумывалась как проблема взаимного исключения на одном компьютере. Эдсгер Дейкстра разработал семафоры , а позже, между 1971 и 1973 годами, [ 18 ] Тони Хоар [ 19 ] и Пер Бринч Хансен [ 20 ] разработали мониторы для решения проблемы взаимного исключения. Однако ни одно из этих решений не предусматривало конструкцию языка программирования, инкапсулирующую доступ к общим ресурсам. Эта инкапсуляция была позже реализована с помощью конструкции сериализатора ([Hewitt and Atkinson 1977, 1979] и [Atkinson 1980]).
Первые модели вычислений ( например , машины Тьюринга , продукция Поста, лямбда-исчисление и т . д. ) были основаны на математике и использовали глобальное состояние для представления вычислительного шага (позже обобщенное в [McCarthy and Hayes 1969] и [Dijkstra 1976] см. Порядок событий и глобальное состояние ). Каждый вычислительный шаг осуществлялся от одного глобального состояния вычислений к следующему глобальному состоянию. Подход глобального состояния был продолжен в теории автоматов для конечных автоматов толкающим и машин с стеком , включая их недетерминированные версии. Такие недетерминированные автоматы обладают свойством ограниченного недетерминизма ; то есть, если машина всегда останавливается при запуске в исходном состоянии, то существует ограничение на количество состояний, в которых она останавливается.
Эдсгер Дейкстра развил недетерминированный подход глобального государства. Модель Дейкстры породила разногласия по поводу неограниченного недетерминизма (также называемого неограниченной неопределенностью ), свойства параллелизма , благодаря которому величина задержки в обслуживании запроса может стать неограниченной в результате арбитража разногласий за общие ресурсы, при этом гарантируя, что запрос в конечном итоге будет обслужен . Хьюитт утверждал, что модель актера должна обеспечивать гарантию обслуживания. В модели Дейкстры, хотя между выполнением последовательных инструкций на компьютере может пройти неограниченное количество времени, (параллельная) программа, которая стартовала в четко определенном состоянии, могла завершиться только в ограниченном числе состояний [Dijkstra 1976]. Следовательно, его модель не могла обеспечить гарантию обслуживания. Дейкстра утверждал, что невозможно реализовать неограниченный недетерминизм.
Хьюитт утверждал обратное: не существует предела тому, сколько времени потребуется вычислительной схеме, называемой арбитром, для стабилизации (см. Метастабильность (электроника) ). [ 21 ] Арбитры используются в компьютерах для обработки обстоятельств, когда компьютерные часы работают асинхронно по отношению к вводу извне, например , вводу с клавиатуры, доступу к диску, сетевому вводу и т. д. Таким образом, для сообщения, отправленного на компьютер, может потребоваться неограниченное время. быть получен, и тем временем компьютер может пересекать неограниченное количество состояний.
Модель актера отличается неограниченным недетерминизмом, который был отражен в математической модели Уилла Клингера с использованием теории предметной области . [ 2 ] В модели актора нет глобального состояния. [ сомнительно – обсудить ]
Прямое общение и асинхронность
[ редактировать ]Сообщения в модели актера не обязательно буферизуются. Это был резкий разрыв с предыдущими подходами к моделям параллельных вычислений. Отсутствие буферизации вызвало множество недоразумений во время разработки модели актора и до сих пор остается спорным вопросом. Некоторые исследователи утверждали, что сообщения буферизуются в «эфире» или «среде». Кроме того, сообщения в модели актера просто отправляются (как пакеты в IP ); нет необходимости в синхронном рукопожатии с получателем.
Создание актера плюс адреса в сообщениях означают переменную топологию.
[ редактировать ]Естественным развитием модели актера было предоставление адресов в сообщениях. Под влиянием сетей с коммутацией пакетов [1961 и 1964] Хьюитт предложил разработать новую модель параллельных вычислений, в которой связь вообще не будет иметь обязательных полей: они могут быть пустыми. Конечно, если отправитель сообщения желает, чтобы получатель имел доступ к адресам, которых у получателя еще не было, адрес должен быть отправлен в сообщении.
Например, актеру может потребоваться отправить сообщение актеру-получателю, от которого он позже ожидает получить ответ, но на самом деле ответ будет обработан третьим компонентом актера, который настроен для получения и обработки ответа (например, , другой актер, реализующий шаблон наблюдателя ). Исходный субъект мог бы добиться этого, отправив сообщение, включающее сообщение, которое он желает отправить, а также адрес третьего субъекта, который будет обрабатывать ответ. Этот третий актер, который будет обрабатывать ответ, называется возобновлением (иногда его также называют кадром продолжения или стека ). Когда субъект-получатель готов отправить ответ, он отправляет ответное сообщение на адрес субъекта возобновления , который был включен в исходное сообщение.
Таким образом, способность акторов создавать новых акторов, с которыми они могут обмениваться сообщениями, наряду со способностью включать в сообщения адреса других акторов, дает акторам возможность создавать и участвовать в произвольно изменяющихся топологических отношениях друг с другом, подобно тому, как объекты в Simula и других объектно-ориентированных языках также могут быть реляционно составлены в переменные топологии объектов обмена сообщениями.
По своей сути одновременно
[ редактировать ]В отличие от предыдущего подхода, основанного на составлении последовательных процессов, модель акторов была разработана как по своей сути конкурентная модель. В модели актера последовательность была особым случаем, возникшим в результате параллельных вычислений, как это объясняется в теории модели актера .
Нет требований к порядку поступления сообщений
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( Март 2012 г. ) |
Хьюитт выступал против добавления требования о том, что сообщения должны поступать в том порядке, в котором они отправляются субъекту. Если требуется упорядочение выходных сообщений, его можно смоделировать с помощью актера очереди, обеспечивающего эту функциональность. Такой актер очереди будет ставить в очередь поступившие сообщения, чтобы их можно было получить в порядке FIFO . Итак, если актер X
отправил сообщение M1
актеру Y
и позже X
отправил еще одно сообщение M2
к Y
, нет никакого требования, чтобы M1
прибывает в Y
до M2
.
В этом отношении модель актора отражает системы коммутации пакетов , которые не гарантируют, что пакеты должны быть получены в том порядке, в котором они отправлены. Отсутствие гарантии порядка доставки позволяет переключать пакеты на буферные пакеты, использовать несколько путей для отправки пакетов, повторно отправлять поврежденные пакеты и обеспечивать другие оптимизации.
Более того, актерам разрешено конвейеризировать обработку сообщений. Это означает, что в процессе обработки сообщения M1
, актор может определить поведение, которое будет использоваться для обработки следующего сообщения, а затем фактически начать обработку другого сообщения. M2
до завершения обработки M1
. Тот факт, что актеру разрешено конвейеризировать обработку сообщений, не означает, что он должен конвейеризировать обработку. Будет ли сообщение конвейерным, это инженерный компромисс. Как внешний наблюдатель узнает, была ли обработка сообщения субъектом конвейерной? В определении актера, создаваемого возможностью конвейерной обработки, нет никакой двусмысленности. Конечно, в некоторых реализациях оптимизацию конвейера можно выполнить неправильно, и в этом случае может возникнуть непредвиденное поведение.
Местность
[ редактировать ]Еще одной важной характеристикой модели актора является локальность.
Локальность означает, что при обработке сообщения актор может отправлять сообщения только по адресам, которые он получает в сообщении, адресам, которые у него уже были до получения сообщения, и адресам акторов, которые он создает при обработке сообщения. (Но см. Синтез адресов акторов .)
Кроме того, локальность означает отсутствие одновременного изменения в нескольких местах. В этом отношении она отличается от некоторых других моделей параллелизма, например модели сети Петри , в которой токены одновременно удаляются из нескольких мест и помещаются в другие места.
Составление систем актеров
[ редактировать ]Идея объединения акторных систем в более крупные является важным аспектом модульности , который был развит в докторской диссертации Гуль Аги: [ 6 ] позже разработанный Галом Агой, Яном Мэйсоном, Скоттом Смитом и Кэролин Талкотт . [ 9 ]
Поведение
[ редактировать ]Ключевым нововведением стало введение поведения, заданного в виде математической функции, выражающей действия субъекта при обработке сообщения, включая указание нового поведения для обработки следующего поступившего сообщения. Поведения предоставили механизм математического моделирования совместного использования в параллельном режиме.
Поведения также освободили модель актора от деталей реализации, например , от интерпретатора потока токенов Smalltalk-72. Однако эффективная реализация систем, описываемых моделью акторов, требует обширной оптимизации. см . в разделе «Реализация модели актера» Подробности .
Моделирование других систем параллелизма
[ редактировать ]Другие системы параллелизма ( например , исчисление процессов ) могут быть смоделированы в модели актера с использованием протокола двухфазной фиксации . [ 22 ]
Теорема о вычислительном представлении
[ редактировать ]В модели актора существует теорема о вычислительном представлении для систем, которые закрыты в том смысле, что они не получают сообщений извне. Математическое обозначение, обозначаемое замкнутой системой строится на основе начального поведения и функция, аппроксимирующая поведение Они получают все более лучшие приближения и создают обозначение (смысл) для следующим образом [Hewitt 2008; Клингер 1981]:
Таким образом, может быть математически охарактеризовано с точки зрения всех возможных вариантов поведения (включая те, которые связаны с неограниченным недетерминизмом). Хотя не является реализацией , его можно использовать для доказательства обобщения тезиса Чёрча-Тьюринга-Россера-Клини [Kleene 1943]:
Следствием приведенной выше теоремы является то, что конечный актор может недетерминированно ответить несчетным числом. [ объяснить ] количество различных выходов.
Связь с логическим программированием
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( Март 2012 г. ) |
Одной из ключевых мотиваций для разработки модели актора было понимание и решение проблем структуры управления, возникших при разработке языка программирования Planner . [ нужна ссылка ] После того, как модель актора была первоначально определена, важной задачей было понять силу модели по сравнению с тезисом Роберта Ковальски о том, что «вычисления можно отнести к дедукции». Хьюитт утверждал, что тезис Ковальского оказался ложным для параллельных вычислений в модели актора (см. Неопределенность в параллельных вычислениях ).
Тем не менее, были предприняты попытки расширить логическое программирование до параллельных вычислений. Однако Хьюитт и Ага [1991] утверждали, что полученные системы не были дедуктивными в следующем смысле: вычислительные шаги систем параллельного логического программирования не следуют дедуктивно из предыдущих шагов (см. Неопределенность в параллельных вычислениях ). Недавно логическое программирование было интегрировано в модель актера таким образом, чтобы поддерживать логическую семантику. [ 21 ]
Миграция
[ редактировать ]Миграция в модели актеров — это возможность актеров менять местоположение. Например , в своей диссертации Аки Ёнезава смоделировал почтовое отделение, в которое субъекты-клиенты могли войти, изменить местоположение во время работы и выйти. Актера, который может мигрировать, можно смоделировать, имея актера местоположения, который изменяется при миграции актера. Однако достоверность этого моделирования является спорной и является предметом исследования. [ нужна ссылка ]
Безопасность
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( Август 2021 г. ) |
Безопасность субъектов может быть защищена следующими способами:
- жесткое соединение , при котором актеры физически связаны
- компьютерное оборудование , такое как Burroughs B5000 , Lisp машина и т. д.
- виртуальные машины, как виртуальная машина Java , Common Language Runtime такие и т. д.
- операционные системы , как в системах, основанных на возможностях
- подписание и/или шифрование субъектов и их адресов
Синтезирование адресов акторов
[ редактировать ]Этот раздел нуждается в дополнительных цитатах для проверки . ( Март 2012 г. ) |
Тонким моментом в модели актора является возможность синтезировать адрес актора. В некоторых случаях безопасность может использоваться для предотвращения синтеза адресов (см. Безопасность ). Однако, если адрес актера представляет собой просто битовую строку, то, очевидно, его можно синтезировать, хотя угадать адрес актера может быть сложно или даже невозможно, если битовые строки достаточно длинные. SOAP использует URL-адрес для адреса конечной точки, где можно связаться с актером. Поскольку URL-адрес представляет собой строку символов, его, очевидно, можно синтезировать, хотя шифрование делает угадывание практически невозможным.
Синтез адресов акторов обычно моделируется с помощью маппинга. Идея состоит в том, чтобы использовать систему актеров для сопоставления фактических адресов актеров. Например, на компьютере структуру памяти компьютера можно смоделировать как систему актеров, выполняющую отображение. В случае с адресами SOAP он моделирует DNS и остальную часть сопоставления URL-адресов .
Контраст с другими моделями параллельной передачи сообщений
[ редактировать ]Робина Милнера по параллелизму Первая опубликованная работа [ 23 ] был примечателен еще и тем, что не основывался на составлении последовательных процессов. Его работа отличалась от модели актера, поскольку она была основана на фиксированном количестве процессов фиксированной топологии, передающих числа и строки с использованием синхронной связи. Исходная модель взаимодействующих последовательных процессов (CSP) [ 24 ] опубликованная Тони Хоаром , отличалась от модели актера, поскольку она была основана на параллельной композиции фиксированного числа последовательных процессов, связанных в фиксированной топологии, и взаимодействии с использованием синхронной передачи сообщений на основе имен процессов (см. Модель актера и историю исчисления процессов ). . Более поздние версии CSP отказались от связи, основанной на именах процессов, в пользу анонимной связи через каналы - подход, который также использовался в работе Милнера по исчислению взаимодействующих систем и π-исчислению .
Обе эти ранние модели Милнера и Хоара обладали свойством ограниченного недетерминизма. Современная теоретическая CSP ([Hoare 1985] и [Roscoe 2005]) явно обеспечивает неограниченный недетерминизм.
Сети Петри и их расширения (например, цветные сети Петри) подобны актерам в том смысле, что они основаны на асинхронной передаче сообщений и неограниченном недетерминизме, и в то же время они похожи на ранние CSP в том, что они определяют фиксированные топологии элементарных шагов обработки (переходов) и хранилищ сообщений. (места).
Влияние
[ редактировать ]Модель актера оказала влияние как на разработку теории, так и на практическую разработку программного обеспечения.
Теория
[ редактировать ]Модель актора повлияла на развитие π-исчисления и последующих исчислений процессов . В своей лекции Тьюринга Робин Милнер написал: [ 25 ]
Теперь чистое лямбда-исчисление состоит всего из двух типов вещей: термов и переменных. Можем ли мы добиться такой же экономии при исчислении процессов? Карл Хьюитт со своей актерской моделью уже давно ответил на этот вызов; он заявил, что значение, оператор значений и процесс должны быть одним и тем же: актором.
Эта цель произвела на меня впечатление, потому что она предполагает однородность и полноту выражения... Но прошло много времени, прежде чем я смог увидеть, как достичь этой цели с помощью алгебраического исчисления...
Итак, в духе Хьюитта, наш первый шаг — потребовать, чтобы все вещи, обозначаемые терминами или доступные по именам — значения, регистры, операторы, процессы, объекты — принадлежали к одному и тому же виду; все они должны быть процессами.
Упражняться
[ редактировать ]Модель актера оказала большое влияние на коммерческую практику. Например, Twitter использовал актеров для масштабируемости. [ 26 ] Кроме того, Microsoft использовала модель актера при разработке своей библиотеки асинхронных агентов. [ 27 ] Существует множество других библиотек актеров, перечисленных в разделе «Библиотеки актеров и платформы» ниже.
Решенные проблемы
[ редактировать ]Согласно Хьюитту [2006], модель актера решает проблемы в компьютерной и коммуникационной архитектуре, параллельных языках программирования и веб-сервисах , включая следующие:
- Масштабируемость : проблема увеличения параллелизма как локально, так и нелокально.
- Прозрачность : преодоление пропасти между локальным и нелокальным параллелизмом. Прозрачность в настоящее время является спорным вопросом. Некоторые исследователи [ ВОЗ? ] выступают за строгое разделение между локальным параллелизмом с использованием параллельных языков программирования (например, Java и C# ) и нелокальным параллелизмом с использованием SOAP для веб-сервисов . Строгое разделение приводит к отсутствию прозрачности, что вызывает проблемы, когда желательно/необходимо переключаться между локальным и нелокальным доступом к веб-сервисам (см. Распределенные вычисления ).
- Непоследовательность : несогласованность является нормой, поскольку все очень большие системы знаний о взаимодействии человеческих информационных систем непоследовательны. Это несоответствие распространяется на документацию и спецификации очень больших систем (например, программного обеспечения Microsoft Windows и т. д.), которые внутренне противоречивы.
По тем же причинам многие идеи, представленные в модели акторов, теперь находят применение и в мультиагентных системах [Hewitt 2006b 2007b]. Ключевое отличие состоит в том, что агентские системы (в большинстве определений) накладывают дополнительные ограничения на участников, обычно требуя, чтобы они использовали обязательства и цели.
Программирование с актерами
[ редактировать ]В ряде различных языков программирования используется модель актера или некоторые ее варианты. К этим языкам относятся:
Ранние языки программирования актеров
[ редактировать ]Более поздние языки программирования актеров
[ редактировать ]Библиотеки и фреймворки актеров
[ редактировать ]Также были реализованы библиотеки или платформы актеров, позволяющие программировать в стиле актеров на языках, в которых нет встроенных актеров. Некоторые из этих рамок:
Имя | Статус | Последний выпуск | Лицензия | Языки |
---|---|---|---|---|
Октавия | Активный | 2024-01-02 | Апач 2.0 | Скала |
Абстракционатор | Активный | 2024-03-04 | Апач 2.0 | Ява |
Xcraft Гоблины | Активный | 2022-08-30 | С | JavaScript |
Реактед | Активный | 2022-11-30 | Апач 2.0 | Ява |
Актер | Активный | 2020-04-16 [ 47 ] | Апач 2.0 / Массачусетский технологический институт | Ржавчина |
Бастион | Активный | 2020-08-12 [ 48 ] | Апач 2.0 / Массачусетский технологический институт | Ржавчина |
Актикс | Активный | 2020-09-11 [ 49 ] | С | Ржавчина |
Аойет | Активный | 2016-10-17 | С | Быстрый |
Актер | Активный | 2017-03-09 | С | Ява |
Актер4j | Активный | 2020-01-31 | Апач 2.0 | Ява |
Актер | Активный | 2019-04-09 [ 50 ] | Апач 2.0 | Ява |
Верт.x | Активный | 2018-02-13 | Апач 2.0 | Java, Groovy, Javascript, Ruby, Scala, Kotlin, Ceylon |
АктерFX | Неактивный | 2013-11-13 | Апач 2.0 | .СЕТЬ |
Нравится (инструментарий) | Активный | 2022-09-06 [ 51 ] | Коммерческий [ 52 ] (с версии 2.7.0, Apache 2.0 до 2.6.20) | Ява и Скала |
Akka.NET | Активный | 2020-08-20 [ 53 ] | Апач 2.0 | .СЕТЬ |
Апач Пекко | Активный | 2023-07-26 [ 54 ] | Апач 2.0 | Ява и Скала |
в соответствии с | Активный | 2019-10-16 | Апач 2.0 | Java, .NET Core, Go, Javascript, Python, Rust и C++ |
ДОТНЕАКТОРЫ | Активный | 2021-06-14 | С | .NET, C#, служебная шина Azure |
Remact.Net | Неактивный | 2016-06-26 | С | .NET, Javascript |
Атеджи ПХ | Неактивный | ? | ? | Ява |
czmq | Активный | 2016-11-10 | МПЛ-2 | С |
F# процессор почтового ящика | Активный | то же, что и F# (встроенная базовая библиотека) | Лицензия Апач | Ф# |
Хор | Активный | 2010-02-04 | Лицензия GPL 3 | Ява |
Коврик [ 55 ] | Активный | 2018-11-09 [ 56 ] | С | Ява |
ActorFoundry (по мотивам Килима) | Неактивный | 2008-12-28 | ? | Ява |
АктерКит | Активный | 2011-09-13 [ 57 ] | БСД | Цель-C |
Облачный Хаскелл | Активный | 2024-04-30 [ 58 ] | БСД | Хаскелл |
ОблакоI | Активный | 2023-10-27 [ 59 ] | С | ATS, C/C++, Elixir/Erlang/LFE, Go, Haskell, Java, Javascript, OCaml, Perl, PHP, Python, Ruby, Rust |
беспорядок | Активный | 2017-05-12 [ 60 ] | LGPL 2.1 | C, C++ (cluttermm), Python (pyclutter), Perl (perl-Clutter) |
NAct | Неактивный | 2012-02-28 | LGPL 3.0 | .СЕТЬ |
Nact. Архивировано 5 февраля 2021 г. в Wayback Machine. | Активный | 2018-06-06 [ 61 ] | Апач 2.0 | JavaScript/ReasonML |
Ретланг | Неактивный | 2011-05-18 [ 62 ] | Новый БСД | .СЕТЬ |
JАктер | Неактивный | 2013-01-22 | LGPL | Ява |
Джетланг | Активный | 2013-05-30 [ 63 ] | Новый БСД | Ява |
Хаскелл-Актер | Активный? | 2008 | Новый БСД | Хаскелл |
ГПарс | Активный | 2014-05-09 [ 64 ] | Апач 2.0 | классный |
ООСМОС | Активный | 2019-05-09 [ 65 ] | GPL 2.0 и коммерческая (двойное лицензирование) | C. Совместимость с C++ |
Панини | Активный | 2014-05-22 | МПЛ 1.1 | Язык программирования сам по себе |
ПАРЛИ | Активный? | 2007-22-07 | Лицензионная лицензия 2.1 | Питон |
Пернетик | Активный | 2007-06-29 | LGPL 3.0 | Ява |
Пики | Активный | 2020-02-04 | С | КРЛ |
ПостШарп | Активный | 2014-09-24 | Коммерческий/ бесплатный | .СЕТЬ |
Пульсар | Активный | 2016-07-09 [ 66 ] | Новый БСД | Питон |
Пульсар | Активный | 2016-02-18 [ 67 ] | LGPL / Затмение | Кложур |
Пикка | Активный | 2019-05-07 [ 68 ] | Апач 2.0 | Питон |
Схема термитов | Активный? | 2009-05-21 | LGPL | Схема (реализация Гамбита) |
Терон | Неактивный [ 69 ] | 2014-01-18 [ 70 ] | С [ 71 ] | С++ |
Театрализованный | Активный | 2020-03-10 | С | Питон |
Квазар | Активный | 2018-11-02 [ 72 ] | LGPL / Затмение | Ява |
Либактор | Активный? | 2009 | Лицензионная лицензия 2.0 | С |
Актер-КПФ | Активный | 2012-03-10 [ 73 ] | Лицензионная лицензия 2.0 | С++ |
С4 | Неактивный | 2012-07-31 [ 74 ] | Апач 2.0 | Ява |
C++ Actor Framework (CAF) | Активный | 2020-02-08 [ 75 ] | Лицензия на программное обеспечение Boost 1.0 и пункт BSD 3 | С++11 |
Целлулоид | Активный | 2018-12-20 [ 76 ] | С | Руби |
Структура актеров LabVIEW | Активный | 2012-03-01 [ 77 ] | Соглашение об уровне обслуживания National Instruments | ЛабВЬЮ |
Библиотека сообщений LabVIEW | Активный | 2021-05-24 | БСД | ЛабВЬЮ |
Орбита | Активный | 2019-05-28 [ 78 ] | Новый БСД | Ява |
Платформы QP для встроенных систем реального времени | Активный | 2019-05-25 [ 79 ] | GPL 2.0 и коммерческая (двойное лицензирование) | С и С++ |
libпроцесс | Активный | 2013-06-19 | Апач 2.0 | С++ |
SObjectizer. Архивировано 10 августа 2020 г. на Wayback Machine. | Активный | 2021-12-28 [ 80 ] | Новый БСД | С++17 |
ротор | Активный | 2022-04-23 [ 81 ] | МОЯ лицензия | С++17 |
Орлеан | Активный | 2023-07-11 [ 82 ] | МОЯ лицензия | C#/.NET |
Скайнет | Активный | 2020-12-10 | МОЯ лицензия | С/Луна |
Reactors.IO | Активный | 2016-06-14 | Лицензия БСД | Java/Скала |
либагенты | Активный | 2020-03-08 | Лицензия на бесплатное программное обеспечение | С++11 |
Proto.Actor | Активный | 2021-01-05 | Лицензия на бесплатное программное обеспечение | Go, C#, Python, JavaScript, Котлин |
FunctionalJava. Архивировано 22 апреля 2021 г. на Wayback Machine. | Активный | 2018-08-18 [ 83 ] | BSD 3-пункт | Ява |
Райкер | Активный | 2019-01-04 | МОЯ лицензия | Ржавчина |
Комедия | Активный | 2019-03-09 | АПЛ 1.0 | JavaScript |
Актеры VLINGO XOOM | Активный | 2023-02-15 | Публичная лицензия Mozilla 2.0 | Java, Kotlin, языки JVM, C# .NET |
ВасмОблако | Активный | 2021-03-23 | Апач 2.0 | WebAssembly (Rust, TinyGo, Zig, AssemblyScript) |
луч | Активный | 2020-08-27 | Апач 2.0 | Питон |
клетка | Активный | 2012-08-02 | Новая лицензия BSD | Питон |
актер | Активный | 2022-08-16 | Лицензионная лицензия 3.0 | Идти |
Я чувствую | Активный | 2022-11-21 | Апач 2.0 | Общий Лисп |
Таррант | Активный | 2023-04-17 | С | Машинописный текст, Javascript |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Хьюитт, Карл ; Епископ Питер; Штайгер, Ричард (1973). «Универсальный модульный формализм актеров для искусственного интеллекта». IJCAI.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Jump up to: а б с д Уильям Клингер (июнь 1981 г.). «Основы семантики актеров». Докторская диссертация по математике. Массачусетский технологический институт. hdl : 1721.1/6935 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Jump up to: а б Ирен Грейф (август 1975 г.). «Семантика взаимодействия параллельных процессов». Докторская диссертация ЭЭКС. Массачусетский технологический институт.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Jump up to: а б Генри Бейкер ; Карл Хьюитт (август 1977 г.). «Законы связи параллельных процессов». ИФИП.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Законы взаимодействия параллельных процессов» (PDF) . 10 мая 1977 года. Архивировано (PDF) из оригинала 24 июня 2016 года . Проверено 11 июня 2014 г.
- ^ Jump up to: а б с Гуль Ага (1986). «Акторы: модель параллельных вычислений в распределенных системах». Докторская диссертация. МТИ Пресс. hdl : 1721.1/6952 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ "Дом" . Osl.cs.uiuc.edu. Архивировано из оригинала 22 февраля 2013 г. Проверено 2 декабря 2012 г.
- ^ Карл Хьюитт. Рассмотрение структур управления как шаблонов передачи сообщений Журнал искусственного интеллекта. Июнь 1977 года.
- ^ Jump up to: а б Гуль Ага; Ян Мейсон; Скотт Смит; Кэролин Талкотт (январь 1993 г.). «Фонд актерских вычислений». Журнал функционального программирования .
- ^ Карл Хьюитт (27 апреля 2006 г.). «Что такое обязательства? Физические, организационные и социальные» (PDF) . Архивировано (PDF) из оригинала 11 февраля 2021 г. Проверено 26 мая 2006 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Мауро Гаспари; Джанлуиджи Заваттаро (май 1997 г.). «Алгебра актеров» (PDF ) Формальные методы для открытых объектно-ориентированных распределенных систем . Технический отчет UBLCS-97-4. Болонский университет. стр. 100-1 3–18. дои : 10.1007/978-0-387-35562-7_2 . ISBN 978-1-4757-5266-3 . Архивировано (PDF) из оригинала 26 июля 2018 г. Проверено 08 апреля 2019 г.
- ^ М. Гаспари; Г. Заваттаро (1999). «Алгебра актеров». Формальные методы для открытых объектно-ориентированных систем.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Гуль Ага ; Прасанна Тати (2004). «Алгебраическая теория действующих лиц и ее применение к простому объектно-ориентированному языку» (PDF) . От OO до FM (Dahl Festschrift) LNCS 2635. Архивировано из оригинала (PDF) 20 апреля 2004 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Джон Дарлингтон; ЮК Го (1994). «Формализация действующих лиц в линейной логике». Международная конференция по объектно-ориентированным информационным системам.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Что такое модель актера и когда ее следует использовать?» . Мэтт Фердерер . Архивировано из оригинала 25 августа 2021 г. Проверено 25 августа 2021 г.
- ^ Чунг, Лео (25 июля 2017 г.). «Почему Akka и модель актера подходят для приложений Интернета вещей» . Инфомир . Архивировано из оригинала 25 августа 2021 г. Проверено 25 августа 2021 г.
- ^ Хансен, Пер Бринч (2002). Истоки параллельного программирования: от семафоров к удаленным вызовам процедур . Спрингер. ISBN 978-0-387-95401-1 .
- ^ Хансен, Пер Бринч (1996). «Мониторы и параллельный Паскаль: личная история». Сообщения ACM : 121–172.
- ^ Хоар, Тони (октябрь 1974 г.). «Мониторы: концепция структурирования операционной системы» . Коммуникации АКМ . 17 (10): 549–557. дои : 10.1145/355620.361161 . S2CID 1005769 .
- ^ Хансен, Пер Бринч (июль 1973 г.). Принципы операционной системы . Прентис-Холл.
- ^ Jump up to: а б Хьюитт, Карл (2012). «Что такое вычисления? Модель актера против модели Тьюринга». В Зениле, Гектор (ред.). Вычислимая Вселенная: понимание вычислений и исследование природы как вычислений. Посвящается памяти Алана М. Тьюринга к 100-летию со дня его рождения . Мировое научное издательство.
- ^ Фредерик Кнабе. Распределенный протокол для канальной связи с выбором PARLE 1992. Архивировано 31 августа 2017 г. в Wayback Machine .
- ^ Робин Милнер. Процессы: математическая модель вычислительных агентов на логическом коллоквиуме 1973.
- ^ АВТОМОБИЛЬ Хоара. Обмен последовательными процессами CACM. Август 1978 года.
- ^ Милнер, Робин (1993). «Элементы взаимодействия» . Коммуникации АКМ . 36 : 78–89. дои : 10.1145/151233.151240 .
- ^ «Как Twitter масштабируется «Блог Вайминга Мока» . Waimingmok.wordpress.com. 27 июня 2009 г. Архивировано из оригинала 05 февраля 2021 г. Проверено 2 декабря 2012 г.
- ^ « Акторное программирование с использованием библиотеки асинхронных агентов. Архивировано 31 августа 2017 г. в Wayback Machine », MSDN, сентябрь 2010 г.
- ^ Генри Либерман (июнь 1981 г.). «Предварительный просмотр акта 1». Памятка MIT AI 625. hdl : 1721.1/6350 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Генри Либерман (июнь 1981 г.). «Думать о множестве вещей одновременно, не запутываясь: параллелизм в акте 1». Памятка MIT AI 626. hdl : 1721.1/6351 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Жан-Пьер Брио. Acttalk: Структура объектно-ориентированного параллельного программирования, проектирование и опыт. 2-й франко-японский семинар. 1999. Архивировано 28 июня 2018 г. в Wayback Machine.
- ^ Кен Кан. Вычислительная теория анимации. Архивировано 18 августа 2017 г. в Wayback Machine. Докторская диссертация MIT EECS. Август 1979 года.
- ^ Уильям Атас и Нанетт Боден Кантор: Система актерского программирования для научных вычислений. Архивировано 8 апреля 2019 г. в Wayback Machine в материалах семинара NSF по объектно-ориентированному параллельному программированию. 1988. Специальный выпуск уведомлений SIGPLAN.
- ^ Даррелл Вулк. на основе актерского языка Разработка агентов InfoSleuth с использованием Rosette: материалы семинара CIKM '95 по интеллектуальным информационным агентам . 1995.
- ^ Дедекер Дж., Ван Катсем Т., Мостинкс С., Д'Хондт Т., Де Мойтер В. Эмбиент-ориентированное программирование в AmbientTalk. В «Материалах 20-й Европейской конференции по объектно-ориентированному программированию (ECOOP), Дэйв Томас (ред.), Конспекты лекций по информатике, том 4067, стр. 230–254, Springer-Verlag.», 2006 г.
- ^ Дэррил К. Тафт (17 апреля 2009 г.). «Microsoft готовит новый язык параллельного программирования» . Eweek.com. Архивировано из оригинала 29 июля 2012 года . Проверено 2 декабря 2012 г.
- ^ «Гумус» . Дальнефр.com. Архивировано из оригинала 07 февраля 2021 г. Проверено 2 декабря 2012 г.
- ^ Брандауэр, Стефан; и др. (2015). «Параллельные объекты для многоядерных процессоров: взгляд на параллельный язык на бис». Формальные методы многоядерного программирования . Springer International Publishing: 1–56.
- ^ «Язык пони» . Архивировано из оригинала 04 сентября 2018 г. Проверено 21 марта 2016 г.
- ^ Клебш, Сильван; Дроссопулу, София; Благословение, Себастьян; Макнил, Энди (2015). «Лишение возможностей для безопасных и быстрых актеров». Материалы 5-го международного семинара по программированию на основе акторов, агентов и децентрализованного управления - AGERE! 2015 . стр. 1–12. дои : 10.1145/2824815.2824816 . ISBN 9781450339018 . S2CID 415745 . Сильван Клебш, София Дроссопулу, Себастьян Блессинг, Энди МакНил
- ^ «Язык П» . Гитхаб . 08.03.2019. Архивировано из оригинала 15 января 2021 г. Проверено 1 февраля 2017 г.
- ^ «Язык P#» . Гитхаб . 2019-03-12. Архивировано из оригинала 23 марта 2021 г. Проверено 1 февраля 2017 г.
- ^ «класс Рактор» . Ruby-lang.org. Архивировано из оригинала 02 марта 2022 г. Проверено 02 марта 2022 г.
- ^ Карлос Варела и Гул Ага (2001). «Программирование динамически реконфигурируемых открытых систем с помощью SALSA». Уведомления ACM SIGPLAN. OOPSLA'2001: Интригующие технологии . 36 .
- ^ Филипп Халлер и Мартин Одерски (сентябрь 2006 г.). «Программирование на основе событий без инверсии управления» (PDF) . Учеб. JMLC 2006. Архивировано (PDF) из оригинала 09.11.2020 . Проверено 5 апреля 2007 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Филипп Халлер и Мартин Одерски (январь 2007 г.). «Акторы, объединяющие потоки и события» (PDF) . Технический отчет LAMP 2007. Архивировано из оригинала (PDF) 7 июня 2011 г. Проверено 10 декабря 2007 г.
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Руководство по языку Swift — параллелизм» . Архивировано из оригинала 1 марта 2022 года . Проверено 11 марта 2022 г.
- ^ "актёр - 0.9.1· Дэвид Боне · Crates.io" . crates.io. Архивировано из оригинала 05 февраля 2021 г. Проверено 16 апреля 2020 г.
- ^ Булут, Махмут (15 декабря 2019 г.). «Бастион на Crates.io» . Crates.io . Архивировано из оригинала 05 февраля 2021 г. Проверено 15 декабря 2019 г.
- ^ «actix - 0.10.0 · Роб Эде · Crates.io» . crates.io. Архивировано из оригинала 14 мая 2021 г. Проверено 28 февраля 2021 г.
- ^ «Релизы · zakgof/actr · GitHub» . Гитхаб.com. Архивировано из оригинала 26 октября 2020 г. Проверено 16 апреля 2019 г.
- ^ «По состоянию на 2.6.20 Выпущено · По состоянию на» . Как. 2022-09-0 Архивировано из оригинала 2 сентября 2022 г. Получено 2 сентября 2022 г.
- ^ «Часто задаваемые вопросы по лицензии Akka | @lightbend» . Архивировано из оригинала 22 сентября 2022 г. Проверено 24 сентября 2022 г.
- ^ Стабильная версия As.NET v1.4.10 GitHub — Akkadotnet/akka.net: Порт акторов Akka для .NET. , Akka.NET, 01 октября 2020 г., заархивировано из оригинала 24 февраля 2021 г. , получено 0 октября 2020 г.
- ^ Апач Пекко (Окончил) , Apache Software Foundation
- ^ Шринивасан, Шрирам; Алан Майкрофт (2008). «Килим: актеры изолированного типа для Java» (PDF) . Европейская конференция по объектно-ориентированному программированию ECOOP 2008 . Кипр. Архивировано (PDF) из оригинала 28 октября 2020 г. Проверено 25 февраля 2016 г.
- ^ «Релизы · килим/килим · GitHub» . Гитхаб.com. Архивировано из оригинала 16 октября 2020 г. Проверено 3 июня 2019 г.
- ^ «История коммитов · stevedekorte/ActorKit · GitHub» . Гитхаб.com . Проверено 25 февраля 2016 г.
- ^ «Взлом: репозиторий пакетов Haskell» . Хакадж . Проверено 1 мая 2024 г.
- ^ «CloudI: Облако на самом низком уровне · Активность» . sourceforge.net . Проверено 03 января 2024 г.
- ^ «Теги · GNOME/беспорядок · GitLab» . gitlab.gnome.org. Архивировано из оригинала 3 июня 2019 г. Проверено 3 июня 2019 г.
- ^ «Релизы · ncthbrt/nact · GitHub» . Гитхаб . Архивировано из оригинала 27 ноября 2020 г. Проверено 3 июня 2019 г.
- ^ «Изменения — retlang — параллелизм на основе сообщений в .NET — хостинг проектов Google» . Архивировано из оригинала 24 ноября 2015 г. Проверено 25 февраля 2016 г.
- ^ "jetlang-0.2.9-bin.zip - jetlang - jetlang-0.2.9-bin.zip - Параллелизм на основе сообщений для Java - Хостинг проектов Google" . 14 февраля 2012 г. Архивировано из оригинала 14 января 2016 г. Проверено 25 февраля 2016 г.
- ^ «Релизы GPars» . Гитхаб. Архивировано из оригинала 04 сентября 2020 г. Проверено 25 февраля 2016 г.
- ^ «Релизы · oosmos/oosmos · GitHub» . Гитхаб. Архивировано из оригинала 13 ноября 2020 г. Проверено 3 июня 2019 г.
- ^ «Дизайн Пульсара и действующие лица» . Архивировано из оригинала 4 июля 2015 г.
- ^ «Документация Пульсара» . Архивировано из оригинала 26 июля 2013 г.
- ^ «Изменения – документация Pykka 2.0.0» . pykka.org. Архивировано из оригинала 05 февраля 2021 г. Проверено 3 июня 2019 г.
- ^ «Терон – Эштон Мейсон» . Архивировано из оригинала 31 марта 2019 г. Проверено 29 августа 2018 г.
- ^ «Терон — выпущена версия 6.00.02» . Theron-library.com. Архивировано из оригинала 16 марта 2016 г. Проверено 25 февраля 2016 г.
- ^ «Терон» . Theron-library.com. Архивировано из оригинала 4 марта 2016 г. Проверено 25 февраля 2016 г.
- ^ «Релизы · puniverse/quasar · GitHub» . Гитхаб . Архивировано из оригинала 15 декабря 2020 г. Проверено 3 июня 2019 г.
- ^ «Изменения — актер-cpp — реализация модели актера для C++ — хостинг проектов Google» . Архивировано из оригинала 18 ноября 2015 г. Проверено 2 декабря 2012 г.
- ^ «История коммитов · s4/s4 · Apache» . apache.org. Архивировано из оригинала 06 марта 2016 г. Проверено 16 января 2016 г.
- ^ «Релизы · фреймворк актера/фреймворк актера · GitHub» . Гитхаб.com. Архивировано из оригинала 26 марта 2021 г. Проверено 7 марта 2020 г.
- ^ «целлулоид | RubyGems.org | хост драгоценных камней вашего сообщества» . RubyGems.org. Архивировано из оригинала 29 сентября 2020 г. Проверено 3 июня 2019 г.
- ^ «Сообщество: Actor Framework, редакция LV 2011 (версия 3.0.7)» . Децибел.ni.com. 2011-09-23. Архивировано из оригинала 13 октября 2016 г. Проверено 25 февраля 2016 г.
- ^ «Релизы · орбита/орбита · GitHub» . Гитхаб . Проверено 3 июня 2019 г.
- ^ «Встроенные платформы и инструменты QP реального времени — просмотр файлов на» . Sourceforge.net. Архивировано из оригинала 24 февраля 2021 г. Проверено 3 июня 2019 г.
- ^ «Релизы · Stiffstream/sobjectizer · GitHub» . Гитхаб. Архивировано из оригинала 19 октября 2020 г. Проверено 11 мая 2022 г.
- ^ «Релизы · basiliscos/cpp-rotor · GitHub» . Гитхаб. Архивировано из оригинала 15 сентября 2020 г. Проверено 17 мая 2022 г.
- ^ «Релизы · dotnet/orleans · GitHub» . Гитхаб. Архивировано из оригинала 04 декабря 2020 г. Проверено 21 сентября 2022 г.
- ^ «Выпуски функциональной Java» . Гитхаб. Архивировано из оригинала 15 января 2021 г. Проверено 23 августа 2018 г.
Дальнейшее чтение
[ редактировать ]- Гуль Ага. Актеры: модель параллельных вычислений в распределенных системах. Архивировано 12 ноября 2020 г. в Wayback Machine . Массачусетский технологический институт Пресс 1985.
- Пол Баран. О распределенных сетях связи . Транзакции IEEE в системах связи . Март 1964 года.
- Уильям А. Вудс. Грамматики сети переходов для анализа естественного языка. Архивировано 3 февраля 2017 г. в Wayback Machine CACM. 1970.
- Карл Хьюитт. Процедурное внедрение знаний в Planner. Архивировано 5 февраля 2021 г. в Wayback Machine IJCAI, 1971 г.
- ГМ Бертвистл, Оле-Йохан Даль , Б. Мирхауг и Кристен Нюгаард . SIMULA Begin Auerbach Publishers Inc, 1973.
- Карл Хьюитт и др. Индукция актеров и метаоценка. Архивировано 15 ноября 2022 г. на конференции Wayback Machine. Запись симпозиума ACM по принципам языков программирования, январь 1974 г.
- Карл Хьюитт и др. Поведенческая семантика нерекурсивной структуры управления. Архивировано 10 июня 2018 г. в Wayback Machine Proceedings of Colloque sur la Programmation, апрель 1974 г.
- Ирен Грейф и Карл Хьюитт. Семантика актеров PLANNER-73. Архивировано 5 февраля 2021 г. на конференции Wayback Machine. Запись симпозиума ACM по принципам языков программирования. Январь 1975 года.
- Карл Хьюитт. Как использовать то, что вы знаете IJCAI. Сентябрь 1975 года.
- Алан Кей и Адель Голдберг. Smalltalk-72 Инструкция по эксплуатации Xerox PARC Memo SSL-76-6. Май 1976 года.
- Эдсгер Дейкстра . Дисциплина программирования Прентис Холл. 1976.
- Карл Хьюитт и Генри Бейкер Актеры и непрерывные функционалы. Материалы рабочей конференции ИФИП по формальному описанию концепций программирования. 1–5 августа 1977 г.
- Карл Хьюитт и Расс Аткинсон. Синхронизация в акторных системах. Материалы 4-го симпозиума ACM SIGACT-SIGPLAN по принципам языков программирования. 1977 год
- Карл Хьюитт и Расс Аткинсон. Спецификация и методы доказательства для сериализаторов Журнал IEEE по разработке программного обеспечения. Январь 1979 года.
- Кен Кан. Вычислительная теория анимации. Архивировано 18 августа 2017 г. в Wayback Machine. Докторская диссертация MIT EECS. Август 1979 года.
- Карл Хьюитт, Беппе Аттарди и Генри Либерман. Делегирование по передаче сообщений. Материалы Первой международной конференции по распределенным системам. Хантсвилл, Алабама. Октябрь 1979 года.
- Ниссим Франсез , К.АР. Хоар, Дэниел Леманн и Виллем-Поль де Ровер . Семантика недетерминизма, параллелизма и коммуникации . Журнал компьютерных и системных наук. Декабрь 1979 года.
- Джордж Милн и Робин Милнер . Параллельные процессы и их синтаксис JACM. Апрель 1979 года.
- Даниэль Терио. Букварь по языку Act-1, записка MIT AI 672. Апрель 1982 г.
- Даниэль Терио. Проблемы разработки и реализации Акта 2. Архивировано 8 апреля 2019 г. в техническом отчете MIT AI MIT Wayback Machine № 728. Июнь 1983 г.
- Генри Либерман. Объектно-ориентированный симулятор для пасечной конференции Американской ассоциации искусственного интеллекта, Вашингтон, округ Колумбия, август 1983 г.
- Карл Хьюитт и Питер де Йонг. Анализ роли описаний и действий в открытых системах. Материалы Национальной конференции по искусственному интеллекту. Август 1983 года.
- Карл Хьюитт и Генри Либерман. Проблемы проектирования в параллельной архитектуре для искусственного интеллекта, записка MIT AI 750. Ноябрь 1983 г.
- АВТОМОБИЛЬ Хоар . Взаимодействие с последовательными процессами. Архивировано 1 февраля 2021 г. в Wayback Machine Prentice Hall. 1985.
- Карл Хьюитт. Проблема открытых систем Байта. Апрель 1985 г. Перепечатано в журнале «Основы искусственного интеллекта: справочник Cambridge University Press». 1990.
- Карл Мэннинг. Путешественник: актерская обсерватория ECOOP 1987. Также появляется в «Конспектах лекций по информатике» , том. 276.
- Мультикомпьютеры Уильяма Атаса и Чарльза Зейтца : параллельные компьютеры для передачи сообщений. Архивировано 5 февраля 2021 г. на компьютере Wayback Machine IEEE, август 1988 г.
- Уильям Атас и Нанетт Боден Кантор: Система актерского программирования для научных вычислений в материалах семинара NSF по объектно-ориентированному параллельному программированию. 1988. Специальный выпуск уведомлений SIGPLAN.
- Жан-Пьер Брио. От объектов к актерам: исследование ограниченного симбиоза в Smalltalk-80. Архивировано 25 ноября 2020 г. в Wayback Machine Rapport de Recherche 88–58, RXF-LITP, Париж, Франция, сентябрь 1988 г.
- Уильям Далли и Уиллс, Д. Универсальные механизмы параллелизма. Архивировано 18 июня 2018 г. в Wayback Machine PARLE 1989.
- В. Хорват, А. Чиен и В. Далли. Опыт работы с CST: программирование и реализация. Архивировано 14 мая 2021 г. в Wayback Machine } PLDI. 1989.
- Карл Хьюитт. На пути к семантике открытых информационных систем. Материалы 10-го международного семинара по распределенному искусственному интеллекту. 23–27 октября 1990 г. Бандера, Техас.
- Акинори Ёнезава, Эд. ABCL: объектно-ориентированная параллельная система MIT Press. 1990.
- К. Кан и Виджай А. Сарасват, « Акторы как особый случай параллельного программирования с ограничениями (логики) », в SIGPLAN Notes , октябрь 1990 г. Описывает Janus .
- Карл Хьюитт. Семантика открытых информационных систем Журнал искусственного интеллекта. Январь 1991 года.
- Карл Хьюитт и Джефф Инман. DAI между и между: от «интеллектуальных агентов» к открытым системным наукам. Транзакции IEEE о системах, человеке и кибернетике. Ноябрь/декабрь. 1991.
- Карл Хьюитт и Гуль Ага. Языки предложений защищенного Хорна: являются ли они дедуктивными и логическими? Международная конференция по компьютерным системам пятого поколения, Омша, 1988. Токио. Также в «Искусственном интеллекте» Массачусетского технологического института , Vol. 2. Массачусетский технологический институт Пресс, 1991.
- Уильям Далли и др. Процессор, управляемый сообщениями: многокомпьютерный узел обработки с эффективными механизмами. Архивировано 5 февраля 2021 г. в Wayback Machine IEEE Micro . Апрель 1992 года.
- С. Мирияла, Г. Ага и Ю.Сами. Визуализация программ актеров с использованием сетей переходов предикатов. Архивировано 10 ноября 2020 г. в Wayback Machine журнале визуального программирования . 1992.
- Карл Хьюитт и Карл Мэннинг. Архитектура переговоров для крупномасштабного антикризисного управления. Семинар AAAI-94 по моделям управления конфликтами при совместном решении проблем. Сиэтл, Вашингтон. 4 августа 1994 г.
- Карл Хьюитт и Карл Мэннинг. Синтетические инфраструктуры для межведомственных систем. Материалы ICMAS '96. Киото, Япония. 8–13 декабря 1996 г.
- С. Фролунд. Координация распределенных объектов: актерский подход к синхронизации MIT Press. Ноябрь 1996 года.
- В. Ким. ThAL: Актерская система для эффективных и масштабируемых параллельных вычислений. Архивировано 31 августа 2017 г. в докторской диссертации Wayback Machine . Университет Иллинойса в Урбана Шампейн. 1997.
- Жан-Пьер Брио. Acttalk: Структура объектно-ориентированного параллельного программирования, проектирование и опыт . 2-й франко-японский семинар. 1999.
- Н. Джамали, П. Тати и Г. Ага. Архитектура на основе актеров для настройки и управления ансамблями агентов. Архивировано 25 ноября 2020 г. в Wayback Machine IEEE Intelligent Systems. 14(2). 1999.
- Дон Бокс, Дэвид Энебуске, Гопал Какаявая, Эндрю Лэйман, Ноа Мендельсон, Хенрик Нильсен, Сатиш Татте, Дэйв Винер. Простой протокол доступа к объектам (SOAP) 1.1 Примечание W3C . Май 2000 года.
- М. Эстли, Д. Стурман и Г. Ага. Настраиваемое промежуточное программное обеспечение для модульного распределенного программного обеспечения. Архивировано 31 августа 2017 г. в Wayback Machine CACM. 44(5) 2001.
- Эдвард Ли, С. Нойендорфер и М. Виртлин. Актер-ориентированное проектирование встроенных аппаратных и программных систем. Архивировано 20 октября 2016 г. в журнале Wayback Machine Journal of Circuits, Systems and Computers . 2002.
- П. Тати, Р. Зиаи и Г. Ага. Теория Мэя. Формальные методы тестирования актеров для открытых объектно-ориентированных распределенных систем. Март 2002 года.
- П. Тати, Р. Зиаи и Г. Ага. Теория майского тестирования асинхронных исчислений с локальностью и отсутствием имени, соответствующего алгебраической методологии и технологии программного обеспечения. Спрингер Верлаг. Сентябрь 2002 г. LNCS 2422.
- Стивен Нойендорфер. Актер-ориентированное метапрограммирование. Архивировано 25 сентября 2020 г. в докторской диссертации Wayback Machine . Калифорнийский университет, Беркли. Декабрь 2004 г.
- Карл Хьюитт (2006a) Повторяющийся упадок логического программирования и почему оно будет перевоплощено Что пошло не так и почему: уроки исследований и приложений искусственного интеллекта. Технический отчет SS-06-08. АААИ Пресс. Март 2006 года.
- Карл Хьюитт (2006b) Что такое приверженность? Физические, организационные и социальные. Архивировано 11 февраля 2021 г. в Wayback Machine COIN@AAMAS. 27 апреля 2006б.
- Карл Хьюитт (2007a) Что такое приверженность? Физические, организационные и социальные (пересмотренные) Пабло Норьега и др. редакторы. LNAI 4386. Шпрингер-Верлаг. 2007.
- Карл Хьюитт (2007b) Крупномасштабные организационные вычисления требуют нестратифицированной паранепротиворечивости и рефлексии. Архивировано 25 ноября 2020 г. в Wayback Machine COIN@AAMAS'07.
- Д. Шаруссе, Т. К. Шмидт, Р. Хисген и М. Велиш. Нативные актеры: масштабируемая программная платформа для распределенных гетерогенных сред в AGERE! '13 Материалы семинара 2013 г. «Программирование на основе действующих лиц, агентов и децентрализованного контроля».
Внешние ссылки
[ редактировать ]- Хьюитт, Мейер и Шиперски: Модель актера (все, что вы хотели знать, но боялись спросить) Microsoft Channel 9. 9 апреля 2012 г. Видео на YouTube
- Функциональная Java. Архивировано 9 июля 2011 г. на Wayback Machine — библиотека Java, которая включает в себя реализацию параллельных актеров с примерами кода в стандартном стиле Java и Java 7 BGGA.
- ActorFoundry – библиотека на основе Java для программирования актеров. Знакомый синтаксис Java, файл сборки ant и множество примеров делают входной барьер очень низким.
- ActiveJava — прототип расширения языка Java для программирования актеров.
- Akka — библиотека актеров на Scala и Java от Lightbend Inc.
- GPars — библиотека параллелизма для Apache Groovy и Java.
- Библиотека асинхронных агентов — библиотека актеров Microsoft для Visual C++. «Библиотека агентов — это библиотека шаблонов C++, которая поддерживает модель программирования на основе актеров и внутрипроцессную передачу сообщений для крупномасштабных потоков данных и задач конвейерной обработки».
- ActorThread в C++11 — базовый шаблон, предоставляющий суть модели актера поверх голых потоков в стандарте C++11.