A foundation for actor computation

GUL A. AGHA, IAN A. MASON, SCOTT F. SMITH, CAROLYN L. TALCOTT
1997 Journal of functional programming  
We present an actor language which is an extension of a simple functional language, and provide an operational semantics for this extension. Actor configurations represent open distributed systems, by which we mean that the specification of an actor system explicitly takes into account the interface with external components. We study the composability of such systems. We define and study various notions of testing equivalence on actor expressions and configurations. The model we develop
more » ... fairness. An important result is that the three forms of equivalence, namely, convex, must, and may equivalences, collapse to two in the presence of fairness. We further develop methods for proving laws of equivalence and provide example proofs to illustrate our methodology. Capsule Review Actor languages broaden the scope of functional programming to applications involving concurrency. An actor is a functional program fragment that communicates with the outside world as a process. These languages are of increasing relevance in distributed applications because they enforce the property that data are immutable, which allows powerful optimizations based on caching. However, actor languages lacked so far a calculus foundation like the lambda-calculus for pure functional programming or the pi-calculus for pure interaction. To provide this foundation is the focus of the paper by Agha, Mason, Smith and Talcott. The contributions of the paper include: a definition of a simple reference actor language; a definition of observational equivalence for this language; and an investigation of techniques to prove observational equivalence. As is to be expected of a hybrid languages, both the definitions and the techniques are quite a bit more complex than in pure lambda-or picalculus. Nevertheless, the authors succeed to give a satisfying unified treatment of both the computation and the interaction aspects of actor computation.
doi:10.1017/s095679689700261x fatcat:ud6a7aini5cglecukmbrqzlu6y