Analysis of inheritance anomaly in object-oriented concurrent programming languages

It has been pointed out that inheritance and synchronization constraints in concurrent object systems often con ict with each other, resulting in inheritance anomaly where re-de nitions of inherited methods are necessary in order to maintain the integrity of concurrent objects. The anomaly is serious, as it could nullify the bene ts of inheritance altogether. Several proposals have been made for resolving the anomaly; however, we argue that those proposals su er from the incompleteness which allows room for counterexamples. We give an overview and the analysis of inheritance anomaly, and review several proposals for minimizing the unwanted e ect of this phenomenon. In particular, we propose (partial) solutions using (1) computational re ection, and (2) transactions in OOCP languages.

[1]  Anand R. Tripathi,et al.  An implementation of the object‐oriented concurrent programming language SINA , 1989, Softw. Pract. Exp..

[2]  Ken Wakita,et al.  Synchronization Constraints With Inheritance: What Is Not Possible --- So What Is? , 1990 .

[3]  John Hogg,et al.  OTM: Applying objects to tasks , 1987, OOPSLA '87.

[4]  Friedemann Mattern,et al.  Key Concepts of the INCAS Multicomputer Project , 1987, IEEE Transactions on Software Engineering.

[5]  Steven Lucco,et al.  Parallel programming in a virtual object space , 1987, OOPSLA '87.

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

[7]  A. Yonezawa,et al.  An introduction to object-based reflective concurrent computation , 1988, OOPSLA/ECOOP '88.

[8]  Narain H. Gehani,et al.  The concurrent C programming language , 1989 .

[9]  Christian Neusius,et al.  Synchronizing Actions , 1991, ECOOP.

[10]  Satoshi Matsuoka,et al.  Hybrid Group Re ective Architecture for Object-Oriented Concurrent Re ective Programming , 1991 .

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

[12]  Satoshi Matsuoka,et al.  ABCL/onEM-4: a new software/hardware architecture for object-oriented concurrent computing on an extended dataflow supercomputer , 1992, ICS '92.

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

[14]  Svend Frølund,et al.  Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming Languages , 1992, ECOOP.

[15]  Etsuya Shibayama,et al.  Reuse of Concurrent Object Descriptions , 1991, Concurrency: Theory, Language, And Architecture.

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

[17]  米沢 明憲 ABCL : an object-oriented concurrent system , 1990 .

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

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

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

[21]  D. Decouchant,et al.  A synchronization mechanism for typed objects in a distributed system , 1988, OOPSLA/ECOOP '88.

[22]  Gregory R. Andrews,et al.  Concepts and Notations for Concurrent Programming , 1983, CSUR.

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

[24]  Akinori Yonezawa,et al.  Object-oriented concurrent programming ABCL/1 , 1986, OOPLSA '86.

[25]  Antonio Corradi,et al.  Parallelism in object-oriented programming languages , 1990, Proceedings. 1990 International Conference on Computer Languages.

[26]  Pierre America,et al.  A parallel object-oriented language with inheritance and subtyping , 1990, OOPSLA/ECOOP '90.

[27]  S. Matsuoka,et al.  Object-Oriented Concurrent Re ective Languages can be Implemented E ciently Hidehiko Masuhara , 1992 .

[28]  Satoshi Matsuoka,et al.  Using tuple space communication in distributed object-oriented languages , 1988, OOPSLA '88.

[29]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[30]  Claude Bétourné,et al.  A 'two degrees of freedom' approach for parallel programming , 1990, Proceedings. 1990 International Conference on Computer Languages.

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

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

[33]  D. Caromel A general model for concurrent and distributed object-oriented programming , 1988, OOPSLA/ECOOP '88.

[34]  Pierre America,et al.  Designing an Object-Oriented Programming Language with Behavioural Subtyping , 1990, REX Workshop.

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

[36]  José Meseguer,et al.  A logical theory of concurrent objects , 1990, OOPSLA/ECOOP '90.

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

[38]  P. A. Buhr,et al.  Adding concurrency to a statically type-safe object-oriented programming language , 1988, OOPSLA/ECOOP '88.

[39]  Satoshi Matsuoka,et al.  Metalevel solution to inheritance anomaly in concurrent object-oriented l~nguages , 1990 .

[40]  Satoshi Matsuoka,et al.  Object-Oriented Concurrent Reflective Languages can be Implemented Efficiently , 1992, OOPSLA.