Actor System

 Description
Actor systems are a line of research by CarlHewitt (a professor in the AI laboratory at MIT) in the seventies. There is an alternative ThreadMode page on this Wiki using the (historically perhaps less accurate) ActorsModel moniker.

Actor systems are based on a ModelOfComputation involving collections of self contained actors, which are entities with the following characteristics:

Computation then proceeds as a pattern of message exchanges among actors.

 Motivation
This model of computation maps well onto fine grained massively parallel, distributed computer systems, because there is no shared state, and maximum concurrently is allowed in the message passing patterns.

Hewitt envisaged that a possible evolutionary path of computer systems was indeed as chips and boxes containing very large numbers of simple general purpose processors.

Part of the research involved for example concept like greedy, speculative execution, and the consequent need to garbage collection of processes.

 Evolution
However, so far the dominant evolutionary path of computer systems has been towards even more complex and faster single processor systems for which the more conventional procedural ModelOfComputation is more suitable.

Therefore ActorSystem research is somewhat obscure, and mainly of historical interest except that early variants of SmallTalk were strongly influenced by it, as AlanKay worked with Carl Hewitt, and from there ActorSystem terminology, in particular MessagePassing, entered the OO mainstream in a somewhat pervasive way. This is why Smalltalk refers to message calls as sending messages, even though Smalltalk-80 "messages" have synchronous (blocking-the-caller) semantics similar to function/method calls in most other maintstream procedural and OO languages.

While it is very natural to write programs for ActorSystem computational engines using ObjectOriented decomposition, in particular its prototype oriented variant, almost all ObjectOriented languages and programs are based on the procedural model of computation, and also are class oriented rather than prototype oriented, and the conflation of ActorSystem terminology and concepts with those of ObjectOriented programming has lead to much confusion.

There is some speculation that the growth of single processor performance has hit some limits and that fine grained, massively parallel distributed systems are therefore the way of the future, and this may lead to a resurgence of interest in the ActorSystem model of computation.

 Pointers
-- Blissex 040505

EditText of this page (last edited July 5, 2005) or FindPage with title or text search