Parallel Execution of Object-Oriented Programs: Message Handling Strategies

Abstract Parallel execution of Object-Oriented (O-O) programs requires adoption of parallel and concurrent programming solutions. However, classification and inheritance restrict the constructions which would otherwise be applicable among the objects treated as pure distributed processes. In message handling the main problem is that of explicit controlling the set of acceptable messages according to the current status of the object because it may result in very complex conditional expressions and it hinders inheritance as well. In this paper, controlling the corresponding operations, i.e. methods is suggested instead. Most of the tools for intra-object synchronization suffer from the same problem as controlling the set of messages, e.g. using semaphores and monitors, therefore, the Conditional Critical Regions (CCRs) concept is to be used which promotes inheritance too. Contrasted to the object-based parallel programs today, using the constructions suggested here could result in real object-oriented ones.

[1]  Szabolcs Ferenczi,et al.  Guarded methods vs. inheritance anomaly: inheritance anomaly solved by nested guarded method calls , 1995, SIGP.

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

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

[4]  Jim Welsh,et al.  A Comparison of Two Notations for Process Communication , 1979, Language Design and Programming Methodology.

[5]  Peter Wegner Dimensions of object-based language design , 1987, OOPSLA 1987.

[6]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[7]  Gul Agha,et al.  Research directions in concurrent object-oriented programming , 1993 .

[8]  Denis Caromel Concurrency and reusability: from sequential to parallel , 1990 .

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

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

[11]  Denis Caromel A solution to the explicit/implicit control dilemma , 1991, OOPS Messenger.

[12]  Per Brinch Hansen,et al.  The design of Edison , 1981, Softw. Pract. Exp..

[13]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

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

[15]  C. Tomlinson,et al.  Rosette: An object-oriented concurrent systems architecture , 1988, OOPSLA/ECOOP '88.

[16]  Per Brinch Hansen,et al.  Operating System Principles , 1973 .

[17]  Per Brinch Hansen,et al.  Distributed processes: a concurrent programming concept , 1978, CACM.

[18]  Satoshi Matsuoka,et al.  Analysis of inheritance anomaly in object-oriented concurrent programming languages , 1993 .