Skip to main content

Definition

Actors is a model of concurrent computation for developing parallel, distributed, and mobile systems. Each actor is an autonomous object that operates concurrently and asynchronously, receiving and sending messages to other actors, creating new actors, and updating its own local state. An actor system consists of a collection of actors, some of whom may send messages to, or receive messages from, actors outside the system.

Preliminaries

An actor has a name that is globally unique and a behavior which determines its actions. In order to send an actor a message, the actor’s name must be used; a name cannot be guessed but it may be communicated in a message. When an actor is idle, and it has a pending message, the actor accepts the message and does the computation defined by its behavior. As a result, the actor may take three types of actions: send messages, create new actors, and updateits local state. An actor’s behavior may change as it modifies its local state. Actors do...

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Bibliography

  1. Agha G, Callsen CJ (1993) Actorspace: an open distributed programming paradigm. In: Proceedings of the fourth ACM SIGPLAN symposium on principles and practice of parallel programming (PPoPP), San Diego, CA. ACM, New York, pp 23–32

    Google Scholar 

  2. Agha G, Frolund S, Kim WY, Panwar R, Patterson A, Sturman D (1993) Abstraction and modularity mechanisms for concurrent computing. IEEE Trans Parallel Distr Syst 1(2):3–14

    Article  Google Scholar 

  3. Agha G (1986) Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge, MA

    Google Scholar 

  4. Agha G (1990) Concurrent object-oriented programming. Commun ACM 33(9): 125–141

    Article  Google Scholar 

  5. Arts T, Hughes J, Johansson J, Wiger U (2006) Testing telecoms software with quviq quickcheck. In: ERLANG ’06: proceedings of the 2006 ACM SIGPLAN workshop on Erlang. ACM, New York, pp 2–10

    Google Scholar 

  6. Agha G, Kim WY (2002) Parallel programming and complexity analysis using actors. In: Proceedings: third working conference on massively parallel programming models, 1997, London. IEEE Computer Society Press, Los Alamitos, CA, pp 68–79

    Google Scholar 

  7. Agha G, Mason IA, Smith S, Talcott C (1997) A foundation for actor computation. J Funct Program 7(01):1–72

    Article  MATH  MathSciNet  Google Scholar 

  8. Armstrong J (2007) Programming Erlang: software for a concurrent World. Pragmatic Bookshelf, Raleigh, NC

    Google Scholar 

  9. Astley M, Sturman D, Agha G (2001) Customizable middleware for modular distributed software. Commun ACM 44(5):99–107

    Article  Google Scholar 

  10. Astley M (1998–1999) The actor foundry: a java-based actor programming environment. Open Systems Laboratory, University of Illinois at Urbana-Champaign, Champaign, IL

    Google Scholar 

  11. Briot JP, Guerraoui R, Lohr KP (1998) Concurrency and distribution in object-oriented programming. ACM Comput Surv 30(3): 291–329

    Article  Google Scholar 

  12. Chang PH, Agha G (2007) Towards context-aware web applications. In: 7th IFIP international conference on distributed applications and interoperable systems (DAIS), 2007, Paphos, Cyprus. LNCS 4531, Springer, Berlin

    Google Scholar 

  13. Clavel M, Durán F, Eker S, Lincoln P, Martí-Oliet N, Meseguer J, Talcott C (2007) All about maude – a high-performance logical framework: how to specify, program and verify systems in rewriting logic. Springer, Berlin

    MATH  Google Scholar 

  14. Carriero N, Gelernter D (1989) Linda in context. Commun ACM 32:444–458

    Article  Google Scholar 

  15. Caromel D, Henrio L, Serpette BP (2009) Asynchronous sequential processes. Inform Comput 207(4):459–495

    Article  MATH  MathSciNet  Google Scholar 

  16. Intel Corporation. Single-chip cloud computer. http://techresearch.intel.com/ProjectDetails.aspx?Id=1

  17. Microsoft Corporation. Asynchronous agents library. http://msdn.microsoft.com/enus/library/dd492627(VS.100).aspx

  18. Microsoft Corporation. Axum programming language. http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx

  19. Tilera Corporation. TILE-Gx processor family. http://tilera.com/products/processors/TILE-Gxfamily

  20. Fähndrich M, Aiken M, Hawblitzel C, Hodson O, Hunt G, Larus JR, Levi S (2006) Language support for fast and reliable message-based communication in singularity OS. SIGOPS Oper Syst Rev 40(4):177–190

    Article  Google Scholar 

  21. Feng TH, Lee EA (2008) Scalable models using model transformation. In: 1st international workshop on model based architecting and construction of embedded systems (ACESMB), Toulouse, France

    Google Scholar 

  22. Houck C, Agha G (1992) Hal: a high-level actor language and its distributed implementation. In: 21st international conference on parallel processing (ICPP), vol II, An Arbor, MI, pp 158–165

    Google Scholar 

  23. Hewitt C (1969) PLANNER: a language for proving theorems in robots. In: Proceedings of the 1st international joint conference on artificial intelligence, Morgan Kaufmann, San Francisco, CA, pp 295–301

    Google Scholar 

  24. Haller P, Odersky M (2007) Actors that unify threads and events. In: 9th International conference on coordination models and languages, vol 4467 of lecture notes in computer science, Springer, Berlin

    Google Scholar 

  25. Haller P, Odersky M (2010) Capabilities for uniqueness and borrowing. In: D’Hondt T (ed) ECOOP 2010 object-oriented programming, vol 6183 of lecture notes in computer science, Springer, Berlin, pp 354–378

    Chapter  Google Scholar 

  26. Kim WY, Agha G (1995) Efficient support of location transparency in concurrent object-oriented programming languages. In: Supercomputing ’95: proceedings of the 1995 ACM/IEEE conference on supercomputing, San Diego, CA. ACM, New York, p 39

    Google Scholar 

  27. Korthikanti VA, Agha G (2010) Towards optimizing energy costs of algorithms for shared memory architectures. In: SPAA ’10: proceedings of the 22nd ACM symposium on parallelism in algorithms and architectures, Santorini, Greece. ACM, New York, pp 157–165

    Google Scholar 

  28. Kale LV, Krishnan S (1993) Charm\(++\): a portable concurrent object oriented system based on \(\textrm{ c} + +\). ACM SIGPLAN Not 28(10): 91–108

    Article  Google Scholar 

  29. Karmani RK, Shali A, Agha G (2009) Actor frameworks for the JVM platform: a comparative analysis. In: PPPJ ’09: proceedings of the 7th international conference on principles and practice of programming in java, Calgary, Alberta. ACM, New York, pp 11–20

    Google Scholar 

  30. Lauterburg S, Dotta M, Marinov D, Agha G (2009) A framework for state-space exploration of javabased actor programs. In: ASE ’09: proceedings of the 2009 IEEE/ACM international conference on automated software engineering, Auckland, New Zealand. IEEE Computer Society, Washington, DC, pp 468–479

    Google Scholar 

  31. Lee EA (2003) Overview of the ptolemy project. Technical report UCB/ERL M03/25. University of California, Berkeley

    Google Scholar 

  32. Lauterburg S, Karmani RK, Marinov D, Agha G (2010) Evaluating ordering heuristics for dynamic partialorder reduction techniques. In: Fundamental approaches to software engineering (FASE) with ETAPS, 2010, LNCS 6013, Springer, Berlin

    Google Scholar 

  33. Negara S, Karmani RK, Agha G (2011) Inferring ownership transfer for efficient message passing. In: To appear in the 16th ACM SIGPLAN symposium on principles and practice of parallel programming (PPoPP). ACM, New York

    Google Scholar 

  34. Ren S, Agha GA (1995) Rtsynchronizer: language support for real-time specifications in distributed systems. ACM SIGPLAN Not 30(11):50–59

    Article  Google Scholar 

  35. Sturman D, Agha G (1994) A protocol description language for customizing failure semantics. In: Proceedings of the thirteenth symposium on reliable distributed systems, Dana Point, CA. IEEE Computer Society Press, Los Alamitos, CA, pp 148–157

    Google Scholar 

  36. Sen K, Agha G (2006) Automated systematic testing of open distributed programs. In: Fundamental approaches to software engineering (FASE), volume 3922 of lecture notes in computer science, Springer, Berlin, pp 339–356

    Google Scholar 

  37. Kliot G, Larus J, Pandya R, Thelin J, Bykov S, Geller A (2010) Orleans: a framework for cloud computing. Technical report MSR-TR-2010-159, Microsoft Research

    Google Scholar 

  38. Singh V, Kumar V, Agha G, Tomlinson C (1991) Scalability of parallel sorting on mesh multicomputers. In: Parallel processing symposium, 1991. Proceedings, fifth international. Anaheim, CA, pp 92–101

    Google Scholar 

  39. Srinivasan S, Mycroft A (2008) Kilim: isolation typed actors for java. In: Procedings of the European conference on object oriented programming (ECOOP), Springer, Berlin

    Google Scholar 

  40. Schäfer J, Poetzsch-Heffter A (2010) Jcobox: generalizing active objects to concurrent components. In: Proceedings of the 24th European conference on object-oriented programming, ECOOP’10, Maribor, Slovenia. Springer, Berlin/Heidelberg pp 275–299

    Google Scholar 

  41. Sen K, Vardhan A, Agha G, Rosu G (2004) Efficient decentralized monitoring of safety in distributed systems. In: ICSE ’04: proceedings of the 26th international conference on software engineering, Edinburg, UK. IEEE Computer Society. Washington, DC, pp 418–427

    Google Scholar 

  42. Varela C, Agha G (2001) Programming dynamically reconfigurable open systems with SALSA. ACM SIGPLAN Notices 36(12): 20–34

    Article  Google Scholar 

  43. Venkatasubramanian N, Agha G, Talcott C (1992) Scalable distributed garbage collection for systems of active objects. In: Bekkers Y, Cohen J (eds) International workshop on memory management, ACM SIGPLAN and INRIA, St. Malo, France. Lecture notes in computer science, vol 637, Springer, Berlin, pp 134–148

    Google Scholar 

  44. Visser W, Havelund K, Brat G, Park S (2000) Model checking programs. In: Proceedings of the 15th IEEE international conference on automated software engineering, ASE ’00, Grenoble, France. IEEE Computer Society, Washington, DC, pp 3

    Google Scholar 

  45. Yonezawa A (ed) (1990) ABCL: an object-oriented concurrent system. MIT Press, Cambridge, MA

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Karmani, R.K., Agha, G. (2011). Actors. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_125

Download citation

Publish with us

Policies and ethics