Issues in the design of a parallel object-oriented language

This paper discusses the considerations that have played a role in the design of the language POOL2. This language integrates the structuring techniques of object-oriented programming with mechanisms for expressing parallelism. We introduce the basic principles of object-oriented programming and its significance for program development methodologies. Several approaches for integrating objects and parallelism are compared and arguments for the choices made in POOL2 are presented. We also explain why inheritance is not yet included in POOL2. A brief overview of the research in formal aspects of POOL is given. Finally we indicate some directions for future developments.

[1]  Pierre America,et al.  Designing Equivalent Semantic Models for Process Creation , 1988, Theor. Comput. Sci..

[2]  Pierre America,et al.  Solving Reflexive Domain Equations in a Category of Complete Metric Spaces , 1989, J. Comput. Syst. Sci..

[3]  Niklaus Wirth,et al.  Programming in Modula-2 , 1985, Texts and Monographs in Computer Science.

[4]  Alan Jay Smith,et al.  Cache Memories , 1982, CSUR.

[5]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[6]  J. V. Tucker,et al.  Program correctness over abstract data types, with error-state semantics , 1988, CWI monographs.

[7]  J. W. de Bakker,et al.  Processes and the Denotational Semantics of Concurrency , 1982, Inf. Control..

[8]  W. Daniel Hillis,et al.  The connection machine , 1985 .

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

[10]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[11]  Willem P. de Roever,et al.  Compositionality and Concurrent Networks: Soundness and Completeness of a Proofsystem , 1985, ICALP.

[12]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.

[13]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Information and Computation.

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

[15]  Pierre America,et al.  Operational semantics of a parallel object-oriented language , 1986, POPL '86.

[16]  Jan A. Bergstra,et al.  On the Consistency of Koomen's Fair Abstraction Rule , 1987, Theor. Comput. Sci..

[17]  Bertrand Meyer,et al.  Principles of package design , 1982, CACM.

[18]  Matthew Hennessy,et al.  Full Abstraction for a Simple Parallel Programming Language , 1979, MFCS.

[19]  Willem P. de Roever,et al.  A Proof System for Concurrent ADA Programs , 1984, Sci. Comput. Program..

[20]  Charles L. Seitz,et al.  The cosmic cube , 1985, CACM.

[21]  To Appear In SIAM Journal on Scientific Computing NUMERICAL SOLUTION OF THE INVERSE EIGENVALUE PROBLEM FOR REAL SYMMETRIC , .

[22]  Daniel G. Bobrow,et al.  Common Lisp Object System Specification X2JI3 Document 88-002R , 1988 .

[23]  Daniel C. Halbert,et al.  Using Types and Inheritance in Object-Oriented Programming , 1987, IEEE Software.

[24]  Jan J. M. M. Rutten,et al.  Contractions in Comparing Concurrent Semantics , 1988, ICALP.

[25]  Gordon Plotkin,et al.  An Operational Semantics for CSP. , 1982 .

[26]  Robert A. Kowalski,et al.  Logic for problem solving , 1982, The computer science library : Artificial intelligence series.

[27]  Mark A. Fanty,et al.  Computing with structured connectionist networks , 1988, CACM.

[28]  Richard P. Hopkins,et al.  Data-Driven and Demand-Driven Computer Architecture , 1982, CSUR.

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

[30]  J. J. M. M. Rutten Semantic Correctness for a Parallel Object-Oriented Language , 1990, SIAM J. Comput..

[31]  Ken Kennedy,et al.  Automatic decomposition of scientific programs for parallel execution , 1987, POPL '87.

[32]  I. Lee,et al.  A proof system for communicating shared resources , 1990, [1990] Proceedings 11th Real-Time Systems Symposium.

[33]  Jan A. Bergstra,et al.  Failures without chaos: a new process semantics for fair abstraction , 1987, Formal Description of Programming Concepts.

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

[35]  Nissim Francez,et al.  Symmetric intertask communication , 1985, TOPL.

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

[37]  Gordon D. Plotkin,et al.  A Powerdomain Construction , 1976, SIAM J. Comput..

[38]  Grzegorz Rozenberg,et al.  Basic notions of actor grammars: A graph grammar model for actor computation , 1986, Graph-Grammars and Their Application to Computer Science.

[39]  William D. Clinger,et al.  Foundations of Actor Semantics , 1981 .

[40]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey—Part I , 1981, TOPL.

[41]  Daniel G. Theriault Issues in the Design and Implementation of Act 2 , 1983 .

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

[43]  P. America,et al.  A behavioural approach to subtyping in object-oriented programming languages , 1991 .

[44]  Craig Schaffert,et al.  An introduction to Trellis/Owl , 1986, OOPSLA 1986.

[45]  Jan A. Bergstra,et al.  Process Algebra with Asynchronous Communication Mechanisms , 1984, Seminar on Concurrency.

[46]  Pierre America,et al.  Denotational Semantics of a Parallel Object-Oriented Language , 1989, Inf. Comput..

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

[48]  A. J. Nijman,et al.  PARLE Parallel Architectures and Languages Europe , 1987, Lecture Notes in Computer Science.

[49]  Willem P. de Roever,et al.  A Proof System for Communicating Sequential Processes , 1980, ACM Trans. Program. Lang. Syst..

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

[51]  Eddy Odijk,et al.  The DOOM System and its Applications: A Survey of Esprit 415 Subproject A, Philips Research Laboratries , 1987, PARLE.

[52]  Jan A. Bergstra,et al.  Algebra of Communicating Processes with Abstraction , 1985, Theor. Comput. Sci..

[53]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[54]  Willem P. de Roever,et al.  Real-time programming and asynchronous message passing , 1983, PODC '83.

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

[56]  Jan A. Bergstra,et al.  Process Algebra for Synchronous Communication , 1984, Inf. Control..

[57]  Frank S. de Boer A proof rule for process-creation , 1987, Formal Description of Programming Concepts.

[58]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[59]  Daniel G. Bobrow,et al.  Common lisp object system specification , 1988, SIGP.

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

[61]  C. A. R. Hoare,et al.  An axiomatic basis for computer programming , 1969, CACM.

[62]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

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

[64]  Mary Shaw Alphard: Form and Content , 1981, Springer New York.

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

[66]  Ken Kennedy,et al.  Automatic translation of FORTRAN programs to vector form , 1987, TOPL.

[67]  Bertrand Meyer,et al.  Eiffel: programming for reusability and extendibility , 1987, SIGP.

[68]  Henry Lieberman,et al.  A Preview of Act 1 , 1981 .

[69]  Jr. Charles Richard Lang The extension of object-oriented languages to a homogeneous, concurrent architecture , 1982 .