Semantic considerations in the actor paradigm of concurrent computation
This paper discusses the theory of concurrent processing in the context of the actor paradigm. The basic precepts of the actor paradigm are explained. We develop a new formalism to describe the behavior of actors and the evolution of systems of actors. It is hoped that the structure of concurrent computation and the intuitions behind the actor paradigm will be better understood in terms of this model. In particular, we define certain relations between the configurations an actor system may be in and explain how the behavior of actor systems can be understood in terms of these relations. We also define an actor-based language, called Sal, which has a simple syntax but nevertheless embodies the concepts involved.
Several examples of simple actor systems are presented. Two kinds of actors are defined and their relevance to spawning concurrency is noted. The low level detail inherent in the transition systems we define retains some purely operational information. The usefulness of our constructs, beside the obvious pedagogic one, will be in the ability to abstract higher level principles to express and prove properties of actor systems, without the combinatorial explosion implied by all the possible inter-leavings of events. We suggest some directions for future research in this area.
KeywordsActor System Actor Model Transition Relation Bank Account Mail Address
Unable to display preview. Download preview PDF.
- [Atkinson and Hewitt 79] Ktkinson, R. and Hewitt, C. Specification and Proof Techniques for Serializers. IEEE Transactions on Software Engineering SE-5 No. 1, IEEE, January, 1979.Google Scholar
- [Backus 78] Backus, J. Can Programming be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. Communications of the ACM 21, 8 (August 1978), 613–641.Google Scholar
- [Clinger 81] Clinger, W.D. Foundations of Actor Semantics. AI-TR-633, MIT Artificial Intelligence Laboratory, May, 1981.Google Scholar
- [Dijkstra 77] Dijkstra, E.W. A Discipline of Programming. Prentice-Hall, 1977.Google Scholar
- [Fosseen 72] Fosseen, J.B. Representation of Algorithms by Maximally Parallel Schemata. Master Th., Massachusetts Institute of Technology, 1972.Google Scholar
- [Goldberg 83] Goldberg, A. and Robson, D. Smalltalk-80: The Language and Its Implementation. Addison-Wesley Publishing Company, 1983.Google Scholar
- [Greif 75] Greif, I. Semantics of Communicating Parallel Processes. Technical Report 154, MIT, Project MAC, 1975.Google Scholar
- [Hewitt 77] Hewitt, C.E. Viewing Control Structures as Patterns of Passing Messages. Journal of Artificial Intelligence 8-3 (June 1977), 323–364.Google Scholar
- [Hewitt and Baker 77] Hewitt, C. and Baker, H. Laws for Communicating Parallel Processes. 1977 IFIP Congress Proceedings, IFIP, August, 1977, pp. 987–992.Google Scholar
- [Hewitt, et al 84] Hewitt, C., Reinhardt, T., Agha, G. and Attardi, G. Linguistic Support of Receptionists for Shared Resources. Memo Forthcoming, MIT Artificial Intelligence Laboratory, 1984.Google Scholar
- [Hoare 78] Hoare, C.A.R. Communicating Sequential Processes. CACM 21, 8 (August 1978), 666–677.Google Scholar
- [Liskov, Snyder, Atkinson, and Schaffert 77] Liskov B., Snyder A., Atkinson R., and Schaffert C. Abstraction Mechanism in CLU. Communications of the ACM 20, 8 (August 1977).Google Scholar
- [Mead and Conway 80] Mead, C. and Conway, L. Introduction to VLSI Systems. Addison-Wesley, Reading, MA, 1980.Google Scholar
- [Milner 80] Milner, R. Lecture Notes in Computer Science. Vol. 92: A Calculus of Communicating Behavior. Springer-Verlag, 1980.Google Scholar
- [Peterson 77] Peterson, J.L. Petri Nets. Comput. Survey (Sept. 1977).Google Scholar
- [Smyth 78] Smyth, M.B. Petri Nets. J. of Comput. Survey Science (Feb. 1978).Google Scholar
- [Theriault 83] Theriault, D. Issues in the Design and Implementation of Act2. Technical Report 728, MIT Artificial Intelligence Laboratory, June, 1983.Google Scholar