Type-theoretic foundations for concurrent object-oriented programing

A number of attempts have been made to obtain type systems for object-oriented programming. The view that lies common is “ object-oriented programming = λ-calculus + record .” Based on an analogous view “ concurrent object-oriented programming = concurrent calculus + record ,” we develop a static type system for concurrent object-oriented programming. We choose our own Higher-Order ACL as a basic concurrent calculus, and show that a concurrent object-oriented language can be easily encoded in the Higher-Order ACL extended with record operations. Since Higher-Order ACL has a strong type system with a polymorphic type inference mechanism, programs of the concurrent object-oriented language can be automatically type-checked by the encoding in Higher-Order ACL. Our approach can give clear accounts for complex mechanisms such as inheritance and method overriding within a simple framework.

[1]  N. Kobayashi,et al.  Typed Higher-Order Concurrent Linear Logic Programming , 1994 .

[2]  Vasco Thudichum Vasconcelos,et al.  Typed Concurrent Objects , 1994, ECOOP.

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

[4]  Satoshi Matsuoka,et al.  An efficient implementation scheme of concurrent object-oriented languages on stock multicomputers , 1992, PPOPP '93.

[5]  Atsushi Ohori,et al.  A compilation method for ML-style polymorphic record calculi , 1992, POPL '92.

[6]  Akinori Yonezawa,et al.  ABCL: an object-oriented concurrent system , 1990 .

[7]  Mario Tokoro,et al.  A Typing System for a Calculus of Objects , 1993, ISOTAS.

[8]  Benjamin C. Pierce,et al.  Simple type-theoretic foundations for object-oriented programming , 1994, Journal of Functional Programming.

[9]  Jean-Marc Andreoli,et al.  Communication as fair distribution of knowledge , 1991, Conference on Object-Oriented Programming Systems, Languages, and Applications.

[10]  Daniel G. Bobrow,et al.  Vulcan: Logical Concurrent Objects , 1987, Research Directions in Object-Oriented Programming.

[11]  Jean-Yves Girard,et al.  Linear Logic , 1987, Theor. Comput. Sci..

[12]  Vasco Thudichum Vasconcelos,et al.  Principal Typing Schemes in a Polyadic pi-Calculus , 1993, CONCUR.

[13]  Akinori Yonezawa,et al.  ACL - A Concurrent Linear Logic Programming Paradigm , 1993, ILPS.

[14]  Kim B. Bruce Safe type checking in a statically-typed object-oriented programming language , 1993, POPL '93.

[15]  Satoshi Matsuoka,et al.  Implementing concurrent object-oriented languages on multicomputers , 1993, IEEE Parallel & Distributed Technology: Systems & Applications.