Actor model theory

Last updated

In theoretical computer science, Actor model theory concerns theoretical issues for the Actor model.

Contents

Actors are the primitives that form the basis of the Actor model of concurrent digital computation. In response to a message that it receives, an Actor can make local decisions, create more Actors, send more messages, and designate how to respond to the next message received. Actor model theory incorporates theories of the events and structures of Actor computations, their proof theory, and denotational models.

Events and their orderings

From the definition of an Actor, it can be seen that numerous events take place: local decisions, creating Actors, sending messages, receiving messages, and designating how to respond to the next message received.

However, this article focuses on just those events that are the arrival of a message sent to an Actor.

This article reports on the results published in Hewitt [2006].

Law of Countability: There are at most countably many events.

Activation ordering

The activation ordering (-≈→) is a fundamental ordering that models one event activating another (there must be energy flow in the message passing from an event to an event which it activates).

Arrival orderings

The arrival ordering of an Actor x ( -x→ ) models the (total) ordering of events in which a message arrives at x. Arrival ordering is determined by arbitration in processing messages (often making use of a digital circuit called an arbiter). The arrival events of an Actor are on its world line. The arrival ordering means that the Actor model inherently has indeterminacy (see Indeterminacy in concurrent computation).

Combined ordering

The combined ordering (denoted by ) is defined to be the transitive closure of the activation ordering and the arrival orderings of all Actors.

The combined ordering is obviously transitive by definition.

In [Baker and Hewitt 197?], it was conjectured that the above laws might entail the following law:

Law of Finite Chains Between Events in the Combined Ordering: There are no infinite chains (i.e., linearly ordered sets) of events between two events in the combined ordering →.

Independence of the Law of Finite Chains Between Events in the Combined Ordering

However, [Clinger 1981] surprisingly proved that the Law of Finite Chains Between Events in the Combined Ordering is independent of the previous laws, i.e.,

Theorem. The Law of Finite Chains Between Events in the Combined Ordering does not follow from the previously stated laws.

Proof. It is sufficient to show that there is an Actor computation that satisfies the previously stated laws but violates the Law of Finite Chains Between Events in the Combined Ordering.

Consider a computation which begins when an actor Initial is sent a Start message causing it to take the following actions
  1. Create a new actor Greeter1 which is sent the message SayHelloTo with the address of Greeter1
  2. Send Initial the message Again with the address of Greeter1
Thereafter the behavior of Initial is as follows on receipt of an Again message with address Greeteri (which we will call the event Againi):
  1. Create a new actor Greeteri+1 which is sent the message SayHelloTo with address Greeteri
  2. Send Initial the message Again with the address of Greeteri+1
Obviously the computation of Initial sending itself Again messages never terminates.
The behavior of each Actor Greeteri is as follows:
  • When it receives a message SayHelloTo with address Greeteri-1 (which we will call the event SayHelloToi), it sends a Hello message to Greeteri-1
  • When it receives a Hello message (which we will call the event Helloi), it does nothing.
Now it is possible that Helloi -GreeteriSayHelloToi every time and therefore HelloiSayHelloToi.
Also Againi -≈→ Againi+1 every time and therefore AgainiAgaini+1.
Furthermore all of the laws stated before the Law of Strict Causality for the Combined Ordering are satisfied.
However, there may be an infinite number of events in the combined ordering between Again1 and SayHelloTo1 as follows:
Again1→...→Againi→......→HelloiSayHelloToi→...→Hello1SayHelloTo1

However, we know from physics that infinite energy cannot be expended along a finite trajectory. Therefore, since the Actor model is based on physics, the Law of Finite Chains Between Events in the Combined Ordering was taken as an axiom of the Actor model.

Law of Discreteness

The Law of Finite Chains Between Events in the Combined Ordering is closely related to the following law:

Law of Discreteness: For all events e1 and e2, the set {e|e1→e→e2} is finite.

In fact the previous two laws have been shown to be equivalent:

Theorem [Clinger 1981]. The Law of Discreteness is equivalent to the Law of Finite Chains Between Events in the Combined Ordering (without using the axiom of choice.)

The law of discreteness rules out Zeno machines and is related to results on Petri nets [Best et al. 1984, 1987].

The Law of Discreteness implies the property of unbounded nondeterminism. The combined ordering is used by [Clinger 1981] in the construction of a denotational model of Actors (see denotational semantics).

Denotational semantics

Clinger [1981] used the Actor event model described above to construct a denotational model for Actors using power domains. Subsequently Hewitt [2006] augmented the diagrams with arrival times to construct a technically simpler denotational model that is easier to understand.

See also

Related Research Articles

In computer science, denotational semantics is an approach of formalizing the meanings of programming languages by constructing mathematical objects that describe the meanings of expressions from the languages. Other approaches providing formal semantics of programming languages including axiomatic semantics and operational semantics.

