Towards an Object Calculus ∗

The development of concurrent object-based programming languages has suffered from the lack of any generally accepted formal foundations for defining their semantics. Furthermore, the delicate relationship between object-oriented features supporting reuse and operational features concerning interaction and state change is poorly understood in a concurrent setting. To address this problem, we propose the development of an object calculus, borrowing heavily from relevant work in the area of process calculi. To this end, we briefly review some of this work, we pose some informal requirements for an object calculus, and we present the syntax, operational semantics and use through examples of a proposed object calculus, called OC.

[1]  Oscar Nierstrasz,et al.  Viewing Objects as Patterns of Communicating Agents 1 , 1990 .

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

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

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

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

[6]  Nicholas Carriero,et al.  How to write parallel programs: a guide to the perplexed , 1989, CSUR.

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

[8]  AmericaPierre,et al.  A parallel object-oriented language with inheritance and subtyping , 1990 .

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

[10]  Oscar Nierstrasz,et al.  A Guide to Specifying Concurrent Behaviour with Abacus 1 , 1990 .

[11]  Rajendra K. Raj,et al.  A Compositional Model for Software Reuse , 1989, Computer/law journal.

[12]  Mario Tokoro,et al.  On Asynchronous Communication Semantics , 1991, Object-Based Concurrent Computing.

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

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

[15]  Oscar Nierstrasz,et al.  The Next 700 Concurrent Object-Oriented Languages * , 1993 .

[16]  William R. Cook,et al.  Inheritance is not subtyping , 1989, POPL '90.

[17]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[18]  Gérard Boudol Towards a Lambda-Calculus for Concurrent and Communicating Systems , 1989, TAPSOFT, Vol.1.

[19]  Mario Tokoro,et al.  An Object Calculus for Asynchronous Communication , 1991, ECOOP.

[20]  J. Palsberg,et al.  A denotational semantics of inheritance and its correctness , 1989, OOPSLA '89.

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

[22]  Oscar Nierstrasz,et al.  Towards a type theory for active objects , 1991, OOPS Messenger.

[23]  Flemming Nielson,et al.  The Typed lambda-Calculus with First-Class Processes , 1989, PARLE.

[24]  Michael Papathomas A Unifying Framework for Process Calculus Semantics of Concurrent Object-Based Languages and Feature , 1991 .

[25]  David H. Taenzer,et al.  Problems in Object-Oriented Software Reuse , 1989, ECOOP.

[26]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[27]  Robin Milner,et al.  Functions as processes , 1990, Mathematical Structures in Computer Science.

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

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

[30]  Gérard Berry,et al.  The chemical abstract machine , 1989, POPL '90.

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

[32]  Bent Thomsen,et al.  A calculus of higher order communicating systems , 1989, POPL '89.