Модель акторів

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Модель акторів — математична модель паралельних обчислень, побудована на основі поняття «актора» (англ. 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). Архів оригіналу за 7 червня 2017. Процитовано 29 січня 2020.
  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. Архів оригіналу за 29 липня 2012. Процитовано 29 січня 2020.
  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 (PDF). Архів оригіналу (PDF) за 9 листопада 2020. Процитовано 29 січня 2020.
  13. Philipp Haller and Martin Odersky, Actors that Unify Threads and Events. Technical report LAMP, January, 2007 (PDF). Архів оригіналу (PDF) за 7 червня 2011. Процитовано 14 лютого 2011.