Модель акторів — математична модель паралельних обчислень, побудована на основі поняття «актора» (англ. 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].

ПриміткиРедагувати

  1. Середовище виконання SmallTalk як сучасний приклад реалізації (сайт проекту Pharo). 
  2. Генрі Ліберман. Розгляд Act 1. MIT AI, червень 1981(англ.)
  3. Генрі Ліберман. Мислення про багато що одночасно без плутанини: Паралелізм в Act 1. MIT AI, червень 1981(англ.)
  4. Jean-Pierre Briot. Acttalk: A framework for object-oriented concurrent programming-design and experience 2nd France-Japan workshop. 1999.
  5. Ken Kahn. A Computational Theory of Animation MIT EECS Doctoral Dissertation. August 1979.
  6. 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.
  7. Darrell Woelk. Developing InfoSleuth Agents Using Rosette: An Actor Based Language Proceedings of the CIKM '95 Workshop on Intelligent Information Agents. 1995.
  8. 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
  9. Microsoft Cooking Up New Parallel Programming Language — Application Development — News & Reviews — eWeek.com
  10. Dave Thomas. Chapter 14. Working with Multiple Processes // Programming Elixir. — Pragmatic Bookshelf, 2014. — 280 p. — ISBN 978-1-937785-58-1.
  11. Carlos Varela and Gul Agha. Programming Dynamically Reconfigurable Open Systems with SALSA. ACM SIGPLAN Notices. OOPSLA'2001 Intriguing Technology Track Proceedings, 2001
  12. Philipp Haller and Martin Odersky, Event-Based Programming without Inversion of Control, Proc. JMLC, September, 2006
  13. Philipp Haller and Martin Odersky, Actors that Unify Threads and Events. Technical report LAMP, January, 2007. Архів оригіналу за 2011-06-07. Процитовано 2011-02-14.