Domain theory is a branch of mathematics that studies special kinds of partially ordered sets (posets) commonly called domains. Consequently, domain theory can be considered as a branch of order theory. The field has major applications in computer science, where it is used to specify denotational semantics, especially for functional programming languages. Domain theory formalizes the intuitive ideas of approximation and convergence in a very general way and is closely related to topology.

Concurrency (computer science) Ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the final outcome

In computer science, concurrency is the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the final outcome. This allows for parallel execution of the concurrent units, which can significantly improve overall speed of the execution in multi-processor and multi-core systems. In more technical terms, concurrency refers to the decomposability of a program, algorithm, or problem into order-independent or partially-ordered components or units of computation.

The actor model in computer science is a mathematical model 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, but can only affect each other indirectly through messaging.

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 language named Ether that invoked procedural plans to process goals and assertions concurrently by dynamically creating new rules during program execution. Ether also addressed issues of conflict and contradiction with multiple sources of knowledge and multiple viewpoints.

In computer science, Actor model implementation concerns implementation issues for the Actor model.

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.

Henry Givens Baker Jr. is an American computer scientist who has made contributions in garbage collection, functional programming languages, and linear logic. He was also one of the founders of Symbolics, a company that designed and manufactured a line of Lisp machines. In 2006 he was recognized as a Distinguished Scientist by the Association for Computing Machinery.

In computer science, the Actor model, first published in 1973, is a mathematical model of concurrent computation.

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 still guaranteeing that the request will eventually be serviced. Unbounded nondeterminism became an important issue in the development of the denotational semantics of concurrency, and later became part of research into the theoretical concept of hypercomputation.

In denotational semantics and domain theory, power domains are domains of nondeterministic and concurrent computations.

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 to networking and the advent of many-core computer architectures. These computer systems make use of arbiters which give rise to indeterminacy.

The actor model and process calculi share an interesting history and co-evolution.

The denotational semantics of the Actor model is the subject of denotational domain theory for Actors. The historical development of this subject is recounted in [Hewitt 2008b].

In computer science, the Actor model, first published in 1973, is a mathematical model of concurrent computation. This article reports on the middle history of the Actor model in which major themes were initial implementations, initial applications, and development of the first proof theory and denotational model. It is the follow on article to Actor model early history which reports on the early history of the Actor model which concerned the basic development of the concepts. The article Actor model later history reports on developments after the ones reported in this article.

In computer science, the Actor model, first published in 1973, is a mathematical model of concurrent computation. This article reports on the later history of the Actor model in which major themes were investigation of the basic power of the model, study of issues of compositionality, development of architectures, and application to Open systems. It is the follow on article to Actor model middle history which reports on the initial implementations, initial applications, and development of the first proof theory and denotational model.

Gul Agha is a professor of computer science at the University of Illinois at Urbana-Champaign, and director of the Open Systems Laboratory. He is known for his work on the actor model of concurrent computation, and was also Editor-in-Chief of ACM Computing Surveys from 1999 to 2007. Agha completed his B.S. with honors from the California Institute of Technology in the year 1977 and received his Ph.D. in Computer and Communication Science from the University of Michigan in 1986, under the supervision of John Holland. However, much of his doctoral research was carried out in Carl Hewitt's Message-Passing Semantics Group at Massachusetts Institute of Technology (MIT). Agha's dissertation was published by the MIT Press as Actors: a model of concurrent computation in distributed systems, a book which, according to the ACM Guide to Computing Literature, has been cited over 3000 times. Agha was born and completed his early schooling in Sindh, Pakistan. He received his B.S. with honors from the California Institute of Technology in 1977.

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 and implement international technical standards for the programming language Scheme via the Institute of Electrical and Electronics Engineers (IEEE) and American National Standards Institute (ANSI). Clinger was an editor of the second through fifth Revised Reports on Scheme (R2RS – R5RS), and an invited speaker on Scheme at the Lisp50 conference celebrating the 50th birthday of the language Lisp. He has been on the faculty at Northeastern University since 1994.

Carl Hewitt American computer scientist and designer of Planner programming language

Carl Eddie Hewitt is an American computer scientist who designed the Planner programming language for automated planning and the actor model of concurrent computation, which have been influential in the development of logic, functional and object-oriented programming. Planner was the first programming language based on procedural plans invoked using pattern-directed invocation from assertions and goals. The actor model influenced the development of the Scheme programming language, the π-calculus, and served as an inspiration for several other programming languages.

The history of the programming language Scheme begins with the development of earlier members of the Lisp family of languages during the second half of the twentieth century. During the design and development period of Scheme, language designers Guy L. Steele and Gerald Jay Sussman released an influential series of Massachusetts Institute of Technology (MIT) AI Memos known as the Lambda Papers (1975–1980). This resulted in the growth of popularity in the language and the era of standardization from 1990 onward. Much of the history of Scheme has been documented by the developers themselves.

References