Concurrent Object-Oriented Languages and the Inheritance Anomaly

A survey of concurrent object-oriented languages is presented. The survey is organized around three models: the Animation Model that describes a variety of relationships between threads and objects, an Interaction Model that classi es the possible semantics of invocations and returns between a client object and a server object, and a Synchronization Model that shows di erent ways in which concurrent invocations can be managed by a server. A number of representative languages are brie y presented. The problem of synchronization in concurrent object-oriented languages is considered in detail including a discussion of the inheritance anomaly. A synchronization mechanism, called a behavior set , is shown to avoid this anomaly in certain cases. The implementation of behavior sets in ACT++, an actor-based concurrent programming framework implemented in C++, is described.

[1]  Dennis Kafura,et al.  Designing a statically typed actor-based concurrent object-oriented programming language , 1990 .

[2]  Brian N. Bershad,et al.  PRESTO: A system for object‐oriented parallel programming , 1988, Softw. Pract. Exp..

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

[4]  Dennis Kafura,et al.  A class library for concurrent programming in c++ using actors , 1992 .

[5]  Michael Papathomas,et al.  Language Design Rationale and Semantic Framework for Concurrent Object-Oriented Programming , 1992 .

[6]  Michel Riveill,et al.  Design and implementation of an object-oriented strongly typed language for distributed applications , 1990 .

[7]  Akinori Yonezawa,et al.  Reflection in an object-oriented concurrent language , 1988, OOPSLA 1988.

[8]  Peter Wegner,et al.  Dimensions of object-based language design , 1987, OOPSLA '87.

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

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

[11]  Birger Andersen,et al.  Fine-grained parallelism in Ellie , 1992 .

[12]  Akinori Yonezawa,et al.  Modelling and programming in an object-oriented concurrent language ABCL/1 , 1987 .

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

[14]  Pierre America,et al.  Inheritance and Subtyping in a Parallel Object-Oriented Language , 1987, ECOOP.

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

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

[17]  Dennis Kafura,et al.  ACT++: Building a Concurrent C++ with Actors , 1989 .

[18]  Andrew S. Grimshaw,et al.  Easy-to-use object-oriented parallel processing with Mentat , 1993, Computer.

[19]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

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

[21]  Anand R. Tripathi,et al.  Communication, scheduling, and resource management in SINA , 1988 .

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