Concurrent programming using actors: Exploiting large-scale parallelism

  • Gul Agha
  • Carl Hewitt
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 206)


We argue that the ability to model shared objects with changing local states, dynamic reconfigurability, and inherent parallelism are desirable properties of any model of concurrency. The actor model addresses these issues in a uniform framework. This paper briefly describes the concurrent programming language ActS and the principles that have guided its development. Act$ advances the state of the art in programming languages by combining the advantages of object-oriented programming with those of functional programming. We also discuss considerations relevant to large-scale parallelism in the context of open systems, and define an abstract model which establishes the equivalence of systems defined by actor programs.


Actor Model Replacement Actor Mail Address Functional Programming Actor Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [Agha 84]
    Agha, G. Semantic Considerations in the Actor Paradigm of Concurrent Computation. Proceedings of the NSF/SERC Seminar on Concurrency, Springer-Verlag, 1984. ForthcomingGoogle Scholar
  2. [Agha 85]
    Agha, G. Actors: A Model of Concurrent Computation in Distributed Systems. Ph.D. Th., University of Michigan, 1985.Google Scholar
  3. [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.CrossRefGoogle Scholar
  4. [Brock 83]
    Brock, J.D. A Formal Model of Non-determinate Dataflow Computation. LCS Tech Report 309, MIT, Aug. 1983.Google Scholar
  5. [Brock and Ackerman 81]
    Brock J.D. and Ackerman, W.B. Scenarios: A Model of Non-Determinate Computation. In 107: Formalization of Programming Concepts, Springer-Verlag, 1981, pp. 252–259.Google Scholar
  6. [Clinger 81]
    Clinger, W.D. Foundations of Actor Semantics. Al-TR-633, MIT Artificial Intelligence Laboratory, May, 1981.Google Scholar
  7. [Dijkstra 77]
    Dijkstra, E. W. A Discipline of Programming. Prentice-Hall, 1977.Google Scholar
  8. [Henderson 80]
    Henderson, P. Functional Programming: Applications and Implementation. Prentice-Hall International, 1980.Google Scholar
  9. [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
  10. [Hewitt 80]
    Hewitt, C.E. Apiary Multiprocessor Architecture Knowledge System. Proceedings of the Joint SRC/University of Newcastle upon Tyne Workshop on VLSI. Machine Architecture, and Very High Level Languages, University of Newcastle upon Tyne Computing Laboratory Technical Report. October, 1980, pp. 67–69.Google Scholar
  11. [Hewitt 85]
    Hewitt, C. The Challenge of Open Systems. Byte 10, 4 (April 1985), 223–242.Google Scholar
  12. [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
  13. [Hewitt and de Jong 82]
    Hewitt, C., de Jong, P. Open Systems. A.I. Memo 692, MIT Artificial Intelligence Laboratory, 1982.Google Scholar
  14. [Hewitt, et al 84]
    Hewitt, C., Reinhardt, T., Agha, G. and Attardi, G. Linguistic Support of Receptionists for Shared Resources. Proceedings of the NSF/SERC Seminar on Concurrency, Springer-Verlag, 1984. ForthcomingGoogle Scholar
  15. [Hoare 78]
    Hoare, C.A.R. Communicating Sequential Processes. CACM 21, 8 (August 1978), 666–677.Google Scholar
  16. [Hwang and Briggs 84]
    Hwang, K. and Briggs, F. Computer Architecture and Parallel Processing. McGraw Hill, 1984.Google Scholar
  17. [Kahn and MacQueen 78]
    Kahn, K. and MacQueen, D. Coroutines and Networks of Parallel Processes. Information Processing 77: Proceedings of the IFIP Congress, IFIP, Academic Press, 1978, pp. 993–998.Google Scholar
  18. [Landin 65]
    Landin, P. A Correspondence Between ALGOL 60 and Church's Lambda Notation. Communication of the ACM 8, 2 (February 1965).Google Scholar
  19. [Manning 85]
    Manning, C. A Debugging System for the Apiary. M.I.T. Message-Passing Semantics Group Memo, January, 1985.Google Scholar
  20. [McCarthy 59]
    McCarthy, John. Recursive Functions of Symbolic Expressions and their Computation by Machine. Memo 8, MIT, March, 1959.Google Scholar
  21. [Milner 80]
    Milner, R. Lecture Notes in Computer Science. Vol. 92: A Calculus of Communicating Systems. Springer-Verlag, 1980.Google Scholar
  22. [Pratt 82]
    Pratt, V.R. On the Composition of Processes. Proceedings of the Ninth Annual ACM Conf. on Principles of Programming Languages. 1982.Google Scholar
  23. [Pratt 83]
    Pratt, V.R. Five Paradigm Shifts in Programming Language Design and their Realization in Viron, a Dataflow Programming Environment. Proceedings of the Tenth Annual ACM Conf. on Principles of Programming Languages, 1983.Google Scholar
  24. [Steele, Fahlman, Gabriel, Moon, Weinreb 84]
    Steele Jr., Guy L.,. Common Lisp Reference Manual. Mary Poppins Edition edition, Department of Computer Science, Carnegie-Mellon University, Pittsburgh, Pa., 1984.Google Scholar
  25. [Stoy 77]
    Stoy, Joseph E. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. The MIT Press, Cambridge, MA, 1977.Google Scholar
  26. [Theriault 83]
    Theriault, D. Issues in the Design and Implementation of Act2. Technical Report 728, MIT Artificial Intelligence Laboratory, June, 1983.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • Gul Agha
    • 1
  • Carl Hewitt
    • 1
  1. 1.The Artificial Intelligence LaboratoryMassachusetts Institute of TechnologyCambridge

Personalised recommendations