Модель акторів
Модель акторів — математична модель паралельних обчислень, побудована на основі поняття «актора» (англ. actor — актор, діючий суб'єкт), яке вважається універсальним примітивом паралельного виконання. Актор в даній моделі взаємодіє з іншими акторами шляхом надсилання та отримання повідомлень. Отримавши повідомлення актор може опрацювати його, створити нових акторів, надіслати власні повідомлення, змінити власний стан, в тому числі стратегію опрацювання наступних отриманих повідомлень чи завершити свою роботу.
Дана модель виступає у якості теоретичної основи для ряду практичних реалізацій систем паралельних обчислень.
Модель акторів та мови програмування
Мова програмування SmallTalk[1] побудована виключно на взаємодії об'єктів за допомогою відсилання повідомлень один одному. При цьому код кожного об'єкту виконується паралельно в ізольованому від сусідів середовищі.
Ранні мови програмування з підтримкою акторів — Act 1, 2 та 3[2][3],
Acttalk[4],
Ani[5],
Cantor[6],
Rosette[7]
Пізніше створені мови, орієнтовані на модель акторів: Actor-Based Concurrent Language (ABCL), ActorScript, AmbientTalk[8], Axum[9].
Мови загального призначення з моделлю акторів — E, Elixir[10], Erlang, Io, SALSA[11], Scala[12][13].
Примітки
- Середовище виконання SmallTalk як сучасний приклад реалізації (сайт проекту Pharo).
- Генрі Ліберман. Розгляд Act 1. MIT AI, червень 1981(англ.)
- Генрі Ліберман. Мислення про багато що одночасно без плутанини: Паралелізм в Act 1. MIT AI, червень 1981(англ.)
- Jean-Pierre Briot. Acttalk: A framework for object-oriented concurrent programming-design and experience 2nd France-Japan workshop. 1999.
- Ken Kahn. A Computational Theory of Animation MIT EECS Doctoral Dissertation. August 1979.
- William Athas and Nanette Boden Cantor: An Actor Programming System for Scientific Computing in Proceedings of the NSF Workshop on Object-Based Concurrent Programming. 1988. Special Issue of SIGPLAN Notices.
- Darrell Woelk. Developing InfoSleuth Agents Using Rosette: An Actor Based Language Proceedings of the CIKM '95 Workshop on Intelligent Information Agents. 1995.
- Dedecker J., Van Cutsem T., Mostinckx S., D'Hondt T., De Meuter W. Ambient-oriented Programming in AmbientTalk. In «Proceedings of the 20th European Conference on Object-Oriented Programming (ECOOP), Dave Thomas (Ed.), Lecture Notes in Computer Science Vol. 4067, pp. 230—254, Springer-Verlag.», 2006
- Microsoft Cooking Up New Parallel Programming Language — Application Development — News & Reviews — eWeek.com
- Dave Thomas. Chapter 14. Working with Multiple Processes // Programming Elixir. — Pragmatic Bookshelf, 2014. — 280 p. — ISBN 978-1-937785-58-1.
- Carlos Varela and Gul Agha. Programming Dynamically Reconfigurable Open Systems with SALSA. ACM SIGPLAN Notices. OOPSLA'2001 Intriguing Technology Track Proceedings, 2001
- Philipp Haller and Martin Odersky, Event-Based Programming without Inversion of Control, Proc. JMLC, September, 2006
- Philipp Haller and Martin Odersky, Actors that Unify Threads and Events. Technical report LAMP, January, 2007. Архів оригіналу за 7 червня 2011. Процитовано 14 лютого 2011.