paper

VIEWING CONTROL STRUCTURES as PATTERNS of PASSING MESSAGES

  • Authors:

📜 Abstract

The purpose of this paper is to discuss some organizational aspects of programs using the actor model of computation. In this paper we present an approach to modelling intelligence in terms of a society of communicating knowledge-based problem-solving experts. In turn each of the experts can be viewed as a society that can be further decomposed in the same way until the primitive actors of the system are reached. We are investigating the nature of the communication mechanisms needed for effective problem-solving by a society of experts and the conventions of discourse that make this possible. In this way we hope eventually to develop a framework adequate for the discussion of the central issues of problem-solving involving parallel versus serial processing and centralization versus decentralization of control and information storage. This paper demonstrates how actor message passing can be used to understand control structures as patterns of passing messages in serial processing. This paper is a pre-requisite for successors which treat issues of parallelism and communication within the framework established here. The ability to analyze or synthesize any kind of control structure as a pattern of passing messages among the members of a society provides an important tool for understanding control structures. Ultimately, we hope to be able to characterize various control structures in common use by societies in terms of patterns of passing messages. This paper makes a small step in this direction by showing how to characterize familiar control structures such as iteration and recursion in these terms.

✨ Summary

Main contribution

Carl Hewitt presents the actor model as a framework for describing computation through local actors that communicate by passing messages. An actor is characterized by its behavior and its direct acquaintances rather than by a shared global state or a prescribed physical representation. The paper introduces actor transmission, request/reply communication, continuations, envelopes, pattern matching, and the PLASMA language for expressing actor behavior.

The central analytical device is the event diagram, which represents causal and incidental relationships among message-passing events. Using these diagrams, the paper explains ordinary request/reply behavior, recursive computation, and iterative computation as distinct patterns of communication. Recursion is represented by constructing a chain of continuation actors, while iteration reuses a continuation and maintains a bounded amount of working state. This provides an operational explanation for why tail-recursive computations can be implemented with constant additional storage.

The paper also argues for modular distribution of knowledge among communicating experts and against unnecessarily complex or “hairy” control structures. It advocates progressive refinement: begin with a high-level, goal-oriented behavioral description and successively introduce domain-specific knowledge and optimizations. Examples include incremental generators, lazy or delayed computation, sequence processing, and packagers that provide named, protected access to components of structured messages.

Influence and subsequent research

The paper’s actor formulation was followed by formal work that gave actor computation operational semantics, compositionality, testing equivalences, and fairness properties. In particular, Agha, Mason, Smith, and Talcott developed a formal actor language and semantic foundation for open distributed systems in 1997. (cambridge.org)

Hewitt’s model was also developed into a broader theory of concurrent computation and distributed systems. Gul Agha’s 1986 book produced syntactic and denotational models of the actor paradigm and addressed concurrency and large-scale parallel systems. (mitpress.mit.edu)

The paper is repeatedly cited in later work on distributed decision-making, agent-oriented systems, stream-processing architectures, and formal actor semantics. These references support the conclusion that its main lasting contribution was foundational: it helped frame control flow, modularity, and concurrency in terms of communicating computational entities rather than centralized state and procedure control. (sciencedirect.com)

The journal publication is independently cataloged as Carl Hewitt’s article in Artificial Intelligence, volume 8, issue 3, June 1977, pages 323–364. (sciencedirect.com)