Viewing object as patterns of communicating agents

Following our own experience developing a concurrent object-oriented language as well of that of other researchers, we have identified several key problems in the design of a concurrency model compatible with the mechanisms of object-oriented programming. We propose an approach to language design in which an executable notation describing the behaviour of communicating agents is extended by syntactic patterns that encapsulate language constructs. We indicate how various language models can be accommodated, and how mechanisms such as inheritance can be modeled. Finally, we introduce a new notion of types that characterizes concurrent objects in terms of their externally visible behaviour.

[1]  Walter H. Kohler,et al.  Concurrency Features for the Trellis/Owl Language , 1987, ECOOP.

[2]  William R. Cook,et al.  A denotational semantics of inheritance , 1989 .

[3]  J. van den Bos,et al.  PROCOL - A Parallel Object Language with Protocols , 1989, OOPSLA.

[4]  Naftaly H. Minsky,et al.  A law-based approach to object-oriented programming , 1987, OOPSLA '87.

[5]  Vineet Singh,et al.  Inheritance and synchronization with enabled-sets , 1989, OOPSLA '89.

[6]  Anders Björnerstedt,et al.  AVANCE: an object management system , 1988, OOPSLA 1988.

[7]  Stanley B. Zdonik,et al.  Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like , 1988, ECOOP.

[8]  Michael Papathomas,et al.  Concurrency Issues in Object-Oriented Programming Languages , 1989 .

[9]  Mario Tokoro,et al.  Experience and Evolution of ConcurrentSmalltalk , 1987, OOPSLA.

[10]  Dennis G. Kafura,et al.  Inheritance in Actor Based Concurrent Object-Oriented Languages , 1989, Comput. J..

[11]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[12]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[13]  Oscar Nierstrasz,et al.  Towards a type theory for active objects , 1991, OOPSLA/ECOOP '90.

[14]  Mario Tokoro,et al.  Experience and evolution of concurrent Smalltalk , 1987, OOPSLA 1987.

[15]  Michael J. C. Gordon,et al.  The denotational description of programming languages - an introduction , 1979 .

[16]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[17]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and its Correctness , 1989, OOPSLA.

[18]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[19]  Pierre America,et al.  Pool-T: a parallel object-oriented language , 1987 .

[20]  Scott Danforth,et al.  Type theories and object-oriented programmimg , 1988, CSUR.

[21]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[22]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[23]  Henry Lieberman,et al.  Concurrent object-oriented programming in Act 1 , 1987 .

[24]  Oscar Nierstrasz,et al.  Active objects in hybrid , 1987, OOPSLA '87.

[25]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.

[26]  Mario Tokoro,et al.  Object-oriented concurrent programming , 1987 .

[27]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[28]  Anders Björnerstedt,et al.  AVANCE: an object management system , 1988, OOPSLA '88.

[29]  Maurice Herlihy,et al.  Limitations of synchronous communication with static process structure in languages for distributed computing , 1986, POPL '86.

[30]  Jan van den Bos,et al.  PROCOL - A Parallel Object Language with Protocols , 1989, OOPSLA.

[31]  Bent Bruun Kristensen,et al.  The BETA Programming Language , 1987, Research Directions in Object-Oriented Programming.

[32]  Dimitri Konstantas,et al.  Integrating Concurrency and Object-Oriented Programming: An Evaluation of Hybrid , 1990 .

[33]  Michael J. C. Gordon,et al.  The Denotational Description of Programming Languages , 1979, Springer New York.

[34]  Akinori Yonezawa,et al.  Inheritance and Synchronization in Concurrent OOP , 1987, ECOOP.

[35]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[36]  Roy H. Campbell,et al.  The specification of process synchronization by path expressions , 1974, Symposium on Operating Systems.

[37]  Akinori Yonezawa,et al.  Object-oriented concurrent programming in ABCL/1 , 1986, OOPSLA 1986.