The actor model in
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
is a
mathematical model
A mathematical model is a description of a system using mathematical concepts and language. The process of developing a mathematical model is termed mathematical modeling. Mathematical models are used in the natural sciences (such as physics, ...
of
concurrent computation that treats ''actor'' as the universal primitive of concurrent computation. In response to a
message it receives, an actor can: make local decisions, create more actors, send more messages, and determine how to respond to the next message received. Actors may modify their own
private state
In software systems, encapsulation refers to the bundling of data with the mechanisms or methods that operate on the data, or the limiting of direct access to some data, such as an object's components. Encapsulation allows developers to present a c ...
, but can only affect each other indirectly through messaging (removing the need for
lock-based synchronization).
The actor model originated in 1973. It has been used both as a framework for a
theoretical understanding of
computation and as the theoretical basis for several
practical implementations of
concurrent systems. The relationship of the model to other work is discussed in
actor model and process calculi
In computer science, the Actor model and process calculi are two closely related approaches to the modelling of concurrent digital computation. See Actor model and process calculi history.
There are many similarities between the two approaches ...
.
History
According to
Carl Hewitt, unlike previous models of computation, the actor model was inspired by
physics
Physics is the natural science that studies matter, its fundamental constituents, its motion and behavior through space and time, and the related entities of energy and force. "Physical science is that department of knowledge which rel ...
, including
general relativity
General relativity, also known as the general theory of relativity and Einstein's theory of gravity, is the geometric theory of gravitation published by Albert Einstein in 1915 and is the current description of gravitation in modern physics. ...
and
quantum mechanics
Quantum mechanics is a fundamental theory in physics that provides a description of the physical properties of nature at the scale of atoms and subatomic particles. It is the foundation of all quantum physics including quantum chemistry, q ...
. It was also influenced by the programming languages
Lisp
A lisp is a speech impairment in which a person misarticulates sibilants (, , , , , , , ). These misarticulations often result in unclear speech.
Types
* A frontal lisp occurs when the tongue is placed anterior to the target. Interdental lispi ...
,
Simula
Simula is the name of two simulation programming languages, Simula I and Simula 67, developed in the 1960s at the Norwegian Computing Center in Oslo, by Ole-Johan Dahl and Kristen Nygaard. Syntactically, it is an approximate superset of AL ...
, early versions of
Smalltalk
Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by ...
,
capability-based systems, and
packet switching
In telecommunications, packet switching is a method of grouping Data (computing), data into ''network packet, packets'' that are transmitted over a digital Telecommunications network, network. Packets are made of a header (computing), header and ...
. Its development was "motivated by the prospect of highly parallel computing machines consisting of dozens, hundreds, or even thousands of independent microprocessors, each with its own local memory and communications processor, communicating via a high-performance communications network."
Since that time, the advent of massive concurrency through
multi-core and
manycore computer architectures has revived interest in the actor model.
Following Hewitt, Bishop, and Steiger's 1973 publication,
Irene Greif
Irene Greif is an American computer scientist and a founder of the field of computer-supported cooperative work (CSCW). She was the first woman to earn a Ph.D. in computer science from the Massachusetts Institute of Technology.
Biography
Greif's ...
developed an
operational semantics for the actor model as part of her doctoral research.
Two years later,
Henry Baker and Hewitt published a set of axiomatic laws for actor systems.
Other major milestones include
William Clinger's 1981 dissertation introducing a
denotational semantics based on
power domains In denotational semantics and domain theory, power domains are domains of nondeterministic and concurrent computations.
The idea of power domains for functions is that a nondeterministic function may be described as a deterministic set-valued func ...
and
Gul Agha's 1985 dissertation which further developed a transition-based semantic model complementary to Clinger's.
This resulted in the full development of
actor model theory
In theoretical computer science, Actor model theory concerns theoretical issues for the Actor model.
Actors are the primitives that form the basis of the Actor model of concurrent digital computation. In response to a message that it receives, a ...
.
Major software implementation work was done by Russ Atkinson, Giuseppe Attardi, Henry Baker, Gerry Barber, Peter Bishop, Peter de Jong, Ken Kahn, Henry Lieberman, Carl Manning, Tom Reinhardt, Richard Steiger and Dan Theriault in the Message Passing Semantics Group at
Massachusetts Institute of Technology
The Massachusetts Institute of Technology (MIT) is a Private university, private Land-grant university, land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern t ...
(MIT). Research groups led by Chuck Seitz at
California Institute of Technology (Caltech) and
Bill Dally at MIT constructed computer architectures that further developed the message passing in the model. See
Actor model implementation
In computer science, Actor model implementation concerns implementation issues for the Actor model.
Cosmic Cube
The Caltech Cosmic Cube was developed by Chuck Seitz ''et al.'' at Caltech providing architectural support for Actor systems. A sign ...
.
Research on the actor model has been carried out at
California Institute of Technology,
Kyoto University Tokoro Laboratory,
Microelectronics and Computer Technology Corporation (MCC),
MIT Artificial Intelligence Laboratory,
SRI,
Stanford University,
University of Illinois at Urbana–Champaign,
Pierre and Marie Curie University (University of Paris 6),
University of Pisa,
University of Tokyo
, abbreviated as or UTokyo, is a public research university located in Bunkyō, Tokyo, Japan. Established in 1877, the university was the first Imperial University and is currently a Top Type university of the Top Global University Project by ...
Yonezawa Laboratory,
Centrum Wiskunde & Informatica (CWI) and elsewhere.
Fundamental concepts
The actor model adopts the philosophy that ''everything is an actor''. This is similar to the ''everything is an object'' philosophy used by some
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
languages.
An actor is a computational entity that, in response to a message it receives, can concurrently:
* send a finite number of messages to other actors;
* create a finite number of new actors;
* designate the behavior to be used for the next message it receives.
There is no assumed sequence to the above actions and they could be carried out in parallel.
Decoupling the sender from communications sent was a fundamental advance of the actor model enabling
asynchronous communication and control structures as patterns of
passing messages.
Recipients of messages are identified by address, sometimes called "mailing address". Thus an actor can only communicate with actors whose addresses it has. It can obtain those from a message it receives, or if the address is for an actor it has itself created.
The actor model is characterized by inherent concurrency of computation within and among actors, dynamic creation of actors, inclusion of actor addresses in messages, and interaction only through direct asynchronous
message passing with no restriction on message arrival order.
Formal systems
Over the years, several different formal systems have been developed which permit reasoning about systems in the actor model. These include:
*
Operational semantics
* Laws for actor systems
*
Denotational semantics
* Transition semantics
There are also formalisms that are not fully faithful to the actor model in that they do not formalize the guaranteed delivery of messages including the following (See
Attempts to relate actor semantics to algebra and linear logic):
* Several different actor algebras
*
Linear logic
Applications
The actor model can be used as a framework for modeling, understanding, and reasoning about a wide range of
concurrent systems. For example:
* Electronic mail (
email) can be modeled as an actor system. Accounts are modeled as actors and
email address
An email address identifies an email box to which messages are delivered. While early messaging systems used a variety of formats for addressing, today, email addresses follow a set of specific rules originally standardized by the Internet Enginee ...
es as actor addresses.
*
Web services can be modeled with Simple Object Access Protocol (
SOAP
Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are used ...
) endpoints modeled as actor addresses.
* Objects with
locks (''e.g.'', as in
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
and
C#) can be modeled as a ''serializer'', provided that their implementations are such that messages can continually arrive (perhaps by being stored in an internal
queue). A serializer is an important kind of actor defined by the property that it is continually available to the arrival of new messages; every message sent to a serializer is guaranteed to arrive.
* Testing and Test Control Notation (
TTCN), both TTCN-2 and
TTCN-3, follows actor model rather closely. In TTCN actor is a test component: either parallel test component (PTC) or main test component (MTC). Test components can send and receive messages to and from remote partners (peer test components or test system interface), the latter being identified by its address. Each test component has a behaviour tree bound to it; test components run in parallel and can be dynamically created by parent test components. Built-in language constructs allow the definition of actions to be taken when an expected message is received from the internal message queue, like sending a message to another peer entity or creating new test components.
Message-passing semantics
The actor model is about the semantics of
message passing.
Unbounded nondeterminism controversy
Arguably, the first concurrent programs were
interrupt handlers. During the course of its normal operation a computer needed to be able to receive information from outside (characters from a keyboard, packets from a network, ''etc''). So when the information arrived the execution of the computer was ''interrupted'' and special code (called an interrupt handler) was called to put the information in a
data buffer where it could be subsequently retrieved.
In the early 1960s, interrupts began to be used to simulate the concurrent execution of several programs on one processor. Having concurrency with
shared memory gave rise to the problem of
concurrency control
In information technology and computer science, especially in the fields of computer programming, operating systems, multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are generated, while ...
. Originally, this problem was conceived as being one of
mutual exclusion on a single computer.
Edsger Dijkstra developed
semaphores and later, between 1971 and 1973,
Tony Hoare and
Per Brinch Hansen developed
monitors to solve the mutual exclusion problem. However, neither of these solutions provided a programming language construct that encapsulated access to shared resources. This encapsulation was later accomplished by the
serializer construct (
ewitt and Atkinson 1977, 1979and
tkinson 1980.
The first models of computation (''e.g.'',
Turing machines, Post productions, the
lambda calculus, ''etc.'') were based on mathematics and made use of a global state to represent a computational ''step'' (later generalized in
cCarthy and Hayes 1969and
ijkstra 1976see
Event orderings versus global state). Each computational step was from one global state of the computation to the next global state. The global state approach was continued in
automata theory for
finite-state machines and push down
stack machines, including their
nondeterministic
Nondeterminism or nondeterministic may refer to:
Computer science
* Nondeterministic programming
*Nondeterministic algorithm
In computer programming, a nondeterministic algorithm is an algorithm that, even for the same input, can exhibit diffe ...
versions. Such nondeterministic automata have the property of
bounded nondeterminism; that is, if a machine always halts when started in its initial state, then there is a bound on the number of states in which it halts.
Edsger Dijkstra further developed the nondeterministic global state approach. Dijkstra's model gave rise to a controversy concerning
unbounded nondeterminism
In computer science, unbounded nondeterminism or unbounded indeterminacy is a property of concurrency by which the amount of delay in servicing a request can become unbounded as a result of arbitration of contention for shared resources ''while ...
(also called ''unbounded indeterminacy''), a property of
concurrency
Concurrent means happening at the same time. Concurrency, concurrent, or concurrence may refer to:
Law
* Concurrence, in jurisprudence, the need to prove both ''actus reus'' and ''mens rea''
* Concurring opinion (also called a "concurrence"), a ...
by which the amount of delay in servicing a request can become unbounded as a result of arbitration of contention for shared resources ''while still guaranteeing that the request will eventually be serviced''. Hewitt argued that the actor model should provide the guarantee of service. In Dijkstra's model, although there could be an unbounded amount of time between the execution of sequential instructions on a computer, a (parallel) program that started out in a well defined state could terminate in only a bounded number of states
ijkstra 1976 Consequently, his model could not provide the guarantee of service. Dijkstra argued that it was impossible to implement unbounded nondeterminism.
Hewitt argued otherwise: there is no bound that can be placed on how long it takes a computational circuit called an ''
arbiter'' to settle (see
metastability (electronics)).
Arbiters are used in computers to deal with the circumstance that computer clocks operate asynchronously with respect to input from outside, ''e.g.'', keyboard input, disk access, network input, ''etc.'' So it could take an unbounded time for a message sent to a computer to be received and in the meantime the computer could traverse an unbounded number of states.
The actor model features unbounded nondeterminism which was captured in a mathematical model by
Will Clinger
William D. Clinger is an associate professor in the Khoury College of Computer Sciences at Northeastern University. He is known for his work on higher-order and functional programming languages, and for extensive contributions in helping create an ...
using
domain theory.
In the actor model, there is no global state.
Direct communication and asynchrony
Messages in the actor model are not necessarily buffered. This was a sharp break with previous approaches to models of concurrent computation. The lack of buffering caused a great deal of misunderstanding at the time of the development of the actor model and is still a controversial issue. Some researchers argued that the messages are buffered in the "ether" or the "environment". Also, messages in the actor model are simply sent (like
packets in
IP); there is no requirement for a synchronous handshake with the recipient.
Actor creation plus addresses in messages means variable topology
A natural development of the actor model was to allow addresses in messages. Influenced by
packet switched networks 961 and 1964
Year 961 ( CMLXI) was a common year starting on Tuesday (link will display the full calendar) of the Julian calendar.
Events
By place
Byzantine Empire
* March 6 – Siege of Chandax: Byzantine forces under Nikephoros II Phokas ...
Hewitt proposed the development of a new model of concurrent computation in which communications would not have any required fields at all: they could be empty. Of course, if the sender of a communication desired a recipient to have access to addresses which the recipient did not already have, the address would have to be sent in the communication.
For example, an actor might need to send a message to a recipient actor from which it later expects to receive a response, but the response will actually be handled by a third actor component that has been configured to receive and handle the response (for example, a different actor implementing the
observer pattern). The original actor could accomplish this by sending a communication that includes the message it wishes to send, along with the address of the third actor that will handle the response. This third actor that will handle the response is called the ''resumption'' (sometimes also called a
continuation or
stack frame). When the recipient actor is ready to send a response, it sends the response message to the ''resumption'' actor address that was included in the original communication.
So, the ability of actors to create new actors with which they can exchange communications, along with the ability to include the addresses of other actors in messages, gives actors the ability to create and participate in arbitrarily variable topological relationships with one another, much as the objects in Simula and other object-oriented languages may also be relationally composed into variable topologies of message-exchanging objects.
Inherently concurrent
As opposed to the previous approach based on composing sequential processes, the actor model was developed as an inherently concurrent model. In the actor model sequentiality was a special case that derived from concurrent computation as explained in
actor model theory
In theoretical computer science, Actor model theory concerns theoretical issues for the Actor model.
Actors are the primitives that form the basis of the Actor model of concurrent digital computation. In response to a message that it receives, a ...
.
No requirement on order of message arrival
Hewitt argued against adding the requirement that messages must arrive in the order in which they are sent to the actor. If output message ordering is desired, then it can be modeled by a queue actor that provides this functionality. Such a queue actor would queue the messages that arrived so that they could be retrieved in
FIFO order. So if an actor
X
sent a message
M1
to an actor
Y
, and later
X
sent another message
M2
to
Y
, there is no requirement that
M1
arrives at
Y
before
M2
.
In this respect the actor model mirrors
packet switching
In telecommunications, packet switching is a method of grouping Data (computing), data into ''network packet, packets'' that are transmitted over a digital Telecommunications network, network. Packets are made of a header (computing), header and ...
systems which do not guarantee that packets must be received in the order sent. Not providing the order of delivery guarantee allows packet switching to buffer packets, use multiple paths to send packets, resend damaged packets, and to provide other optimizations.
For example, actors are allowed to pipeline the processing of messages. What this means is that in the course of processing a message
M1
, an actor can designate the behavior to be used to process the next message, and then in fact begin processing another message
M2
before it has finished processing
M1
. Just because an actor is allowed to pipeline the processing of messages does not mean that it ''must'' pipeline the processing. Whether a message is pipelined is an engineering tradeoff. How would an external observer know whether the processing of a message by an actor has been pipelined? There is no ambiguity in the definition of an actor created by the possibility of pipelining. Of course, it is possible to perform the pipeline optimization incorrectly in some implementations, in which case unexpected behavior may occur.
Locality
Another important characteristic of the actor model is locality.
Locality means that in processing a message, an actor can send messages only to addresses that it receives in the message, addresses that it already had before it received the message, and addresses for actors that it creates while processing the message. (But see
Synthesizing addresses of actors.)
Also locality means that there is no simultaneous change in multiple locations. In this way it differs from some other models of concurrency, ''e.g.'', the
Petri net model in which tokens are simultaneously removed from multiple locations and placed in other locations.
Composing actor systems
The idea of composing actor systems into larger ones is an important aspect of
modularity that was developed in Gul Agha's doctoral dissertation,
developed later by Gul Agha, Ian Mason, Scott Smith, and
Carolyn Talcott.
Behaviors
A key innovation was the introduction of ''behavior'' specified as a mathematical function to express what an actor does when it processes a message, including specifying a new behavior to process the next message that arrives. Behaviors provided a mechanism to mathematically model the sharing in concurrency.
Behaviors also freed the actor model from implementation details, ''e.g.'', the Smalltalk-72 token stream interpreter. However, it is critical to understand that the efficient implementation of systems described by the actor model require ''extensive'' optimization. See
Actor model implementation
In computer science, Actor model implementation concerns implementation issues for the Actor model.
Cosmic Cube
The Caltech Cosmic Cube was developed by Chuck Seitz ''et al.'' at Caltech providing architectural support for Actor systems. A sign ...
for details.
Modeling other concurrency systems
Other concurrency systems (''e.g.'',
process calculi) can be modeled in the actor model using a
two-phase commit protocol.
Computational Representation Theorem
There is a ''Computational Representation Theorem'' in the actor model for systems which are closed in the sense that they do not receive communications from outside. The mathematical denotation denoted by a closed system
is constructed from an initial behavior
and a behavior-approximating function
These obtain increasingly better approximations and construct a denotation (meaning) for
as follows
ewitt 2008; Clinger 1981
:
In this way,
can be mathematically characterized in terms of all its possible behaviors (including those involving unbounded nondeterminism). Although
is not an implementation of
, it can be used to prove a generalization of the Church-Turing-Rosser-Kleene thesis
leene 1943
Leene is a Dutch surname. Notable people with the surname include:
* Bernard Leene (1903–1988), Dutch track cyclist and resistance fighter
* Jentina E. Leene
Jentina E. Leene (5 September 1906 – 28 October 1994) was a Dutch scientist who ...
A consequence of the above theorem is that a finite actor can nondeterministically respond with an number of different outputs.
Relationship to logic programming
One of the key motivations for the development of the actor model was to understand and deal with the control structure issues that arose in development of the
Planner programming language. Once the actor model was initially defined, an important challenge was to understand the power of the model relative to
Robert Kowalski
Robert Anthony Kowalski (born 15 May 1941) is an American-British logician and computer scientist, whose research is concerned with developing both human-oriented models of computing and computational models of human thinking. He has spent m ...
's thesis that "computation can be subsumed by deduction". Hewitt argued that Kowalski's thesis turned out to be false for the concurrent computation in the actor model (see
Indeterminacy in concurrent computation
Indeterminacy in concurrent computation is concerned with the effects of indeterminacy in concurrent computation. Computation is an area in which indeterminacy is becoming increasingly important because of the massive increase in concurrency due ...
).
Nevertheless, attempts were made to extend
logic programming to concurrent computation. However, Hewitt and Agha
991claimed that the resulting systems were not deductive in the following sense: computational steps of the concurrent logic programming systems do not follow deductively from previous steps (see
Indeterminacy in concurrent computation
Indeterminacy in concurrent computation is concerned with the effects of indeterminacy in concurrent computation. Computation is an area in which indeterminacy is becoming increasingly important because of the massive increase in concurrency due ...
). Recently, logic programming has been integrated into the actor model in a way that maintains logical semantics.
Migration
Migration in the actor model is the ability of actors to change locations. ''E.g.'', in his dissertation, Aki Yonezawa modeled a post office that customer actors could enter, change locations within while operating, and exit. An actor that can migrate can be modeled by having a location actor that changes when the actor migrates. However the faithfulness of this modeling is controversial and the subject of research.
Security
The security of actors can be protected in the following ways:
*
hardwiring in which actors are physically connected
*
computer hardware as in
Burroughs B5000,
Lisp machine, ''etc.''
*
virtual machines as in
Java virtual machine,
Common Language Runtime, ''etc.''
*
operating systems as in
capability-based systems
*
signing and/or
encryption of actors and their addresses
Synthesizing addresses of actors
A delicate point in the actor model is the ability to synthesize the address of an actor. In some cases security can be used to prevent the synthesis of addresses (see
Security" \n\n\nsecurity.txt is a proposed standard for websites' security information that is meant to allow security researchers to easily report security vulnerabilities. The standard prescribes a text file called \"security.txt\" in the well known locat ...
). However, if an actor address is simply a bit string then clearly it can be synthesized although it may be difficult or even infeasible to guess the address of an actor if the bit strings are long enough.
SOAP
Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are used ...
uses a
URL
A Uniform Resource Locator (URL), colloquially termed as a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifie ...
for the address of an endpoint where an actor can be reached. Since a
URL
A Uniform Resource Locator (URL), colloquially termed as a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifie ...
is a character string, it can clearly be synthesized although encryption can make it virtually impossible to guess.
Synthesizing the addresses of actors is usually modeled using mapping. The idea is to use an actor system to perform the mapping to the actual actor addresses. For example, on a computer the memory structure of the computer can be modeled as an actor system that does the mapping. In the case of
SOAP
Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are used ...
addresses, it's modeling the
DNS
The Domain Name System (DNS) is a hierarchical and distributed naming system for computers, services, and other resources in the Internet or other Internet Protocol (IP) networks. It associates various information with domain names assigned to ...
and the rest of the
URL
A Uniform Resource Locator (URL), colloquially termed as a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifie ...
mapping.
Contrast with other models of message-passing concurrency
Robin Milner's initial published work on concurrency was also notable in that it was not based on composing sequential processes. His work differed from the actor model because it was based on a fixed number of processes of fixed topology communicating numbers and strings using synchronous communication. The original
communicating sequential processes (CSP) model published by
Tony Hoare differed from the actor model because it was based on the parallel composition of a fixed number of sequential processes connected in a fixed topology, and communicating using synchronous message-passing based on process names (see
Actor model and process calculi history). Later versions of CSP abandoned communication based on process names in favor of anonymous communication via channels, an approach also used in Milner's work on the
calculus of communicating systems and the
π-calculus.
These early models by Milner and Hoare both had the property of bounded nondeterminism. Modern, theoretical CSP (
oare 1985and
oscoe 2005 explicitly provides unbounded nondeterminism.
Petri nets and their extensions (e.g., coloured Petri nets) are like actors in that they are based on asynchronous message passing and unbounded nondeterminism, while they are like early CSP in that they define fixed topologies of elementary processing steps (transitions) and message repositories (places).
Influence
The actor model has been influential on both theory development and practical software development.
Theory
The actor model has influenced the development of the
π-calculus and subsequent
process calculi. In his Turing lecture, Robin Milner wrote:
Now, the pure lambda-calculus is built with just two kinds of thing: terms and variables. Can we achieve the same economy for a process calculus? Carl Hewitt, with his actors model, responded to this challenge long ago; he declared that a value, an operator on values, and a process should all be the same kind of thing: an actor.
This goal impressed me, because it implies the homogeneity and completeness of expression ... But it was long before I could see how to attain the goal in terms of an algebraic calculus...
So, in the spirit of Hewitt, our first step is to demand that all things denoted by terms or accessed by names—values, registers, operators, processes, objects—are all of the same kind of thing; they should all be processes.
Practice
The actor model has had extensive influence on commercial practice. For example, Twitter has used actors for scalability. Also, Microsoft has used the actor model in the development of its Asynchronous Agents Library. There are many other actor libraries listed in the actor libraries and frameworks section below.
Addressed issues
According to Hewitt
006
Alec Trevelyan (006) is a fictional character and the main antagonist in the 1995 James Bond film ''GoldenEye'', the first film to feature actor Pierce Brosnan as Bond. Trevelyan is portrayed by actor Sean Bean. The likeness of Bean as Alec T ...
the actor model addresses issues in computer and communications architecture,
concurrent programming languages, and
Web services including the following:
*
Scalability: the challenge of scaling up concurrency both locally and nonlocally.
*
Transparency
Transparency, transparence or transparent most often refer to:
* Transparency (optics), the physical property of allowing the transmission of light through a material
They may also refer to:
Literal uses
* Transparency (photography), a still ...
: bridging the chasm between local and nonlocal concurrency. Transparency is currently a controversial issue. Some researchers have advocated a strict separation between local concurrency using concurrent programming languages (e.g.,
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
and
C#) from nonlocal concurrency using
SOAP
Soap is a salt of a fatty acid used in a variety of cleansing and lubricating products. In a domestic setting, soaps are surfactants usually used for washing, bathing, and other types of housekeeping. In industrial settings, soaps are used ...
for
Web services. Strict separation produces a lack of transparency that causes problems when it is desirable/necessary to change between local and nonlocal access to Web services (see
Distributed computing).
*
Inconsistency: inconsistency is the norm because all very large knowledge systems about human information system interactions are inconsistent. This inconsistency extends to the documentation and specifications of very large systems (e.g., Microsoft Windows software, etc.), which are internally inconsistent.
Many of the ideas introduced in the actor model are now also finding application in
multi-agent systems for these same reasons
ewitt 2006b 2007b The key difference is that agent systems (in most definitions) impose extra constraints upon the actors, typically requiring that they make use of commitments and goals.
Programming with actors
A number of different programming languages employ the actor model or some variation of it. These languages include:
Early actor programming languages
* Act 1, 2 and 3
*Acttalk
*Ani
*Cantor
*Rosette
Later actor programming languages
*
ABCL
*
AmbientTalk
*
Axum
*
CAL Actor Language
*
D
*
Dart
Dart or DART may refer to:
* Dart, the equipment in the game of darts
Arts, entertainment and media
* Dart (comics), an Image Comics superhero
* Dart, a character from ''G.I. Joe''
* Dart, a ''Thomas & Friends'' railway engine character
* D ...
*
E
*
Elixir
*
Erlang
*
Fantom
* Humus
*
Io
*
LFE
* Encore
*
Pony
*
Ptolemy Project
*
P
* P#
*
Rebeca Modeling Language
*
Reia
*
Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapp ...
* SALSA
*
Scala
*
Swift (programming language)
Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. and the open-source community. First released in 2014, Swift was developed as a replacement for Apple's earlier programming language Objecti ...
*
TNSDL
Actor libraries and frameworks
Actor libraries or frameworks have also been implemented to permit actor-style programming in languages that don't have actors built-in. Some of these frameworks are:
See also
*
Autonomous agent
*
Data flow
*
Gordon Pask
*
Input/output automaton
*
Scientific community metaphor
In computer science, the scientific community metaphor is a metaphor used to aid understanding scientific communities. The first publications on the scientific community metaphor in 1981 and 1982 involved the development of a programming lan ...
References
Further reading
*Gul Agha. '
Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press 1985.
*Paul Baran. On Distributed Communications Networks
IEEE Transactions on Communications Systems
''IEEE Transactions on Communications'' is a monthly peer-reviewed scientific journal published by the IEEE Communications Society that focuses on all aspects of telecommunication technology, including telephone, telegraphy, facsimile, and point- ...
. March 1964.
*William A. Woods. '
Transition network grammars for natural language analysis'' CACM. 1970.
*Carl Hewitt. '
Procedural Embedding of Knowledge In Planner'' IJCAI 1971.
*G.M. Birtwistle,
Ole-Johan Dahl, B. Myhrhaug and
Kristen Nygaard. SIMULA Begin Auerbach Publishers Inc, 1973.
*Carl Hewitt, ''et al.'' '
Actor Induction and Meta-evaluation'' Conference Record of ACM Symposium on Principles of Programming Languages, January 1974.
*Carl Hewitt, ''et https://link.springer.com/chapter/10.1007/3-540-06859-7_147al. '
Behavioral Semantics of Nonrecursive Control Structure'' Proceedings of Colloque sur la Programmation, April 1974.
*Irene Greif and Carl Hewitt. '
Actor Semantics of PLANNER-73'' Conference Record of ACM Symposium on Principles of Programming Languages. January 1975.
*Carl Hewitt. '
How to Use What You Know'' IJCAI. September, 1975.
*Alan Kay and Adele Goldberg.
Smalltalk-72 Instruction ManualXerox PARC Memo SSL-76-6. May 1976.
*
Edsger Dijkstra. A discipline of programming Prentice Hall. 1976.
*Carl Hewitt and Henry Baker '
Actors and Continuous Functionals'' Proceeding of IFIP Working Conference on Formal Description of Programming Concepts. August 1–5, 1977.
*Carl Hewitt and Russ Atkinson. '
Synchronization in Actor Systems'' Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages. 1977
*Carl Hewitt and Russ Atkinson. '
Specification and Proof Techniques for Serializers'' IEEE Journal on Software Engineering. January 1979.
*Ken Kahn. '
A Computational Theory of Animation'' MIT EECS Doctoral Dissertation. August 1979.
*Carl Hewitt, Beppe Attardi, and Henry Lieberman. Delegation in Message Passing Proceedings of First International Conference on Distributed Systems Huntsville, AL. October 1979.
*
Nissim Francez, C.A.R. Hoare, Daniel Lehmann, and
Willem-Paul de Roever. Semantics of nondeterminism, concurrency, and communication Journal of Computer and System Sciences. December 1979.
*
George Milne and
Robin Milner. Concurrent processes and their syntax JACM. April 1979.
*Daniel Theriault. A Primer for the Act-1 Language MIT AI memo 672. April 1982.
*Daniel Theriault. '
Issues in the Design and Implementation of Act 2 MIT AI technical report 728. June 1983.
*Henry Lieberman. An Object-Oriented Simulator for the Apiary Conference of the American Association for Artificial Intelligence, Washington, D. C., August 1983
*Carl Hewitt and Peter de Jong. '
Analyzing the Roles of Descriptions and Actions in Open Systems'' Proceedings of the National Conference on Artificial Intelligence. August 1983.
*Carl Hewitt and Henry Lieberman. Design Issues in Parallel Architecture for Artificial Intelligence MIT AI memo 750. Nov. 1983.
*