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...
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Bibliography
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
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
Agha G (1986) Actors: a model of concurrent computation in distributed systems. MIT Press, Cambridge, MA
Agha G (1990) Concurrent object-oriented programming. Commun ACM 33(9): 125–141
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
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
Agha G, Mason IA, Smith S, Talcott C (1997) A foundation for actor computation. J Funct Program 7(01):1–72
Armstrong J (2007) Programming Erlang: software for a concurrent World. Pragmatic Bookshelf, Raleigh, NC
Astley M, Sturman D, Agha G (2001) Customizable middleware for modular distributed software. Commun ACM 44(5):99–107
Astley M (1998–1999) The actor foundry: a java-based actor programming environment. Open Systems Laboratory, University of Illinois at Urbana-Champaign, Champaign, IL
Briot JP, Guerraoui R, Lohr KP (1998) Concurrency and distribution in object-oriented programming. ACM Comput Surv 30(3): 291–329
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
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
Carriero N, Gelernter D (1989) Linda in context. Commun ACM 32:444–458
Caromel D, Henrio L, Serpette BP (2009) Asynchronous sequential processes. Inform Comput 207(4):459–495
Intel Corporation. Single-chip cloud computer. http://techresearch.intel.com/ProjectDetails.aspx?Id=1
Microsoft Corporation. Asynchronous agents library. http://msdn.microsoft.com/enus/library/dd492627(VS.100).aspx
Microsoft Corporation. Axum programming language. http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx
Tilera Corporation. TILE-Gx processor family. http://tilera.com/products/processors/TILE-Gxfamily
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
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
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
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
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
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
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
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
Kale LV, Krishnan S (1993) Charm\(++\): a portable concurrent object oriented system based on \(\textrm{ c} + +\). ACM SIGPLAN Not 28(10): 91–108
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
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
Lee EA (2003) Overview of the ptolemy project. Technical report UCB/ERL M03/25. University of California, Berkeley
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
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
Ren S, Agha GA (1995) Rtsynchronizer: language support for real-time specifications in distributed systems. ACM SIGPLAN Not 30(11):50–59
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
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
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
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
Srinivasan S, Mycroft A (2008) Kilim: isolation typed actors for java. In: Procedings of the European conference on object oriented programming (ECOOP), Springer, Berlin
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
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
Varela C, Agha G (2001) Programming dynamically reconfigurable open systems with SALSA. ACM SIGPLAN Notices 36(12): 20–34
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
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
Yonezawa A (ed) (1990) ABCL: an object-oriented concurrent system. MIT Press, Cambridge, MA
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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
DOI: https://doi.org/10.1007/978-0-387-09766-4_125
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-09765-7
Online ISBN: 978-0-387-09766-4
eBook Packages: Computer ScienceReference Module Computer Science and Engineering